From b1230218d59e13d4e6849b6d362d62239a5141c1 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Fri, 10 Jan 2025 14:30:22 -0800 Subject: [PATCH] Make fingerprinting stable across compatible source changes. (#4789) Include the index rather than the name in the fingerprint of a symbolic binding. While both the index and the name contribute to the canonical identity, using either one of them in the fingerprint is sufficient to ensure that distinct entities get different fingerprints. Changing the name of a symbolic binding should ideally not result in fingerprint changes, so exclude the name from the fingerprint when we have an index. Use the canonical type and constraint when fingerprinting an impl, so that uses of names in `name_ref` instructions aren't considered, only the entity the name resolves to, and different ways of spelling the same type have the same fingerprint. This similarly allows compatible changes to be made to impls without changing the fingerprint. Exclude the declaration block when determining the fingerprint of a declaration. The declaration block contains the declarations of parameters of the declaration, which do affect whether two declarations are identical, but not whether they denote the same entity, because it would be invalid to have different declaration blocks for declarations with the same name in the same scope. Therefore changes to the declaration block are compatible, and it's useful for such changes to not affect the fingerprint. This is not easy to test in isolation with our current testing machinery. However, a follow-on PR will change the name of a parameter in the prelude, and with this in place, will not cause any changes to occur elsewhere in the toolchain tests. --- .../check/testdata/alias/fail_builtins.carbon | 4 +- .../alias/no_prelude/export_name.carbon | 28 +- .../testdata/alias/no_prelude/import.carbon | 16 +- .../alias/no_prelude/import_access.carbon | 8 +- .../alias/no_prelude/import_order.carbon | 20 +- .../testdata/array/array_in_place.carbon | 34 +- .../testdata/array/array_vs_tuple.carbon | 116 +- .../testdata/array/assign_return_value.carbon | 50 +- .../check/testdata/array/assign_var.carbon | 80 +- toolchain/check/testdata/array/base.carbon | 38 +- .../testdata/array/canonicalize_index.carbon | 70 +- .../testdata/array/fail_bound_negative.carbon | 4 +- .../testdata/array/fail_bound_overflow.carbon | 4 +- .../testdata/array/fail_invalid_type.carbon | 2 +- .../testdata/array/fail_out_of_bound.carbon | 2 +- .../fail_out_of_bound_non_literal.carbon | 80 +- .../testdata/array/fail_type_mismatch.carbon | 40 +- .../testdata/array/function_param.carbon | 80 +- toolchain/check/testdata/array/import.carbon | 10 +- .../testdata/array/index_not_literal.carbon | 80 +- .../array/init_dependent_bound.carbon | 38 +- .../check/testdata/array/nine_elements.carbon | 176 +-- .../testdata/as/adapter_conversion.carbon | 274 ++--- toolchain/check/testdata/as/as_type.carbon | 6 +- toolchain/check/testdata/as/basic.carbon | 24 +- .../testdata/as/fail_no_conversion.carbon | 12 +- .../check/testdata/as/fail_not_type.carbon | 4 +- toolchain/check/testdata/as/overloaded.carbon | 76 +- .../testdata/basics/builtin_types.carbon | 24 +- .../check/testdata/basics/fail_bad_run.carbon | 2 +- .../testdata/basics/fail_bad_run_2.carbon | 2 +- .../basics/fail_non_type_as_type.carbon | 2 +- .../fail_numeric_literal_overflow.carbon | 62 +- .../testdata/basics/numeric_literals.carbon | 116 +- toolchain/check/testdata/basics/parens.carbon | 44 +- .../check/testdata/basics/run_i32.carbon | 24 +- .../testdata/basics/type_literals.carbon | 4 +- .../check/testdata/builtins/bool/eq.carbon | 132 +-- .../check/testdata/builtins/bool/neq.carbon | 132 +-- .../check/testdata/builtins/float/add.carbon | 4 +- .../check/testdata/builtins/float/div.carbon | 4 +- .../check/testdata/builtins/float/eq.carbon | 4 +- .../testdata/builtins/float/greater.carbon | 4 +- .../testdata/builtins/float/greater_eq.carbon | 4 +- .../check/testdata/builtins/float/less.carbon | 4 +- .../testdata/builtins/float/less_eq.carbon | 4 +- .../testdata/builtins/float/make_type.carbon | 44 +- .../check/testdata/builtins/float/mul.carbon | 4 +- .../testdata/builtins/float/negate.carbon | 4 +- .../check/testdata/builtins/float/neq.carbon | 4 +- .../check/testdata/builtins/float/sub.carbon | 4 +- .../check/testdata/builtins/print/char.carbon | 54 +- .../check/testdata/builtins/print/int.carbon | 54 +- .../check/testdata/builtins/read/int.carbon | 8 +- .../testdata/class/access_modifers.carbon | 158 +-- .../check/testdata/class/adapter/adapt.carbon | 18 +- .../testdata/class/adapter/adapt_copy.carbon | 192 +-- .../class/adapter/extend_adapt.carbon | 52 +- .../class/adapter/fail_adapt_bad_decl.carbon | 16 +- .../adapter/fail_adapt_with_subobjects.carbon | 10 +- .../testdata/class/adapter/init_adapt.carbon | 116 +- toolchain/check/testdata/class/base.carbon | 96 +- .../check/testdata/class/base_field.carbon | 34 +- .../check/testdata/class/base_method.carbon | 26 +- .../class/base_method_qualified.carbon | 34 +- .../testdata/class/base_method_shadow.carbon | 26 +- toolchain/check/testdata/class/basic.carbon | 28 +- .../class/complete_in_member_fn.carbon | 6 +- .../testdata/class/compound_field.carbon | 52 +- .../class/cross_package_import.carbon | 6 +- .../testdata/class/derived_to_base.carbon | 98 +- .../check/testdata/class/fail_abstract.carbon | 38 +- .../testdata/class/fail_addr_self.carbon | 10 +- .../testdata/class/fail_base_bad_type.carbon | 64 +- .../class/fail_base_method_define.carbon | 22 +- .../testdata/class/fail_base_misplaced.carbon | 6 +- .../class/fail_compound_type_mismatch.carbon | 12 +- .../class/fail_derived_to_base.carbon | 20 +- .../class/fail_field_modifiers.carbon | 52 +- .../testdata/class/fail_generic_method.carbon | 28 +- .../testdata/class/fail_import_misuses.carbon | 8 +- .../testdata/class/fail_incomplete.carbon | 2 +- .../check/testdata/class/fail_init.carbon | 28 +- .../class/fail_init_as_inplace.carbon | 56 +- .../class/fail_memaccess_category.carbon | 10 +- .../testdata/class/fail_member_of_let.carbon | 2 +- .../class/fail_method_modifiers.carbon | 12 +- .../class/fail_redeclaration_scope.carbon | 24 +- .../testdata/class/fail_redefinition.carbon | 40 +- .../check/testdata/class/fail_scope.carbon | 24 +- .../check/testdata/class/fail_self.carbon | 18 +- .../class/fail_todo_local_class.carbon | 32 +- .../testdata/class/fail_unbound_field.carbon | 6 +- .../testdata/class/fail_unknown_member.carbon | 6 +- .../check/testdata/class/field_access.carbon | 48 +- .../class/field_access_in_value.carbon | 48 +- .../check/testdata/class/generic/adapt.carbon | 424 +++---- .../class/generic/base_is_generic.carbon | 440 +++---- .../check/testdata/class/generic/basic.carbon | 62 +- .../check/testdata/class/generic/call.carbon | 394 +++---- .../generic/complete_in_conversion.carbon | 150 +-- .../check/testdata/class/generic/field.carbon | 152 +-- .../testdata/class/generic/import.carbon | 420 +++---- .../check/testdata/class/generic/init.carbon | 140 +-- .../class/generic/member_access.carbon | 310 ++--- .../class/generic/member_inline.carbon | 14 +- .../class/generic/member_lookup.carbon | 418 +++---- .../class/generic/member_out_of_line.carbon | 64 +- .../class/generic/method_deduce.carbon | 234 ++-- .../testdata/class/generic/redeclare.carbon | 106 +- .../testdata/class/generic/stringify.carbon | 158 +-- .../testdata/class/generic_method.carbon | 12 +- toolchain/check/testdata/class/import.carbon | 102 +- .../check/testdata/class/import_base.carbon | 114 +- .../testdata/class/import_indirect.carbon | 48 +- .../testdata/class/import_member_cycle.carbon | 4 +- .../testdata/class/import_struct_cyle.carbon | 4 +- .../testdata/class/inheritance_access.carbon | 132 +-- toolchain/check/testdata/class/init.carbon | 10 +- toolchain/check/testdata/class/init_as.carbon | 56 +- .../check/testdata/class/init_nested.carbon | 6 +- toolchain/check/testdata/class/method.carbon | 32 +- toolchain/check/testdata/class/nested.carbon | 80 +- .../check/testdata/class/nested_name.carbon | 6 +- .../class/no_prelude/export_name.carbon | 8 +- .../testdata/class/no_prelude/extern.carbon | 20 +- .../class/no_prelude/generic_vs_params.carbon | 72 +- .../class/no_prelude/implicit_import.carbon | 12 +- .../class/no_prelude/import_access.carbon | 8 +- .../no_prelude/indirect_import_member.carbon | 92 +- .../class/no_prelude/syntactic_merge.carbon | 44 +- .../check/testdata/class/raw_self.carbon | 36 +- .../check/testdata/class/raw_self_type.carbon | 14 +- .../check/testdata/class/reenter_scope.carbon | 2 +- toolchain/check/testdata/class/reorder.carbon | 24 +- .../testdata/class/reorder_qualified.carbon | 116 +- toolchain/check/testdata/class/scope.carbon | 58 +- toolchain/check/testdata/class/self.carbon | 8 +- .../testdata/class/self_conversion.carbon | 26 +- .../check/testdata/class/self_type.carbon | 2 +- .../check/testdata/class/static_method.carbon | 2 +- .../class/syntactic_merge_literal.carbon | 166 +-- .../class/todo_access_modifiers.carbon | 6 +- .../testdata/class/virtual_modifiers.carbon | 134 +-- toolchain/check/testdata/const/basic.carbon | 76 +- .../check/testdata/const/collapse.carbon | 36 +- .../check/testdata/const/fail_collapse.carbon | 44 +- toolchain/check/testdata/const/import.carbon | 20 +- toolchain/check/testdata/deduce/array.carbon | 392 +++---- .../check/testdata/deduce/generic_type.carbon | 428 +++---- .../check/testdata/deduce/int_float.carbon | 36 +- toolchain/check/testdata/deduce/tuple.carbon | 234 ++-- .../testdata/deduce/type_operator.carbon | 194 +-- .../check/testdata/eval/aggregate.carbon | 172 +-- .../check/testdata/eval/fail_aggregate.carbon | 122 +- toolchain/check/testdata/eval/symbolic.carbon | 78 +- .../expr_category/in_place_tuple_init.carbon | 52 +- .../testdata/function/builtin/call.carbon | 4 +- .../function/builtin/definition.carbon | 2 +- .../function/builtin/fail_redefined.carbon | 2 +- .../testdata/function/builtin/method.carbon | 94 +- .../no_prelude/call_from_operator.carbon | 662 +++++------ .../function/builtin/no_prelude/import.carbon | 16 +- .../function/call/fail_not_callable.carbon | 2 +- .../function/call/fail_param_count.carbon | 2 +- .../function/call/fail_param_type.carbon | 4 +- .../call/fail_return_type_mismatch.carbon | 6 +- .../check/testdata/function/call/i32.carbon | 24 +- .../function/call/more_param_ir.carbon | 60 +- .../testdata/function/call/params_one.carbon | 24 +- .../function/call/params_one_comma.carbon | 32 +- .../testdata/function/call/params_two.carbon | 48 +- .../function/call/params_two_comma.carbon | 72 +- .../call/prefer_unqualified_lookup.carbon | 82 +- .../declaration/fail_param_in_type.carbon | 2 +- .../declaration/fail_param_redecl.carbon | 2 +- .../function/declaration/import.carbon | 388 +++--- .../no_prelude/extern_library.carbon | 4 +- .../fail_import_incomplete_return.carbon | 36 +- .../no_prelude/name_poisoning.carbon | 74 +- .../declaration/param_same_name.carbon | 2 +- .../function/definition/import.carbon | 106 +- .../no_prelude/implicit_import.carbon | 8 +- .../no_prelude/syntactic_merge.carbon | 20 +- .../function/definition/params_one.carbon | 2 +- .../definition/params_one_comma.carbon | 2 +- .../function/definition/params_two.carbon | 2 +- .../definition/params_two_comma.carbon | 2 +- .../testdata/function/generic/deduce.carbon | 388 +++--- .../function/generic/no_prelude/call.carbon | 150 +-- .../fail_type_param_mismatch.carbon | 8 +- .../generic/no_prelude/import_specific.carbon | 22 +- .../no_prelude/indirect_generic_type.carbon | 52 +- .../generic/no_prelude/type_param.carbon | 8 +- .../function/generic/param_in_type.carbon | 42 +- .../function/generic/redeclare.carbon | 284 ++--- .../function/generic/resolve_used.carbon | 12 +- .../function/generic/return_slot.carbon | 132 +-- .../function/generic/undefined.carbon | 80 +- .../testdata/generic/complete_type.carbon | 44 +- toolchain/check/testdata/global/decl.carbon | 2 +- .../check/testdata/global/simple_init.carbon | 22 +- .../testdata/global/simple_with_fun.carbon | 24 +- .../if/fail_reachable_fallthrough.carbon | 62 +- toolchain/check/testdata/if/fail_scope.carbon | 24 +- .../if/unreachable_fallthrough.carbon | 50 +- toolchain/check/testdata/if_expr/basic.carbon | 28 +- .../if_expr/constant_condition.carbon | 68 +- .../testdata/if_expr/control_flow.carbon | 50 +- .../if_expr/fail_not_in_function.carbon | 10 +- .../if_expr/fail_partial_constant.carbon | 6 +- .../check/testdata/if_expr/nested.carbon | 86 +- .../check/testdata/if_expr/struct.carbon | 90 +- toolchain/check/testdata/impl/compound.carbon | 88 +- .../check/testdata/impl/declaration.carbon | 2 +- toolchain/check/testdata/impl/empty.carbon | 2 +- .../check/testdata/impl/extend_impl.carbon | 18 +- .../testdata/impl/extend_impl_generic.carbon | 228 ++-- .../testdata/impl/fail_call_invalid.carbon | 58 +- .../impl/fail_extend_impl_forall.carbon | 66 +- .../impl/fail_extend_impl_scope.carbon | 2 +- .../impl/fail_extend_impl_type_as.carbon | 2 +- .../impl/fail_extend_non_interface.carbon | 2 +- ..._extend_partially_defined_interface.carbon | 14 +- .../impl/fail_impl_bad_assoc_fn.carbon | 254 ++-- .../impl/fail_impl_bad_interface.carbon | 4 +- .../testdata/impl/fail_redefinition.carbon | 2 +- .../impl/fail_self_type_mismatch.carbon | 60 +- toolchain/check/testdata/impl/impl_as.carbon | 14 +- .../check/testdata/impl/impl_forall.carbon | 22 +- .../check/testdata/impl/lookup/alias.carbon | 18 +- .../lookup/fail_alias_impl_not_found.carbon | 8 +- .../lookup/fail_todo_undefined_impl.carbon | 24 +- .../check/testdata/impl/lookup/generic.carbon | 410 +++---- .../impl/lookup/instance_method.carbon | 18 +- .../impl/lookup/no_prelude/impl_forall.carbon | 374 +++--- .../impl/lookup/no_prelude/import.carbon | 828 ++++++------- .../lookup/no_prelude/specific_args.carbon | 438 +++---- .../testdata/impl/lookup/transitive.carbon | 84 +- .../testdata/impl/multiple_extend.carbon | 250 ++-- .../testdata/impl/no_prelude/basic.carbon | 14 +- .../no_prelude/generic_redeclaration.carbon | 236 ++-- .../no_prelude/import_builtin_call.carbon | 582 ++++----- .../impl/no_prelude/import_extend_impl.carbon | 70 +- .../impl/no_prelude/import_generic.carbon | 438 +++---- .../impl/no_prelude/import_self.carbon | 38 +- .../impl/no_prelude/import_use_generic.carbon | 126 +- .../impl/no_prelude/interface_args.carbon | 604 +++++----- .../no_definition_in_impl_file.carbon | 42 +- .../impl/no_prelude/self_in_class.carbon | 14 +- .../impl/no_prelude/self_in_signature.carbon | 216 ++-- .../check/testdata/impl/redeclaration.carbon | 2 +- .../index/array_element_access.carbon | 84 +- .../check/testdata/index/expr_category.carbon | 194 +-- .../index/fail_array_large_index.carbon | 68 +- .../index/fail_array_non_int_indexing.carbon | 26 +- .../fail_array_out_of_bound_access.carbon | 50 +- .../testdata/index/fail_expr_category.carbon | 106 +- .../testdata/index/fail_invalid_base.carbon | 8 +- .../testdata/index/fail_name_not_found.carbon | 2 +- .../index/fail_negative_indexing.carbon | 76 +- .../index/fail_non_tuple_access.carbon | 2 +- .../testdata/interface/assoc_const.carbon | 8 +- .../fail_assoc_const_bad_default.carbon | 6 +- .../fail_todo_assoc_const_default.carbon | 38 +- .../fail_todo_define_default_fn_inline.carbon | 2 +- ..._todo_define_default_fn_out_of_line.carbon | 64 +- .../testdata/interface/member_lookup.carbon | 274 ++--- .../no_prelude/assoc_const_in_generic.carbon | 86 +- .../interface/no_prelude/basic.carbon | 10 +- .../interface/no_prelude/default_fn.carbon | 16 +- .../interface/no_prelude/export_name.carbon | 18 +- .../fail_add_member_outside_definition.carbon | 64 +- .../no_prelude/fail_duplicate.carbon | 28 +- .../fail_generic_redeclaration.carbon | 96 +- .../no_prelude/fail_lookup_undefined.carbon | 6 +- .../no_prelude/fail_member_lookup.carbon | 18 +- .../no_prelude/fail_redeclare_member.carbon | 4 +- .../fail_todo_generic_default_fn.carbon | 52 +- .../interface/no_prelude/generic.carbon | 320 ++--- .../no_prelude/generic_import.carbon | 92 +- .../no_prelude/generic_vs_params.carbon | 92 +- .../interface/no_prelude/import.carbon | 126 +- .../interface/no_prelude/import_access.carbon | 20 +- .../no_prelude/import_interface_decl.carbon | 12 +- .../no_prelude/syntactic_merge.carbon | 152 +-- .../interface/todo_define_not_default.carbon | 46 +- .../ir/duplicate_name_same_line.carbon | 44 +- .../testdata/let/compile_time_bindings.carbon | 126 +- toolchain/check/testdata/let/convert.carbon | 88 +- .../testdata/let/fail_duplicate_decl.carbon | 48 +- .../check/testdata/let/fail_generic.carbon | 4 +- .../testdata/let/fail_generic_import.carbon | 2 +- .../testdata/let/fail_missing_value.carbon | 2 +- .../check/testdata/let/fail_modifiers.carbon | 80 +- .../testdata/let/fail_use_in_init.carbon | 2 +- toolchain/check/testdata/let/generic.carbon | 2 +- .../check/testdata/let/generic_import.carbon | 2 +- toolchain/check/testdata/let/global.carbon | 24 +- toolchain/check/testdata/let/local.carbon | 2 +- .../check/testdata/let/shadowed_decl.carbon | 24 +- .../testdata/namespace/add_to_import.carbon | 24 +- .../check/testdata/namespace/alias.carbon | 24 +- ...conflict_in_imports_namespace_first.carbon | 2 +- ...onflict_in_imports_namespace_second.carbon | 2 +- .../namespace/fail_decl_in_alias.carbon | 24 +- .../namespace/fail_not_top_level.carbon | 12 +- .../testdata/namespace/fail_params.carbon | 2 +- .../check/testdata/namespace/imported.carbon | 8 +- .../namespace/imported_indirect.carbon | 22 +- .../check/testdata/namespace/merging.carbon | 24 +- .../merging_with_indirections.carbon | 16 +- .../check/testdata/namespace/shadow.carbon | 30 +- .../operators/builtin/assignment.carbon | 240 ++-- .../fail_and_or_not_in_function.carbon | 6 +- .../fail_assignment_to_non_assignable.carbon | 150 +-- .../fail_redundant_compound_access.carbon | 46 +- .../builtin/fail_type_mismatch.carbon | 4 +- .../fail_type_mismatch_assignment.carbon | 22 +- .../builtin/fail_type_mismatch_once.carbon | 4 +- .../builtin/fail_unimplemented_op.carbon | 4 +- .../testdata/operators/overloaded/add.carbon | 40 +- .../operators/overloaded/bit_and.carbon | 40 +- .../overloaded/bit_complement.carbon | 16 +- .../operators/overloaded/bit_or.carbon | 40 +- .../operators/overloaded/bit_xor.carbon | 40 +- .../testdata/operators/overloaded/dec.carbon | 16 +- .../testdata/operators/overloaded/div.carbon | 40 +- .../testdata/operators/overloaded/eq.carbon | 58 +- .../overloaded/fail_assign_non_ref.carbon | 40 +- .../overloaded/fail_error_recovery.carbon | 16 +- .../operators/overloaded/fail_no_impl.carbon | 8 +- .../overloaded/fail_no_impl_for_arg.carbon | 42 +- .../operators/overloaded/implicit_as.carbon | 78 +- .../testdata/operators/overloaded/inc.carbon | 16 +- .../operators/overloaded/index.carbon | 164 +-- .../operators/overloaded/left_shift.carbon | 40 +- .../testdata/operators/overloaded/mod.carbon | 40 +- .../testdata/operators/overloaded/mul.carbon | 40 +- .../operators/overloaded/negate.carbon | 16 +- .../overloaded/no_prelude/index.carbon | 78 +- .../operators/overloaded/ordered.carbon | 52 +- .../operators/overloaded/right_shift.carbon | 40 +- .../testdata/operators/overloaded/sub.carbon | 40 +- .../package_expr/fail_not_found.carbon | 2 +- .../check/testdata/package_expr/syntax.carbon | 66 +- .../fail_conflict_no_namespaces.carbon | 6 +- .../packages/fail_import_type_error.carbon | 2 +- .../packages/implicit_imports_prelude.carbon | 30 +- .../no_prelude/cross_package_export.carbon | 42 +- .../no_prelude/cross_package_import.carbon | 24 +- .../packages/no_prelude/export_import.carbon | 40 +- .../packages/no_prelude/export_mixed.carbon | 48 +- .../packages/no_prelude/export_name.carbon | 80 +- .../no_prelude/fail_export_name_member.carbon | 4 +- .../no_prelude/fail_export_name_params.carbon | 8 +- .../implicit_imports_entities.carbon | 22 +- .../no_prelude/missing_prelude.carbon | 4 +- .../testdata/pointer/address_of_deref.carbon | 22 +- .../testdata/pointer/address_of_lvalue.carbon | 140 +-- toolchain/check/testdata/pointer/basic.carbon | 22 +- .../pointer/fail_address_of_value.carbon | 38 +- .../testdata/pointer/fail_deref_error.carbon | 2 +- .../pointer/fail_deref_not_pointer.carbon | 2 +- .../testdata/pointer/fail_deref_type.carbon | 2 +- .../pointer/fail_type_mismatch.carbon | 2 +- .../check/testdata/pointer/import.carbon | 34 +- .../testdata/pointer/nested_const.carbon | 54 +- toolchain/check/testdata/pointer/types.carbon | 58 +- .../testdata/return/code_after_return.carbon | 4 +- .../return/code_after_return_value.carbon | 32 +- .../testdata/return/fail_call_in_type.carbon | 2 +- .../return/fail_missing_return.carbon | 2 +- .../fail_return_var_no_returned_var.carbon | 2 +- .../fail_return_with_returned_var.carbon | 72 +- .../return/fail_returned_var_shadow.carbon | 88 +- .../return/fail_returned_var_type.carbon | 4 +- .../testdata/return/fail_type_mismatch.carbon | 4 +- .../testdata/return/fail_value_missing.carbon | 2 +- .../testdata/return/fail_var_in_type.carbon | 2 +- .../no_prelude/import_convert_function.carbon | 1044 ++++++++--------- .../check/testdata/return/returned_var.carbon | 72 +- .../testdata/return/returned_var_scope.carbon | 78 +- toolchain/check/testdata/return/struct.carbon | 44 +- toolchain/check/testdata/return/tuple.carbon | 68 +- toolchain/check/testdata/return/value.carbon | 24 +- .../testdata/struct/fail_assign_empty.carbon | 2 +- .../struct/fail_duplicate_name.carbon | 8 +- .../struct/fail_field_name_mismatch.carbon | 8 +- .../struct/fail_field_type_mismatch.carbon | 2 +- .../struct/fail_member_access_type.carbon | 4 +- .../struct/fail_non_member_access.carbon | 36 +- .../struct/fail_too_few_values.carbon | 2 +- .../testdata/struct/fail_type_assign.carbon | 4 +- .../testdata/struct/fail_value_as_type.carbon | 2 +- toolchain/check/testdata/struct/import.carbon | 390 +++--- .../struct/literal_member_access.carbon | 10 +- .../testdata/struct/member_access.carbon | 40 +- .../struct/nested_struct_in_place.carbon | 36 +- .../check/testdata/struct/one_entry.carbon | 44 +- .../testdata/struct/partially_const.carbon | 54 +- .../testdata/struct/reorder_fields.carbon | 4 +- .../testdata/struct/tuple_as_element.carbon | 90 +- .../check/testdata/struct/two_entries.carbon | 104 +- .../tuple/access/element_access.carbon | 46 +- .../tuple/access/fail_access_error.carbon | 62 +- .../tuple/access/fail_large_index.carbon | 48 +- .../access/fail_negative_indexing.carbon | 76 +- .../access/fail_non_deterministic_type.carbon | 78 +- .../tuple/access/fail_non_int_indexing.carbon | 62 +- .../tuple/access/fail_non_tuple_access.carbon | 36 +- .../access/fail_out_of_bound_access.carbon | 62 +- .../fail_out_of_bound_not_literal.carbon | 62 +- .../tuple/access/index_not_literal.carbon | 136 +-- .../tuple/access/return_value_access.carbon | 50 +- .../testdata/tuple/fail_assign_nested.carbon | 10 +- .../tuple/fail_element_type_mismatch.carbon | 30 +- .../tuple/fail_nested_incomplete.carbon | 2 +- .../tuple/fail_too_few_element.carbon | 8 +- .../testdata/tuple/fail_type_assign.carbon | 10 +- .../testdata/tuple/fail_value_as_type.carbon | 2 +- toolchain/check/testdata/tuple/import.carbon | 448 +++---- .../check/testdata/tuple/nested_tuple.carbon | 88 +- .../tuple/nested_tuple_in_place.carbon | 100 +- .../check/testdata/tuple/one_element.carbon | 44 +- .../check/testdata/tuple/two_elements.carbon | 104 +- .../var/fail_storage_is_literal.carbon | 2 +- .../testdata/where_expr/constraints.carbon | 58 +- .../testdata/where_expr/dot_self_index.carbon | 196 ++-- .../testdata/where_expr/equal_rewrite.carbon | 120 +- .../testdata/where_expr/fail_not_facet.carbon | 4 +- .../testdata/where_expr/non_generic.carbon | 2 +- .../testdata/while/fail_bad_condition.carbon | 2 +- toolchain/lower/testdata/array/base.carbon | 4 +- .../testdata/basics/numeric_literals.carbon | 4 +- .../function/call/struct_param.carbon | 4 +- .../testdata/function/call/tuple_param.carbon | 4 +- .../call/tuple_param_with_return_slot.carbon | 4 +- .../testdata/function/generic/call.carbon | 4 +- .../function/generic/call_method.carbon | 4 +- toolchain/lower/testdata/let/tuple.carbon | 8 +- toolchain/sem_ir/id_kind.h | 5 +- toolchain/sem_ir/ids.h | 30 + toolchain/sem_ir/inst_fingerprinter.cpp | 31 +- toolchain/sem_ir/typed_insts.h | 18 +- 445 files changed, 14686 insertions(+), 14638 deletions(-) diff --git a/toolchain/check/testdata/alias/fail_builtins.carbon b/toolchain/check/testdata/alias/fail_builtins.carbon index 9bb44e8bf077..8efaccf848c4 100644 --- a/toolchain/check/testdata/alias/fail_builtins.carbon +++ b/toolchain/check/testdata/alias/fail_builtins.carbon @@ -30,8 +30,8 @@ alias b = bool; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/alias/no_prelude/export_name.carbon b/toolchain/check/testdata/alias/no_prelude/export_name.carbon index 1b3877597218..6c9dc1fdbd04 100644 --- a/toolchain/check/testdata/alias/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/alias/no_prelude/export_name.carbon @@ -103,19 +103,19 @@ var d: D* = &c; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//base, C, unloaded -// CHECK:STDOUT: %import_ref.930: type = import_ref Main//base, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//base, C, unloaded +// CHECK:STDOUT: %import_ref.05a: type = import_ref Main//base, D, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//base, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: .D = %D // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %D: type = export D, imports.%import_ref.930 [template = constants.%C] +// CHECK:STDOUT: %D: type = export D, imports.%import_ref.05a [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -133,8 +133,8 @@ var d: D* = &c; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.7c6 = import_ref Main//base, D, unloaded +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.909 = import_ref Main//base, D, unloaded // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//base, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: } @@ -142,10 +142,10 @@ var d: D* = &c; // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { // CHECK:STDOUT: .C = %C -// CHECK:STDOUT: .D = imports.%import_ref.7c6 +// CHECK:STDOUT: .D = imports.%import_ref.909 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -164,14 +164,14 @@ var d: D* = &c; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.a28: type = import_ref Main//export, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.c3f: type = import_ref Main//export, D, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8db: = import_ref Main//export, inst20 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export, inst21 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .D = imports.%import_ref.a28 +// CHECK:STDOUT: .D = imports.%import_ref.c3f // CHECK:STDOUT: .d = %d // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -232,16 +232,16 @@ var d: D* = &c; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.a28: type = import_ref Main//export, D, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export_orig, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.c3f: type = import_ref Main//export, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export_orig, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8db: = import_ref Main//export_orig, inst20 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export_orig, inst21 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .D = imports.%import_ref.a28 -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .D = imports.%import_ref.c3f +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .c = %c // CHECK:STDOUT: .d = %d // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/alias/no_prelude/import.carbon b/toolchain/check/testdata/alias/no_prelude/import.carbon index e1ae8ddd0690..289c73aa28bb 100644 --- a/toolchain/check/testdata/alias/no_prelude/import.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import.carbon @@ -106,8 +106,8 @@ var c: () = a_alias_alias; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//class1, C, unloaded -// CHECK:STDOUT: %import_ref.8af: type = import_ref Main//class1, c_alias, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//class1, C, unloaded +// CHECK:STDOUT: %import_ref.204: type = import_ref Main//class1, c_alias, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.6da = import_ref Main//class1, a, unloaded // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//class1, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//class1, inst14 [no loc], unloaded @@ -115,15 +115,15 @@ var c: () = a_alias_alias; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d -// CHECK:STDOUT: .c_alias = imports.%import_ref.8af +// CHECK:STDOUT: .C = imports.%import_ref.f42 +// CHECK:STDOUT: .c_alias = imports.%import_ref.204 // CHECK:STDOUT: .a = imports.%import_ref.6da // CHECK:STDOUT: .c_alias_alias = %c_alias_alias // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %c_alias.ref: type = name_ref c_alias, imports.%import_ref.8af [template = constants.%C] -// CHECK:STDOUT: %c_alias_alias: type = bind_alias c_alias_alias, imports.%import_ref.8af [template = constants.%C] +// CHECK:STDOUT: %c_alias.ref: type = name_ref c_alias, imports.%import_ref.204 [template = constants.%C] +// CHECK:STDOUT: %c_alias_alias: type = bind_alias c_alias_alias, imports.%import_ref.204 [template = constants.%C] // CHECK:STDOUT: %b.var: ref %ptr = var b // CHECK:STDOUT: %b: ref %ptr = bind_name b, %b.var // CHECK:STDOUT: } @@ -144,7 +144,7 @@ var c: () = a_alias_alias; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.77b: type = import_ref Main//class2, c_alias_alias, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3fd: type = import_ref Main//class2, c_alias_alias, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.b9b = import_ref Main//class2, b, unloaded // CHECK:STDOUT: %import_ref.8db: = import_ref Main//class2, inst21 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//class2, inst22 [indirect], unloaded @@ -152,7 +152,7 @@ var c: () = a_alias_alias; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .c_alias_alias = imports.%import_ref.77b +// CHECK:STDOUT: .c_alias_alias = imports.%import_ref.3fd // CHECK:STDOUT: .b = imports.%import_ref.b9b // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/alias/no_prelude/import_access.carbon b/toolchain/check/testdata/alias/no_prelude/import_access.carbon index 3bd90d8b4491..bca5543ffc32 100644 --- a/toolchain/check/testdata/alias/no_prelude/import_access.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import_access.carbon @@ -88,16 +88,16 @@ var inst: Test.A = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Test//def, C, unloaded -// CHECK:STDOUT: %import_ref.7c2: type = import_ref Test//def, A, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f42 = import_ref Test//def, C, unloaded +// CHECK:STDOUT: %import_ref.323: type = import_ref Test//def, A, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Test//def, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Test//def, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d -// CHECK:STDOUT: .A [private] = imports.%import_ref.7c2 +// CHECK:STDOUT: .C = imports.%import_ref.f42 +// CHECK:STDOUT: .A [private] = imports.%import_ref.323 // CHECK:STDOUT: .inst = %inst // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test diff --git a/toolchain/check/testdata/alias/no_prelude/import_order.carbon b/toolchain/check/testdata/alias/no_prelude/import_order.carbon index 3c3221281bf9..7eba3c28593f 100644 --- a/toolchain/check/testdata/alias/no_prelude/import_order.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import_order.carbon @@ -82,11 +82,11 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//a, C, unloaded -// CHECK:STDOUT: %import_ref.18d: type = import_ref Main//a, a, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.a36: type = import_ref Main//a, b, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.3a1: type = import_ref Main//a, c, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.dd9: type = import_ref Main//a, d, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//a, C, unloaded +// CHECK:STDOUT: %import_ref.e38: type = import_ref Main//a, a, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.fb0: type = import_ref Main//a, b, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.610: type = import_ref Main//a, c, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.14f: type = import_ref Main//a, d, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.146: = import_ref Main//a, loc4_22, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//a, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.f99: %C.elem = import_ref Main//a, loc4_16, loaded [template = %.2fc] @@ -94,11 +94,11 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d -// CHECK:STDOUT: .a = imports.%import_ref.18d -// CHECK:STDOUT: .b = imports.%import_ref.a36 -// CHECK:STDOUT: .c = imports.%import_ref.3a1 -// CHECK:STDOUT: .d = imports.%import_ref.dd9 +// CHECK:STDOUT: .C = imports.%import_ref.f42 +// CHECK:STDOUT: .a = imports.%import_ref.e38 +// CHECK:STDOUT: .b = imports.%import_ref.fb0 +// CHECK:STDOUT: .c = imports.%import_ref.610 +// CHECK:STDOUT: .d = imports.%import_ref.14f // CHECK:STDOUT: .d_val = %d_val // CHECK:STDOUT: .c_val = %c_val // CHECK:STDOUT: .b_val = %b_val diff --git a/toolchain/check/testdata/array/array_in_place.carbon b/toolchain/check/testdata/array/array_in_place.carbon index c4052061a512..fb17f2b6175b 100644 --- a/toolchain/check/testdata/array/array_in_place.carbon +++ b/toolchain/check/testdata/array/array_in_place.carbon @@ -20,21 +20,21 @@ fn G() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [template] -// CHECK:STDOUT: %tuple.type.dc6: type = tuple_type (%i32, %i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.189: type = tuple_type (%i32, %i32, %i32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %array_type: type = array_type %int_2, %tuple.type.dc6 [template] -// CHECK:STDOUT: %tuple.type.1aa: type = tuple_type (%tuple.type.dc6, %tuple.type.dc6) [template] +// CHECK:STDOUT: %array_type: type = array_type %int_2, %tuple.type.189 [template] +// CHECK:STDOUT: %tuple.type.99b: type = tuple_type (%tuple.type.189, %tuple.type.189) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -48,8 +48,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %return.patt: %tuple.type.dc6 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.dc6 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.189 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.189 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_12: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] @@ -58,32 +58,32 @@ fn G() { // CHECK:STDOUT: %int_32.loc11_22: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_22: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc11_25.1: %tuple.type.ff9 = tuple_literal (%i32.loc11_12, %i32.loc11_17, %i32.loc11_22) -// CHECK:STDOUT: %.loc11_25.2: type = converted %.loc11_25.1, constants.%tuple.type.dc6 [template = constants.%tuple.type.dc6] -// CHECK:STDOUT: %return.param: ref %tuple.type.dc6 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %tuple.type.dc6 = return_slot %return.param +// CHECK:STDOUT: %.loc11_25.2: type = converted %.loc11_25.1, constants.%tuple.type.189 [template = constants.%tuple.type.189] +// CHECK:STDOUT: %return.param: ref %tuple.type.189 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %tuple.type.189 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %tuple.type.dc6; +// CHECK:STDOUT: fn @F() -> %tuple.type.189; // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %v.var: ref %array_type = var v // CHECK:STDOUT: %v: ref %array_type = bind_name v, %v.var // CHECK:STDOUT: %F.ref.loc14_34: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %.loc14_42.1: ref %tuple.type.dc6 = splice_block %.loc14_42.2 { +// CHECK:STDOUT: %.loc14_42.1: ref %tuple.type.189 = splice_block %.loc14_42.2 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] -// CHECK:STDOUT: %.loc14_42.2: ref %tuple.type.dc6 = array_index %v.var, %int_0 +// CHECK:STDOUT: %.loc14_42.2: ref %tuple.type.189 = array_index %v.var, %int_0 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.call.loc14_36: init %tuple.type.dc6 = call %F.ref.loc14_34() to %.loc14_42.1 +// CHECK:STDOUT: %F.call.loc14_36: init %tuple.type.189 = call %F.ref.loc14_34() to %.loc14_42.1 // CHECK:STDOUT: %F.ref.loc14_39: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %.loc14_42.3: ref %tuple.type.dc6 = splice_block %.loc14_42.4 { +// CHECK:STDOUT: %.loc14_42.3: ref %tuple.type.189 = splice_block %.loc14_42.4 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1] -// CHECK:STDOUT: %.loc14_42.4: ref %tuple.type.dc6 = array_index %v.var, %int_1 +// CHECK:STDOUT: %.loc14_42.4: ref %tuple.type.189 = array_index %v.var, %int_1 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.call.loc14_41: init %tuple.type.dc6 = call %F.ref.loc14_39() to %.loc14_42.3 -// CHECK:STDOUT: %.loc14_42.5: %tuple.type.1aa = tuple_literal (%F.call.loc14_36, %F.call.loc14_41) +// CHECK:STDOUT: %F.call.loc14_41: init %tuple.type.189 = call %F.ref.loc14_39() to %.loc14_42.3 +// CHECK:STDOUT: %.loc14_42.5: %tuple.type.99b = tuple_literal (%F.call.loc14_36, %F.call.loc14_41) // CHECK:STDOUT: %.loc14_42.6: init %array_type = array_init (%F.call.loc14_36, %F.call.loc14_41) to %v.var // CHECK:STDOUT: %.loc14_43: init %array_type = converted %.loc14_42.5, %.loc14_42.6 // CHECK:STDOUT: assign %v.var, %.loc14_43 diff --git a/toolchain/check/testdata/array/array_vs_tuple.carbon b/toolchain/check/testdata/array/array_vs_tuple.carbon index 8195902ea902..8bdda099b045 100644 --- a/toolchain/check/testdata/array/array_vs_tuple.carbon +++ b/toolchain/check/testdata/array/array_vs_tuple.carbon @@ -27,28 +27,28 @@ fn G() { // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] -// CHECK:STDOUT: %tuple.type.dc6: type = tuple_type (%i32, %i32, %i32) [template] -// CHECK:STDOUT: %tuple: %tuple.type.dc6 = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] +// CHECK:STDOUT: %tuple.type.189: type = tuple_type (%i32, %i32, %i32) [template] +// CHECK:STDOUT: %tuple: %tuple.type.189 = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -71,62 +71,62 @@ fn G() { // CHECK:STDOUT: %int_2.loc13_25: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc13: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc13_29.1: %tuple.type.37f = tuple_literal (%int_1.loc13_22, %int_2.loc13_25, %int_3.loc13) -// CHECK:STDOUT: %impl.elem0.loc13_29.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_29.1: = bound_method %int_1.loc13_22, %impl.elem0.loc13_29.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc13_29.1: = specific_function %Convert.bound.loc13_29.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc13_29.1: init %i32 = call %Convert.specific_fn.loc13_29.1(%int_1.loc13_22) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_29.2: init %i32 = converted %int_1.loc13_22, %int.convert_checked.loc13_29.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc13_29.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_29.1: = bound_method %int_1.loc13_22, %impl.elem0.loc13_29.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc13_29.1: = specific_function %Convert.bound.loc13_29.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc13_29.1: init %i32 = call %Convert.specific_fn.loc13_29.1(%int_1.loc13_22) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_29.2: init %i32 = converted %int_1.loc13_22, %int.convert_checked.loc13_29.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc13_29.3: ref %i32 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc13_29.4: init %i32 = initialize_from %.loc13_29.2 to %.loc13_29.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc13_29.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_29.2: = bound_method %int_2.loc13_25, %impl.elem0.loc13_29.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc13_29.2: = specific_function %Convert.bound.loc13_29.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc13_29.2: init %i32 = call %Convert.specific_fn.loc13_29.2(%int_2.loc13_25) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc13_29.5: init %i32 = converted %int_2.loc13_25, %int.convert_checked.loc13_29.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc13_29.4: init %i32 = initialize_from %.loc13_29.2 to %.loc13_29.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc13_29.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_29.2: = bound_method %int_2.loc13_25, %impl.elem0.loc13_29.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc13_29.2: = specific_function %Convert.bound.loc13_29.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc13_29.2: init %i32 = call %Convert.specific_fn.loc13_29.2(%int_2.loc13_25) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc13_29.5: init %i32 = converted %int_2.loc13_25, %int.convert_checked.loc13_29.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %int_1.loc13_29: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc13_29.6: ref %i32 = array_index %a.var, %int_1.loc13_29 -// CHECK:STDOUT: %.loc13_29.7: init %i32 = initialize_from %.loc13_29.5 to %.loc13_29.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc13_29.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_29.3: = bound_method %int_3.loc13, %impl.elem0.loc13_29.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc13_29.3: = specific_function %Convert.bound.loc13_29.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc13_29.3: init %i32 = call %Convert.specific_fn.loc13_29.3(%int_3.loc13) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc13_29.8: init %i32 = converted %int_3.loc13, %int.convert_checked.loc13_29.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc13_29.7: init %i32 = initialize_from %.loc13_29.5 to %.loc13_29.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc13_29.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_29.3: = bound_method %int_3.loc13, %impl.elem0.loc13_29.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc13_29.3: = specific_function %Convert.bound.loc13_29.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc13_29.3: init %i32 = call %Convert.specific_fn.loc13_29.3(%int_3.loc13) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc13_29.8: init %i32 = converted %int_3.loc13, %int.convert_checked.loc13_29.3 [template = constants.%int_3.822] // CHECK:STDOUT: %int_2.loc13_29: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc13_29.9: ref %i32 = array_index %a.var, %int_2.loc13_29 -// CHECK:STDOUT: %.loc13_29.10: init %i32 = initialize_from %.loc13_29.8 to %.loc13_29.9 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc13_29.10: init %i32 = initialize_from %.loc13_29.8 to %.loc13_29.9 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc13_29.11: init %array_type = array_init (%.loc13_29.4, %.loc13_29.7, %.loc13_29.10) to %a.var [template = constants.%array] // CHECK:STDOUT: %.loc13_30: init %array_type = converted %.loc13_29.1, %.loc13_29.11 [template = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc13_30 -// CHECK:STDOUT: %b.var: ref %tuple.type.dc6 = var b -// CHECK:STDOUT: %b: ref %tuple.type.dc6 = bind_name b, %b.var +// CHECK:STDOUT: %b.var: ref %tuple.type.189 = var b +// CHECK:STDOUT: %b: ref %tuple.type.189 = bind_name b, %b.var // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc14: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc14: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc14_36.1: %tuple.type.37f = tuple_literal (%int_1.loc14, %int_2.loc14, %int_3.loc14) -// CHECK:STDOUT: %impl.elem0.loc14_36.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_36.1: = bound_method %int_1.loc14, %impl.elem0.loc14_36.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc14_36.1: = specific_function %Convert.bound.loc14_36.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc14_36.1: init %i32 = call %Convert.specific_fn.loc14_36.1(%int_1.loc14) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_36.2: init %i32 = converted %int_1.loc14, %int.convert_checked.loc14_36.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc14_36.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_36.1: = bound_method %int_1.loc14, %impl.elem0.loc14_36.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc14_36.1: = specific_function %Convert.bound.loc14_36.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc14_36.1: init %i32 = call %Convert.specific_fn.loc14_36.1(%int_1.loc14) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_36.2: init %i32 = converted %int_1.loc14, %int.convert_checked.loc14_36.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %b.var, element0 -// CHECK:STDOUT: %.loc14_36.3: init %i32 = initialize_from %.loc14_36.2 to %tuple.elem0 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc14_36.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_36.2: = bound_method %int_2.loc14, %impl.elem0.loc14_36.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc14_36.2: = specific_function %Convert.bound.loc14_36.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc14_36.2: init %i32 = call %Convert.specific_fn.loc14_36.2(%int_2.loc14) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_36.4: init %i32 = converted %int_2.loc14, %int.convert_checked.loc14_36.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc14_36.3: init %i32 = initialize_from %.loc14_36.2 to %tuple.elem0 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc14_36.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_36.2: = bound_method %int_2.loc14, %impl.elem0.loc14_36.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc14_36.2: = specific_function %Convert.bound.loc14_36.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc14_36.2: init %i32 = call %Convert.specific_fn.loc14_36.2(%int_2.loc14) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_36.4: init %i32 = converted %int_2.loc14, %int.convert_checked.loc14_36.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %b.var, element1 -// CHECK:STDOUT: %.loc14_36.5: init %i32 = initialize_from %.loc14_36.4 to %tuple.elem1 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc14_36.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_36.3: = bound_method %int_3.loc14, %impl.elem0.loc14_36.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc14_36.3: = specific_function %Convert.bound.loc14_36.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc14_36.3: init %i32 = call %Convert.specific_fn.loc14_36.3(%int_3.loc14) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc14_36.6: init %i32 = converted %int_3.loc14, %int.convert_checked.loc14_36.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc14_36.5: init %i32 = initialize_from %.loc14_36.4 to %tuple.elem1 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc14_36.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_36.3: = bound_method %int_3.loc14, %impl.elem0.loc14_36.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc14_36.3: = specific_function %Convert.bound.loc14_36.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc14_36.3: init %i32 = call %Convert.specific_fn.loc14_36.3(%int_3.loc14) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc14_36.6: init %i32 = converted %int_3.loc14, %int.convert_checked.loc14_36.3 [template = constants.%int_3.822] // CHECK:STDOUT: %tuple.elem2: ref %i32 = tuple_access %b.var, element2 -// CHECK:STDOUT: %.loc14_36.7: init %i32 = initialize_from %.loc14_36.6 to %tuple.elem2 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc14_36.8: init %tuple.type.dc6 = tuple_init (%.loc14_36.3, %.loc14_36.5, %.loc14_36.7) to %b.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc14_37: init %tuple.type.dc6 = converted %.loc14_36.1, %.loc14_36.8 [template = constants.%tuple] +// CHECK:STDOUT: %.loc14_36.7: init %i32 = initialize_from %.loc14_36.6 to %tuple.elem2 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc14_36.8: init %tuple.type.189 = tuple_init (%.loc14_36.3, %.loc14_36.5, %.loc14_36.7) to %b.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc14_37: init %tuple.type.189 = converted %.loc14_36.1, %.loc14_36.8 [template = constants.%tuple] // CHECK:STDOUT: assign %b.var, %.loc14_37 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/assign_return_value.carbon b/toolchain/check/testdata/array/assign_return_value.carbon index 905f1d817de2..7956091b57a9 100644 --- a/toolchain/check/testdata/array/assign_return_value.carbon +++ b/toolchain/check/testdata/array/assign_return_value.carbon @@ -20,19 +20,19 @@ fn Run() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_0.f61) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_0.6a9) [template] // CHECK:STDOUT: %Run.type: type = fn_type @Run [template] // CHECK:STDOUT: %Run: %Run.type = struct_value () [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] @@ -41,8 +41,8 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -56,31 +56,31 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %return.patt: %tuple.type.0e4 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.0e4 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.a1c = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.a1c = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc11_16.1: %tuple.type.85c = tuple_literal (%i32) -// CHECK:STDOUT: %.loc11_16.2: type = converted %.loc11_16.1, constants.%tuple.type.0e4 [template = constants.%tuple.type.0e4] -// CHECK:STDOUT: %return.param: ref %tuple.type.0e4 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %tuple.type.0e4 = return_slot %return.param +// CHECK:STDOUT: %.loc11_16.2: type = converted %.loc11_16.1, constants.%tuple.type.a1c [template = constants.%tuple.type.a1c] +// CHECK:STDOUT: %return.param: ref %tuple.type.a1c = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %tuple.type.a1c = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [template = constants.%Run] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %tuple.type.0e4 { +// CHECK:STDOUT: fn @F() -> %tuple.type.a1c { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc11_30.1: %tuple.type.985 = tuple_literal (%int_0) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_30.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_30.3: %i32 = converted %int_0, %.loc11_30.2 [template = constants.%int_0.f61] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%.loc11_30.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_31: %tuple.type.0e4 = converted %.loc11_30.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_30.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_30.3: %i32 = converted %int_0, %.loc11_30.2 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%.loc11_30.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_31: %tuple.type.a1c = converted %.loc11_30.1, %tuple [template = constants.%tuple] // CHECK:STDOUT: return %.loc11_31 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -89,9 +89,9 @@ fn Run() { // CHECK:STDOUT: %t.var: ref %array_type = var t // CHECK:STDOUT: %t: ref %array_type = bind_name t, %t.var // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %F.call: init %tuple.type.0e4 = call %F.ref() -// CHECK:STDOUT: %.loc14_23.1: ref %tuple.type.0e4 = temporary_storage -// CHECK:STDOUT: %.loc14_23.2: ref %tuple.type.0e4 = temporary %.loc14_23.1, %F.call +// CHECK:STDOUT: %F.call: init %tuple.type.a1c = call %F.ref() +// CHECK:STDOUT: %.loc14_23.1: ref %tuple.type.a1c = temporary_storage +// CHECK:STDOUT: %.loc14_23.2: ref %tuple.type.a1c = temporary %.loc14_23.1, %F.call // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc14_23.2, element0 // CHECK:STDOUT: %.loc14_23.3: %i32 = bind_value %tuple.elem0 // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] diff --git a/toolchain/check/testdata/array/assign_var.carbon b/toolchain/check/testdata/array/assign_var.carbon index 8458a822cf80..891af5952c6d 100644 --- a/toolchain/check/testdata/array/assign_var.carbon +++ b/toolchain/check/testdata/array/assign_var.carbon @@ -16,33 +16,33 @@ var b: [i32; 3] = a; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.dc6: type = tuple_type (%i32, %i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.189: type = tuple_type (%i32, %i32, %i32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %tuple: %tuple.type.dc6 = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %tuple: %tuple.type.189 = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -55,8 +55,8 @@ var b: [i32; 3] = a; // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.dc6 = var a -// CHECK:STDOUT: %a: ref %tuple.type.dc6 = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %tuple.type.189 = var a +// CHECK:STDOUT: %a: ref %tuple.type.189 = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %array_type = var b // CHECK:STDOUT: %b: ref %array_type = bind_name b, %b.var // CHECK:STDOUT: } @@ -67,31 +67,31 @@ var b: [i32; 3] = a; // CHECK:STDOUT: %int_2.loc11: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_34.1: %tuple.type.37f = tuple_literal (%int_1.loc11, %int_2.loc11, %int_3) -// CHECK:STDOUT: %impl.elem0.loc11_34.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_34.1: = bound_method %int_1.loc11, %impl.elem0.loc11_34.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11_34.1: = specific_function %Convert.bound.loc11_34.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11_34.1: init %i32 = call %Convert.specific_fn.loc11_34.1(%int_1.loc11) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_34.2: init %i32 = converted %int_1.loc11, %int.convert_checked.loc11_34.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc11_34.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_34.1: = bound_method %int_1.loc11, %impl.elem0.loc11_34.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11_34.1: = specific_function %Convert.bound.loc11_34.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11_34.1: init %i32 = call %Convert.specific_fn.loc11_34.1(%int_1.loc11) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_34.2: init %i32 = converted %int_1.loc11, %int.convert_checked.loc11_34.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc11: ref %i32 = tuple_access file.%a.var, element0 -// CHECK:STDOUT: %.loc11_34.3: init %i32 = initialize_from %.loc11_34.2 to %tuple.elem0.loc11 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc11_34.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_34.2: = bound_method %int_2.loc11, %impl.elem0.loc11_34.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_34.2: = specific_function %Convert.bound.loc11_34.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_34.2: init %i32 = call %Convert.specific_fn.loc11_34.2(%int_2.loc11) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_34.4: init %i32 = converted %int_2.loc11, %int.convert_checked.loc11_34.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc11_34.3: init %i32 = initialize_from %.loc11_34.2 to %tuple.elem0.loc11 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc11_34.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_34.2: = bound_method %int_2.loc11, %impl.elem0.loc11_34.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_34.2: = specific_function %Convert.bound.loc11_34.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_34.2: init %i32 = call %Convert.specific_fn.loc11_34.2(%int_2.loc11) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_34.4: init %i32 = converted %int_2.loc11, %int.convert_checked.loc11_34.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1.loc11: ref %i32 = tuple_access file.%a.var, element1 -// CHECK:STDOUT: %.loc11_34.5: init %i32 = initialize_from %.loc11_34.4 to %tuple.elem1.loc11 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc11_34.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_34.3: = bound_method %int_3, %impl.elem0.loc11_34.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc11_34.3: = specific_function %Convert.bound.loc11_34.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc11_34.3: init %i32 = call %Convert.specific_fn.loc11_34.3(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc11_34.6: init %i32 = converted %int_3, %int.convert_checked.loc11_34.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc11_34.5: init %i32 = initialize_from %.loc11_34.4 to %tuple.elem1.loc11 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc11_34.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_34.3: = bound_method %int_3, %impl.elem0.loc11_34.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc11_34.3: = specific_function %Convert.bound.loc11_34.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc11_34.3: init %i32 = call %Convert.specific_fn.loc11_34.3(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc11_34.6: init %i32 = converted %int_3, %int.convert_checked.loc11_34.3 [template = constants.%int_3.822] // CHECK:STDOUT: %tuple.elem2.loc11: ref %i32 = tuple_access file.%a.var, element2 -// CHECK:STDOUT: %.loc11_34.7: init %i32 = initialize_from %.loc11_34.6 to %tuple.elem2.loc11 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc11_34.8: init %tuple.type.dc6 = tuple_init (%.loc11_34.3, %.loc11_34.5, %.loc11_34.7) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_35: init %tuple.type.dc6 = converted %.loc11_34.1, %.loc11_34.8 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_34.7: init %i32 = initialize_from %.loc11_34.6 to %tuple.elem2.loc11 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc11_34.8: init %tuple.type.189 = tuple_init (%.loc11_34.3, %.loc11_34.5, %.loc11_34.7) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_35: init %tuple.type.189 = converted %.loc11_34.1, %.loc11_34.8 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_35 -// CHECK:STDOUT: %a.ref: ref %tuple.type.dc6 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.189 = name_ref a, file.%a // CHECK:STDOUT: %tuple.elem0.loc12: ref %i32 = tuple_access %a.ref, element0 // CHECK:STDOUT: %.loc12_19.1: %i32 = bind_value %tuple.elem0.loc12 // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] diff --git a/toolchain/check/testdata/array/base.carbon b/toolchain/check/testdata/array/base.carbon index 177b67066ddb..cf4f4d45a26c 100644 --- a/toolchain/check/testdata/array/base.carbon +++ b/toolchain/check/testdata/array/base.carbon @@ -19,17 +19,17 @@ var c: [(); 5] = ((), (), (), (), (),); // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %array_type.b8e: type = array_type %int_1.5b8, %i32 [template] +// CHECK:STDOUT: %array_type.0cb: type = array_type %int_1.5b8, %i32 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %array.0e3: %array_type.b8e = tuple_value (%int_1.c60) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %array.237: %array_type.0cb = tuple_value (%int_1.5d2) [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %array_type.ce7: type = array_type %int_2, f64 [template] // CHECK:STDOUT: %float.6e4: f64 = float_literal 11.100000000000001 [template] @@ -47,9 +47,9 @@ var c: [(); 5] = ((), (), (), (), (),); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Float = %import_ref.20bd +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -63,8 +63,8 @@ var c: [(); 5] = ((), (), (), (), (),); // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %array_type.b8e = var a -// CHECK:STDOUT: %a: ref %array_type.b8e = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %array_type.0cb = var a +// CHECK:STDOUT: %a: ref %array_type.0cb = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %array_type.ce7 = var b // CHECK:STDOUT: %b: ref %array_type.ce7 = bind_name b, %b.var // CHECK:STDOUT: %c.var: ref %array_type.c13 = var c @@ -75,16 +75,16 @@ var c: [(); 5] = ((), (), (), (), (),); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_22.1: %tuple.type.985 = tuple_literal (%int_1.loc11) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.loc11, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1.loc11) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_22.2: init %i32 = converted %int_1.loc11, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1.loc11) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_22.2: init %i32 = converted %int_1.loc11, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0.loc11: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc11_22.3: ref %i32 = array_index file.%a.var, %int_0.loc11 -// CHECK:STDOUT: %.loc11_22.4: init %i32 = initialize_from %.loc11_22.2 to %.loc11_22.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_22.5: init %array_type.b8e = array_init (%.loc11_22.4) to file.%a.var [template = constants.%array.0e3] -// CHECK:STDOUT: %.loc11_23: init %array_type.b8e = converted %.loc11_22.1, %.loc11_22.5 [template = constants.%array.0e3] +// CHECK:STDOUT: %.loc11_22.4: init %i32 = initialize_from %.loc11_22.2 to %.loc11_22.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_22.5: init %array_type.0cb = array_init (%.loc11_22.4) to file.%a.var [template = constants.%array.237] +// CHECK:STDOUT: %.loc11_23: init %array_type.0cb = converted %.loc11_22.1, %.loc11_22.5 [template = constants.%array.237] // CHECK:STDOUT: assign file.%a.var, %.loc11_23 // CHECK:STDOUT: %float.loc12_20: f64 = float_literal 11.100000000000001 [template = constants.%float.6e4] // CHECK:STDOUT: %float.loc12_26: f64 = float_literal 2.2000000000000002 [template = constants.%float.9f7] diff --git a/toolchain/check/testdata/array/canonicalize_index.carbon b/toolchain/check/testdata/array/canonicalize_index.carbon index 5526450d8eaf..1edebc6a88bd 100644 --- a/toolchain/check/testdata/array/canonicalize_index.carbon +++ b/toolchain/check/testdata/array/canonicalize_index.carbon @@ -27,32 +27,32 @@ let c: [i32; ConvertToU32(3)]* = &a; // CHECK:STDOUT: %ConvertToU32: %ConvertToU32.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [template] // CHECK:STDOUT: %ptr: type = ptr_type %array_type [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .UInt = %import_ref.b2c -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .UInt = %import_ref.bcd +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -124,30 +124,30 @@ let c: [i32; ConvertToU32(3)]* = &a; // CHECK:STDOUT: %int_2.loc14_31: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc14_35.1: %tuple.type = tuple_literal (%int_1.loc14_28, %int_2.loc14_31, %int_3) -// CHECK:STDOUT: %impl.elem0.loc14_35.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_35.1: = bound_method %int_1.loc14_28, %impl.elem0.loc14_35.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc14_35.1: = specific_function %Convert.bound.loc14_35.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc14_35.1: init %i32 = call %Convert.specific_fn.loc14_35.1(%int_1.loc14_28) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_35.2: init %i32 = converted %int_1.loc14_28, %int.convert_checked.loc14_35.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc14_35.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_35.1: = bound_method %int_1.loc14_28, %impl.elem0.loc14_35.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc14_35.1: = specific_function %Convert.bound.loc14_35.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc14_35.1: init %i32 = call %Convert.specific_fn.loc14_35.1(%int_1.loc14_28) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_35.2: init %i32 = converted %int_1.loc14_28, %int.convert_checked.loc14_35.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc14_35.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc14_35.4: init %i32 = initialize_from %.loc14_35.2 to %.loc14_35.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc14_35.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_35.2: = bound_method %int_2.loc14_31, %impl.elem0.loc14_35.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc14_35.2: = specific_function %Convert.bound.loc14_35.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc14_35.2: init %i32 = call %Convert.specific_fn.loc14_35.2(%int_2.loc14_31) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_35.5: init %i32 = converted %int_2.loc14_31, %int.convert_checked.loc14_35.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc14_35.4: init %i32 = initialize_from %.loc14_35.2 to %.loc14_35.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc14_35.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_35.2: = bound_method %int_2.loc14_31, %impl.elem0.loc14_35.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc14_35.2: = specific_function %Convert.bound.loc14_35.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc14_35.2: init %i32 = call %Convert.specific_fn.loc14_35.2(%int_2.loc14_31) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_35.5: init %i32 = converted %int_2.loc14_31, %int.convert_checked.loc14_35.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %int_1.loc14_35: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_35.6: ref %i32 = array_index file.%a.var, %int_1.loc14_35 -// CHECK:STDOUT: %.loc14_35.7: init %i32 = initialize_from %.loc14_35.5 to %.loc14_35.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc14_35.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_35.3: = bound_method %int_3, %impl.elem0.loc14_35.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc14_35.3: = specific_function %Convert.bound.loc14_35.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc14_35.3: init %i32 = call %Convert.specific_fn.loc14_35.3(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc14_35.8: init %i32 = converted %int_3, %int.convert_checked.loc14_35.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc14_35.7: init %i32 = initialize_from %.loc14_35.5 to %.loc14_35.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc14_35.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_35.3: = bound_method %int_3, %impl.elem0.loc14_35.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc14_35.3: = specific_function %Convert.bound.loc14_35.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc14_35.3: init %i32 = call %Convert.specific_fn.loc14_35.3(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc14_35.8: init %i32 = converted %int_3, %int.convert_checked.loc14_35.3 [template = constants.%int_3.822] // CHECK:STDOUT: %int_2.loc14_35: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc14_35.9: ref %i32 = array_index file.%a.var, %int_2.loc14_35 -// CHECK:STDOUT: %.loc14_35.10: init %i32 = initialize_from %.loc14_35.8 to %.loc14_35.9 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc14_35.10: init %i32 = initialize_from %.loc14_35.8 to %.loc14_35.9 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc14_35.11: init %array_type = array_init (%.loc14_35.4, %.loc14_35.7, %.loc14_35.10) to file.%a.var [template = constants.%array] // CHECK:STDOUT: %.loc14_36: init %array_type = converted %.loc14_35.1, %.loc14_35.11 [template = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc14_36 diff --git a/toolchain/check/testdata/array/fail_bound_negative.carbon b/toolchain/check/testdata/array/fail_bound_negative.carbon index 2f99b8f395db..b77455c9a163 100644 --- a/toolchain/check/testdata/array/fail_bound_negative.carbon +++ b/toolchain/check/testdata/array/fail_bound_negative.carbon @@ -26,8 +26,8 @@ var a: [i32; Negate(1)]; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/fail_bound_overflow.carbon b/toolchain/check/testdata/array/fail_bound_overflow.carbon index 49c119d1e77b..b9fa33b71e16 100644 --- a/toolchain/check/testdata/array/fail_bound_overflow.carbon +++ b/toolchain/check/testdata/array/fail_bound_overflow.carbon @@ -29,8 +29,8 @@ var b: [1; 39999999999999999993]; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/fail_invalid_type.carbon b/toolchain/check/testdata/array/fail_invalid_type.carbon index 1c12fa142e43..b6a4d3695c2a 100644 --- a/toolchain/check/testdata/array/fail_invalid_type.carbon +++ b/toolchain/check/testdata/array/fail_invalid_type.carbon @@ -23,7 +23,7 @@ var a: [1; 1]; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/fail_out_of_bound.carbon b/toolchain/check/testdata/array/fail_out_of_bound.carbon index 06f9999f85ab..133183bf89be 100644 --- a/toolchain/check/testdata/array/fail_out_of_bound.carbon +++ b/toolchain/check/testdata/array/fail_out_of_bound.carbon @@ -27,7 +27,7 @@ var a: [i32; 1] = (1, 2, 3); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/fail_out_of_bound_non_literal.carbon b/toolchain/check/testdata/array/fail_out_of_bound_non_literal.carbon index caeca1296cbf..123be410b791 100644 --- a/toolchain/check/testdata/array/fail_out_of_bound_non_literal.carbon +++ b/toolchain/check/testdata/array/fail_out_of_bound_non_literal.carbon @@ -25,28 +25,28 @@ var b: i32 = a[{.index = 3}.index]; // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: %struct_type.index: type = struct_type {.index: Core.IntLiteral} [template] // CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_3.1ba) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -71,30 +71,30 @@ var b: i32 = a[{.index = 3}.index]; // CHECK:STDOUT: %int_2.loc11_23: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc11: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_27.1: %tuple.type = tuple_literal (%int_1.loc11_20, %int_2.loc11_23, %int_3.loc11) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_1.loc11_20, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_1.loc11_20) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_27.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_1.loc11_20, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_1.loc11_20) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_27.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc11_27.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc11_27.4: init %i32 = initialize_from %.loc11_27.2 to %.loc11_27.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_2.loc11_23, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_2.loc11_23) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_27.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_27.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc11_27.4: init %i32 = initialize_from %.loc11_27.2 to %.loc11_27.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_2.loc11_23, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_2.loc11_23) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_27.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_27.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %int_1.loc11_27: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_27.6: ref %i32 = array_index file.%a.var, %int_1.loc11_27 -// CHECK:STDOUT: %.loc11_27.7: init %i32 = initialize_from %.loc11_27.5 to %.loc11_27.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc11_27.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.3: = bound_method %int_3.loc11, %impl.elem0.loc11_27.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.3: = specific_function %Convert.bound.loc11_27.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc11_27.3: init %i32 = call %Convert.specific_fn.loc11_27.3(%int_3.loc11) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc11_27.8: init %i32 = converted %int_3.loc11, %int.convert_checked.loc11_27.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc11_27.7: init %i32 = initialize_from %.loc11_27.5 to %.loc11_27.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc11_27.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.3: = bound_method %int_3.loc11, %impl.elem0.loc11_27.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.3: = specific_function %Convert.bound.loc11_27.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc11_27.3: init %i32 = call %Convert.specific_fn.loc11_27.3(%int_3.loc11) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc11_27.8: init %i32 = converted %int_3.loc11, %int.convert_checked.loc11_27.3 [template = constants.%int_3.822] // CHECK:STDOUT: %int_2.loc11_27: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc11_27.9: ref %i32 = array_index file.%a.var, %int_2.loc11_27 -// CHECK:STDOUT: %.loc11_27.10: init %i32 = initialize_from %.loc11_27.8 to %.loc11_27.9 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc11_27.10: init %i32 = initialize_from %.loc11_27.8 to %.loc11_27.9 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc11_27.11: init %array_type = array_init (%.loc11_27.4, %.loc11_27.7, %.loc11_27.10) to file.%a.var [template = constants.%array] // CHECK:STDOUT: %.loc11_28: init %array_type = converted %.loc11_27.1, %.loc11_27.11 [template = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc11_28 @@ -106,12 +106,12 @@ var b: i32 = a[{.index = 3}.index]; // CHECK:STDOUT: %.loc15_28.1: Core.IntLiteral = struct_access %.loc15_27.2, element0 [template = constants.%int_3.1ba] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %.loc15_28.1, %impl.elem0.loc15 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%.loc15_28.1) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc15_28.2: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc15_28.3: %i32 = converted %.loc15_28.1, %.loc15_28.2 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %.loc15_28.1, %impl.elem0.loc15 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%.loc15_28.1) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc15_28.2: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc15_28.3: %i32 = converted %.loc15_28.1, %.loc15_28.2 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc15_34.1: ref %i32 = array_index %a.ref, %.loc15_28.3 [template = ] // CHECK:STDOUT: %.loc15_34.2: %i32 = bind_value %.loc15_34.1 // CHECK:STDOUT: assign file.%b.var, %.loc15_34.2 diff --git a/toolchain/check/testdata/array/fail_type_mismatch.carbon b/toolchain/check/testdata/array/fail_type_mismatch.carbon index 07ac18b5feca..8f74e5056204 100644 --- a/toolchain/check/testdata/array/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/array/fail_type_mismatch.carbon @@ -51,23 +51,23 @@ var d: [i32; 3] = t2; // CHECK:STDOUT: %str.abb: String = string_literal "World" [template] // CHECK:STDOUT: %tuple.type.b0f: type = tuple_type (Core.IntLiteral, String, String) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %tuple.type.6e2: type = tuple_type (%i32, String, String) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %tuple.type.9e7: type = tuple_type (%i32, String, String) [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -86,14 +86,14 @@ var d: [i32; 3] = t2; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %a.var: ref %array_type = var a // CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var -// CHECK:STDOUT: %t1.var: ref %tuple.type.6e2 = var t1 -// CHECK:STDOUT: %t1: ref %tuple.type.6e2 = bind_name t1, %t1.var +// CHECK:STDOUT: %t1.var: ref %tuple.type.9e7 = var t1 +// CHECK:STDOUT: %t1: ref %tuple.type.9e7 = bind_name t1, %t1.var // CHECK:STDOUT: %b.var: ref %array_type = var b // CHECK:STDOUT: %b: ref %array_type = bind_name b, %b.var // CHECK:STDOUT: %c.var: ref %array_type = var c // CHECK:STDOUT: %c: ref %array_type = bind_name c, %c.var -// CHECK:STDOUT: %t2.var: ref %tuple.type.471 = var t2 -// CHECK:STDOUT: %t2: ref %tuple.type.471 = bind_name t2, %t2.var +// CHECK:STDOUT: %t2.var: ref %tuple.type.d07 = var t2 +// CHECK:STDOUT: %t2: ref %tuple.type.d07 = bind_name t2, %t2.var // CHECK:STDOUT: %d.var: ref %array_type = var d // CHECK:STDOUT: %d: ref %array_type = bind_name d, %d.var // CHECK:STDOUT: } @@ -104,17 +104,17 @@ var d: [i32; 3] = t2; // CHECK:STDOUT: %str.loc18_23: String = string_literal "Hello" [template = constants.%str.ef1] // CHECK:STDOUT: %str.loc18_32: String = string_literal "World" [template = constants.%str.abb] // CHECK:STDOUT: %.loc18_39.1: %tuple.type.b0f = tuple_literal (%int_1.loc18, %str.loc18_23, %str.loc18_32) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.loc18, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1.loc18) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc18_39.2: init %i32 = converted %int_1.loc18, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1.loc18) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc18_39.2: init %i32 = converted %int_1.loc18, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc18_39.3: ref %i32 = array_index file.%a.var, %int_0.loc18 -// CHECK:STDOUT: %.loc18_39.4: init %i32 = initialize_from %.loc18_39.2 to %.loc18_39.3 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc18_39.4: init %i32 = initialize_from %.loc18_39.2 to %.loc18_39.3 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_39.5: %i32 = converted %str.loc18_23, [template = ] // CHECK:STDOUT: assign file.%a.var, -// CHECK:STDOUT: %t1.ref: ref %tuple.type.6e2 = name_ref t1, file.%t1 +// CHECK:STDOUT: %t1.ref: ref %tuple.type.9e7 = name_ref t1, file.%t1 // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %t1.ref, element0 // CHECK:STDOUT: %.loc28_19.1: %i32 = bind_value %tuple.elem0 // CHECK:STDOUT: %int_0.loc28: Core.IntLiteral = int_value 0 [template = constants.%int_0] @@ -127,7 +127,7 @@ var d: [i32; 3] = t2; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2] // CHECK:STDOUT: %.loc34: %tuple.type.f94 = tuple_literal (%int_1.loc34, %int_2) // CHECK:STDOUT: assign file.%c.var, -// CHECK:STDOUT: %t2.ref: ref %tuple.type.471 = name_ref t2, file.%t2 +// CHECK:STDOUT: %t2.ref: ref %tuple.type.d07 = name_ref t2, file.%t2 // CHECK:STDOUT: assign file.%d.var, // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/function_param.carbon b/toolchain/check/testdata/array/function_param.carbon index 231d4135c507..7c62c873840f 100644 --- a/toolchain/check/testdata/array/function_param.carbon +++ b/toolchain/check/testdata/array/function_param.carbon @@ -31,26 +31,26 @@ fn G() -> i32 { // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -121,41 +121,41 @@ fn G() -> i32 { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc16_20.1: %tuple.type = tuple_literal (%int_1.loc16_13, %int_2.loc16_16, %int_3) // CHECK:STDOUT: %int_1.loc16_23: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16_20.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_20.1: = bound_method %int_1.loc16_13, %impl.elem0.loc16_20.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc16_20.1: = specific_function %Convert.bound.loc16_20.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc16_20.1: init %i32 = call %Convert.specific_fn.loc16_20.1(%int_1.loc16_13) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_20.2: init %i32 = converted %int_1.loc16_13, %int.convert_checked.loc16_20.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc16_20.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_20.1: = bound_method %int_1.loc16_13, %impl.elem0.loc16_20.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc16_20.1: = specific_function %Convert.bound.loc16_20.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc16_20.1: init %i32 = call %Convert.specific_fn.loc16_20.1(%int_1.loc16_13) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_20.2: init %i32 = converted %int_1.loc16_13, %int.convert_checked.loc16_20.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc16_20.3: ref %array_type = temporary_storage // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc16_20.4: ref %i32 = array_index %.loc16_20.3, %int_0 -// CHECK:STDOUT: %.loc16_20.5: init %i32 = initialize_from %.loc16_20.2 to %.loc16_20.4 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc16_20.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_20.2: = bound_method %int_2.loc16_16, %impl.elem0.loc16_20.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc16_20.2: = specific_function %Convert.bound.loc16_20.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc16_20.2: init %i32 = call %Convert.specific_fn.loc16_20.2(%int_2.loc16_16) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc16_20.6: init %i32 = converted %int_2.loc16_16, %int.convert_checked.loc16_20.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc16_20.5: init %i32 = initialize_from %.loc16_20.2 to %.loc16_20.4 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc16_20.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_20.2: = bound_method %int_2.loc16_16, %impl.elem0.loc16_20.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc16_20.2: = specific_function %Convert.bound.loc16_20.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc16_20.2: init %i32 = call %Convert.specific_fn.loc16_20.2(%int_2.loc16_16) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc16_20.6: init %i32 = converted %int_2.loc16_16, %int.convert_checked.loc16_20.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %int_1.loc16_20: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc16_20.7: ref %i32 = array_index %.loc16_20.3, %int_1.loc16_20 -// CHECK:STDOUT: %.loc16_20.8: init %i32 = initialize_from %.loc16_20.6 to %.loc16_20.7 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc16_20.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_20.3: = bound_method %int_3, %impl.elem0.loc16_20.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc16_20.3: = specific_function %Convert.bound.loc16_20.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc16_20.3: init %i32 = call %Convert.specific_fn.loc16_20.3(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc16_20.9: init %i32 = converted %int_3, %int.convert_checked.loc16_20.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc16_20.8: init %i32 = initialize_from %.loc16_20.6 to %.loc16_20.7 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc16_20.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_20.3: = bound_method %int_3, %impl.elem0.loc16_20.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc16_20.3: = specific_function %Convert.bound.loc16_20.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc16_20.3: init %i32 = call %Convert.specific_fn.loc16_20.3(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc16_20.9: init %i32 = converted %int_3, %int.convert_checked.loc16_20.3 [template = constants.%int_3.822] // CHECK:STDOUT: %int_2.loc16_20: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc16_20.10: ref %i32 = array_index %.loc16_20.3, %int_2.loc16_20 -// CHECK:STDOUT: %.loc16_20.11: init %i32 = initialize_from %.loc16_20.9 to %.loc16_20.10 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc16_20.11: init %i32 = initialize_from %.loc16_20.9 to %.loc16_20.10 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc16_20.12: init %array_type = array_init (%.loc16_20.5, %.loc16_20.8, %.loc16_20.11) to %.loc16_20.3 [template = constants.%array] // CHECK:STDOUT: %.loc16_20.13: init %array_type = converted %.loc16_20.1, %.loc16_20.12 [template = constants.%array] // CHECK:STDOUT: %.loc16_20.14: ref %array_type = temporary %.loc16_20.3, %.loc16_20.13 // CHECK:STDOUT: %.loc16_20.15: %array_type = bind_value %.loc16_20.14 -// CHECK:STDOUT: %impl.elem0.loc16_23: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_23: = bound_method %int_1.loc16_23, %impl.elem0.loc16_23 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc16_23: = specific_function %Convert.bound.loc16_23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc16_23: init %i32 = call %Convert.specific_fn.loc16_23(%int_1.loc16_23) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_23.1: %i32 = value_of_initializer %int.convert_checked.loc16_23 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_23.2: %i32 = converted %int_1.loc16_23, %.loc16_23.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc16_23: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_23: = bound_method %int_1.loc16_23, %impl.elem0.loc16_23 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc16_23: = specific_function %Convert.bound.loc16_23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc16_23: init %i32 = call %Convert.specific_fn.loc16_23(%int_1.loc16_23) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_23.1: %i32 = value_of_initializer %int.convert_checked.loc16_23 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_23.2: %i32 = converted %int_1.loc16_23, %.loc16_23.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc16_20.15, %.loc16_23.2) // CHECK:STDOUT: %.loc16_25.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc16_25.2: %i32 = converted %F.call, %.loc16_25.1 diff --git a/toolchain/check/testdata/array/import.carbon b/toolchain/check/testdata/array/import.carbon index c7c60caab584..de00f797d4ca 100644 --- a/toolchain/check/testdata/array/import.carbon +++ b/toolchain/check/testdata/array/import.carbon @@ -35,7 +35,7 @@ fn G(n: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -76,9 +76,9 @@ fn G(n: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.014: %F.type = import_ref Main//library, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Main//library, F, loaded [template = constants.%F] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -86,7 +86,7 @@ fn G(n: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .F = imports.%import_ref.014 +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } @@ -113,7 +113,7 @@ fn G(n: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%n.param_patt: %i32) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.014 [template = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] // CHECK:STDOUT: %.loc5_12.1: ref %array_type = temporary_storage // CHECK:STDOUT: %F.call: init %array_type = call %F.ref() to %.loc5_12.1 // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n diff --git a/toolchain/check/testdata/array/index_not_literal.carbon b/toolchain/check/testdata/array/index_not_literal.carbon index 551945bd0486..a732e9804444 100644 --- a/toolchain/check/testdata/array/index_not_literal.carbon +++ b/toolchain/check/testdata/array/index_not_literal.carbon @@ -22,28 +22,28 @@ var b: i32 = a[{.index = 2}.index]; // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: %struct_type.index: type = struct_type {.index: Core.IntLiteral} [template] // CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_2.ecc) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -68,30 +68,30 @@ var b: i32 = a[{.index = 2}.index]; // CHECK:STDOUT: %int_2.loc11_23: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_27.1: %tuple.type = tuple_literal (%int_1.loc11_20, %int_2.loc11_23, %int_3) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_1.loc11_20, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_1.loc11_20) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_27.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_1.loc11_20, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_1.loc11_20) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_27.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc11_27.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc11_27.4: init %i32 = initialize_from %.loc11_27.2 to %.loc11_27.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_2.loc11_23, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_2.loc11_23) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_27.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_27.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc11_27.4: init %i32 = initialize_from %.loc11_27.2 to %.loc11_27.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_2.loc11_23, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_2.loc11_23) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_27.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_27.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %int_1.loc11_27: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_27.6: ref %i32 = array_index file.%a.var, %int_1.loc11_27 -// CHECK:STDOUT: %.loc11_27.7: init %i32 = initialize_from %.loc11_27.5 to %.loc11_27.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc11_27.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.3: = bound_method %int_3, %impl.elem0.loc11_27.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.3: = specific_function %Convert.bound.loc11_27.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc11_27.3: init %i32 = call %Convert.specific_fn.loc11_27.3(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc11_27.8: init %i32 = converted %int_3, %int.convert_checked.loc11_27.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc11_27.7: init %i32 = initialize_from %.loc11_27.5 to %.loc11_27.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc11_27.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.3: = bound_method %int_3, %impl.elem0.loc11_27.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.3: = specific_function %Convert.bound.loc11_27.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc11_27.3: init %i32 = call %Convert.specific_fn.loc11_27.3(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc11_27.8: init %i32 = converted %int_3, %int.convert_checked.loc11_27.3 [template = constants.%int_3.822] // CHECK:STDOUT: %int_2.loc11_27: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc11_27.9: ref %i32 = array_index file.%a.var, %int_2.loc11_27 -// CHECK:STDOUT: %.loc11_27.10: init %i32 = initialize_from %.loc11_27.8 to %.loc11_27.9 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc11_27.10: init %i32 = initialize_from %.loc11_27.8 to %.loc11_27.9 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc11_27.11: init %array_type = array_init (%.loc11_27.4, %.loc11_27.7, %.loc11_27.10) to file.%a.var [template = constants.%array] // CHECK:STDOUT: %.loc11_28: init %array_type = converted %.loc11_27.1, %.loc11_27.11 [template = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc11_28 @@ -103,12 +103,12 @@ var b: i32 = a[{.index = 2}.index]; // CHECK:STDOUT: %.loc12_28.1: Core.IntLiteral = struct_access %.loc12_27.2, element0 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %.loc12_28.1, %impl.elem0.loc12 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%.loc12_28.1) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_28.2: %i32 = value_of_initializer %int.convert_checked.loc12 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_28.3: %i32 = converted %.loc12_28.1, %.loc12_28.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %.loc12_28.1, %impl.elem0.loc12 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%.loc12_28.1) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_28.2: %i32 = value_of_initializer %int.convert_checked.loc12 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_28.3: %i32 = converted %.loc12_28.1, %.loc12_28.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc12_34.1: ref %i32 = array_index %a.ref, %.loc12_28.3 // CHECK:STDOUT: %.loc12_34.2: %i32 = bind_value %.loc12_34.1 // CHECK:STDOUT: assign file.%b.var, %.loc12_34.2 diff --git a/toolchain/check/testdata/array/init_dependent_bound.carbon b/toolchain/check/testdata/array/init_dependent_bound.carbon index 8bebd1012c1f..4266f6ab486b 100644 --- a/toolchain/check/testdata/array/init_dependent_bound.carbon +++ b/toolchain/check/testdata/array/init_dependent_bound.carbon @@ -39,17 +39,17 @@ fn H() { G(3); } // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %Convert.type.d18: type = fn_type @Convert.3, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.079: %Convert.type.d18 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.3e4, %Convert.079 [symbolic] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.3(%int_32) [symbolic] -// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.3e4) [symbolic] +// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.51e) [symbolic] // CHECK:STDOUT: %array_type: type = array_type %int.convert_checked, %i32 [symbolic] -// CHECK:STDOUT: %require_complete.70c: = require_complete_type %array_type [symbolic] +// CHECK:STDOUT: %require_complete.9dc: = require_complete_type %array_type [symbolic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] @@ -58,8 +58,8 @@ fn H() { G(3); } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -72,28 +72,28 @@ fn H() { G(3); } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %N.patt.loc4_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_6.1, runtime_param [symbolic = %N.patt.loc4_6.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc4_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_6.1, runtime_param [symbolic = %N.patt.loc4_6.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: } { // CHECK:STDOUT: %N.param: %i32 = value_param runtime_param // CHECK:STDOUT: %.loc4: type = splice_block %i32 [template = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_6.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc4_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_6.2 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc4_6.1: %i32) { -// CHECK:STDOUT: %N.loc4_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc4_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_6.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc4_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc4_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_6.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc4_6.2, constants.%Convert.079 [symbolic = %Convert.bound (constants.%Convert.bound)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc4_6.2, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound)] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.3(constants.%int_32) [symbolic = %Convert.specific_fn (constants.%Convert.specific_fn)] // CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.loc4_6.2) [symbolic = %int.convert_checked (constants.%int.convert_checked)] // CHECK:STDOUT: %array_type: type = array_type %int.convert_checked, %i32 [symbolic = %array_type (constants.%array_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type (%array_type) [symbolic = %require_complete (constants.%require_complete.70c)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type (%array_type) [symbolic = %require_complete (constants.%require_complete.9dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%N.param_patt: %i32) { // CHECK:STDOUT: !entry: @@ -108,9 +108,9 @@ fn H() { G(3); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc4_6.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc4_6.2 => constants.%N.3e4 +// CHECK:STDOUT: specific @F(constants.%N.51e) { +// CHECK:STDOUT: %N.loc4_6.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc4_6.2 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_init_template_dependent_bound.carbon diff --git a/toolchain/check/testdata/array/nine_elements.carbon b/toolchain/check/testdata/array/nine_elements.carbon index dbb57158e89e..7c13d39cd2fc 100644 --- a/toolchain/check/testdata/array/nine_elements.carbon +++ b/toolchain/check/testdata/array/nine_elements.carbon @@ -27,44 +27,44 @@ var a: [i32; 9] = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.b33: = bound_method %int_5.64b, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.89d: = specific_function %Convert.bound.b33, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] -// CHECK:STDOUT: %Convert.bound.b1c: = bound_method %int_6.462, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b26: = specific_function %Convert.bound.b1c, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_6.b03: %i32 = int_value 6 [template] -// CHECK:STDOUT: %Convert.bound.eba: = bound_method %int_7.29f, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.785: = specific_function %Convert.bound.eba, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_7.2da: %i32 = int_value 7 [template] -// CHECK:STDOUT: %Convert.bound.29e: = bound_method %int_8.b85, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.5a6: = specific_function %Convert.bound.29e, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_8.f03: %i32 = int_value 8 [template] -// CHECK:STDOUT: %Convert.bound.cc8: = bound_method %int_9.988, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b8b: = specific_function %Convert.bound.cc8, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_9.82c: %i32 = int_value 9 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.c60, %int_2.166, %int_3.25b, %int_4.2ec, %int_5.70b, %int_6.b03, %int_7.2da, %int_8.f03, %int_9.82c) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.ba9: = specific_function %Convert.bound.4e6, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] +// CHECK:STDOUT: %Convert.bound.ce9: = bound_method %int_6.462, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.631: = specific_function %Convert.bound.ce9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_6.e56: %i32 = int_value 6 [template] +// CHECK:STDOUT: %Convert.bound.208: = bound_method %int_7.29f, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.c12: = specific_function %Convert.bound.208, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_7.0b1: %i32 = int_value 7 [template] +// CHECK:STDOUT: %Convert.bound.e09: = bound_method %int_8.b85, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.e0d: = specific_function %Convert.bound.e09, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_8.98c: %i32 = int_value 8 [template] +// CHECK:STDOUT: %Convert.bound.9e2: = bound_method %int_9.988, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b02: = specific_function %Convert.bound.9e2, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_9.f88: %i32 = int_value 9 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822, %int_4.940, %int_5.0f6, %int_6.e56, %int_7.0b1, %int_8.98c, %int_9.f88) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -92,78 +92,78 @@ var a: [i32; 9] = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_8.loc11_41: Core.IntLiteral = int_value 8 [template = constants.%int_8.b85] // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [template = constants.%int_9.988] // CHECK:STDOUT: %.loc11_45.1: %tuple.type = tuple_literal (%int_1.loc11_20, %int_2.loc11_23, %int_3.loc11_26, %int_4.loc11_29, %int_5.loc11_32, %int_6.loc11_35, %int_7.loc11_38, %int_8.loc11_41, %int_9) -// CHECK:STDOUT: %impl.elem0.loc11_45.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.1: = bound_method %int_1.loc11_20, %impl.elem0.loc11_45.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.1: = specific_function %Convert.bound.loc11_45.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11_45.1: init %i32 = call %Convert.specific_fn.loc11_45.1(%int_1.loc11_20) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_45.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_45.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc11_45.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.1: = bound_method %int_1.loc11_20, %impl.elem0.loc11_45.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.1: = specific_function %Convert.bound.loc11_45.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11_45.1: init %i32 = call %Convert.specific_fn.loc11_45.1(%int_1.loc11_20) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_45.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_45.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc11_45.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc11_45.4: init %i32 = initialize_from %.loc11_45.2 to %.loc11_45.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc11_45.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.2: = bound_method %int_2.loc11_23, %impl.elem0.loc11_45.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.2: = specific_function %Convert.bound.loc11_45.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_45.2: init %i32 = call %Convert.specific_fn.loc11_45.2(%int_2.loc11_23) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_45.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_45.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc11_45.4: init %i32 = initialize_from %.loc11_45.2 to %.loc11_45.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc11_45.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.2: = bound_method %int_2.loc11_23, %impl.elem0.loc11_45.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.2: = specific_function %Convert.bound.loc11_45.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_45.2: init %i32 = call %Convert.specific_fn.loc11_45.2(%int_2.loc11_23) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_45.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_45.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %int_1.loc11_45: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_45.6: ref %i32 = array_index file.%a.var, %int_1.loc11_45 -// CHECK:STDOUT: %.loc11_45.7: init %i32 = initialize_from %.loc11_45.5 to %.loc11_45.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc11_45.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.3: = bound_method %int_3.loc11_26, %impl.elem0.loc11_45.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.3: = specific_function %Convert.bound.loc11_45.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc11_45.3: init %i32 = call %Convert.specific_fn.loc11_45.3(%int_3.loc11_26) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc11_45.8: init %i32 = converted %int_3.loc11_26, %int.convert_checked.loc11_45.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc11_45.7: init %i32 = initialize_from %.loc11_45.5 to %.loc11_45.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc11_45.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.3: = bound_method %int_3.loc11_26, %impl.elem0.loc11_45.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.3: = specific_function %Convert.bound.loc11_45.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc11_45.3: init %i32 = call %Convert.specific_fn.loc11_45.3(%int_3.loc11_26) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc11_45.8: init %i32 = converted %int_3.loc11_26, %int.convert_checked.loc11_45.3 [template = constants.%int_3.822] // CHECK:STDOUT: %int_2.loc11_45: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc11_45.9: ref %i32 = array_index file.%a.var, %int_2.loc11_45 -// CHECK:STDOUT: %.loc11_45.10: init %i32 = initialize_from %.loc11_45.8 to %.loc11_45.9 [template = constants.%int_3.25b] -// CHECK:STDOUT: %impl.elem0.loc11_45.4: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.4: = bound_method %int_4.loc11_29, %impl.elem0.loc11_45.4 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.4: = specific_function %Convert.bound.loc11_45.4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc11_45.4: init %i32 = call %Convert.specific_fn.loc11_45.4(%int_4.loc11_29) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_45.11: init %i32 = converted %int_4.loc11_29, %int.convert_checked.loc11_45.4 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %.loc11_45.10: init %i32 = initialize_from %.loc11_45.8 to %.loc11_45.9 [template = constants.%int_3.822] +// CHECK:STDOUT: %impl.elem0.loc11_45.4: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.4: = bound_method %int_4.loc11_29, %impl.elem0.loc11_45.4 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.4: = specific_function %Convert.bound.loc11_45.4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc11_45.4: init %i32 = call %Convert.specific_fn.loc11_45.4(%int_4.loc11_29) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_45.11: init %i32 = converted %int_4.loc11_29, %int.convert_checked.loc11_45.4 [template = constants.%int_4.940] // CHECK:STDOUT: %int_3.loc11_45: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_45.12: ref %i32 = array_index file.%a.var, %int_3.loc11_45 -// CHECK:STDOUT: %.loc11_45.13: init %i32 = initialize_from %.loc11_45.11 to %.loc11_45.12 [template = constants.%int_4.2ec] -// CHECK:STDOUT: %impl.elem0.loc11_45.5: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.5: = bound_method %int_5.loc11_32, %impl.elem0.loc11_45.5 [template = constants.%Convert.bound.b33] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.5: = specific_function %Convert.bound.loc11_45.5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.89d] -// CHECK:STDOUT: %int.convert_checked.loc11_45.5: init %i32 = call %Convert.specific_fn.loc11_45.5(%int_5.loc11_32) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc11_45.14: init %i32 = converted %int_5.loc11_32, %int.convert_checked.loc11_45.5 [template = constants.%int_5.70b] +// CHECK:STDOUT: %.loc11_45.13: init %i32 = initialize_from %.loc11_45.11 to %.loc11_45.12 [template = constants.%int_4.940] +// CHECK:STDOUT: %impl.elem0.loc11_45.5: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.5: = bound_method %int_5.loc11_32, %impl.elem0.loc11_45.5 [template = constants.%Convert.bound.4e6] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.5: = specific_function %Convert.bound.loc11_45.5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.ba9] +// CHECK:STDOUT: %int.convert_checked.loc11_45.5: init %i32 = call %Convert.specific_fn.loc11_45.5(%int_5.loc11_32) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc11_45.14: init %i32 = converted %int_5.loc11_32, %int.convert_checked.loc11_45.5 [template = constants.%int_5.0f6] // CHECK:STDOUT: %int_4.loc11_45: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_45.15: ref %i32 = array_index file.%a.var, %int_4.loc11_45 -// CHECK:STDOUT: %.loc11_45.16: init %i32 = initialize_from %.loc11_45.14 to %.loc11_45.15 [template = constants.%int_5.70b] -// CHECK:STDOUT: %impl.elem0.loc11_45.6: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.6: = bound_method %int_6.loc11_35, %impl.elem0.loc11_45.6 [template = constants.%Convert.bound.b1c] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.6: = specific_function %Convert.bound.loc11_45.6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b26] -// CHECK:STDOUT: %int.convert_checked.loc11_45.6: init %i32 = call %Convert.specific_fn.loc11_45.6(%int_6.loc11_35) [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_45.17: init %i32 = converted %int_6.loc11_35, %int.convert_checked.loc11_45.6 [template = constants.%int_6.b03] +// CHECK:STDOUT: %.loc11_45.16: init %i32 = initialize_from %.loc11_45.14 to %.loc11_45.15 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %impl.elem0.loc11_45.6: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.6: = bound_method %int_6.loc11_35, %impl.elem0.loc11_45.6 [template = constants.%Convert.bound.ce9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.6: = specific_function %Convert.bound.loc11_45.6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.631] +// CHECK:STDOUT: %int.convert_checked.loc11_45.6: init %i32 = call %Convert.specific_fn.loc11_45.6(%int_6.loc11_35) [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_45.17: init %i32 = converted %int_6.loc11_35, %int.convert_checked.loc11_45.6 [template = constants.%int_6.e56] // CHECK:STDOUT: %int_5.loc11_45: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] // CHECK:STDOUT: %.loc11_45.18: ref %i32 = array_index file.%a.var, %int_5.loc11_45 -// CHECK:STDOUT: %.loc11_45.19: init %i32 = initialize_from %.loc11_45.17 to %.loc11_45.18 [template = constants.%int_6.b03] -// CHECK:STDOUT: %impl.elem0.loc11_45.7: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.7: = bound_method %int_7.loc11_38, %impl.elem0.loc11_45.7 [template = constants.%Convert.bound.eba] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.7: = specific_function %Convert.bound.loc11_45.7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.785] -// CHECK:STDOUT: %int.convert_checked.loc11_45.7: init %i32 = call %Convert.specific_fn.loc11_45.7(%int_7.loc11_38) [template = constants.%int_7.2da] -// CHECK:STDOUT: %.loc11_45.20: init %i32 = converted %int_7.loc11_38, %int.convert_checked.loc11_45.7 [template = constants.%int_7.2da] +// CHECK:STDOUT: %.loc11_45.19: init %i32 = initialize_from %.loc11_45.17 to %.loc11_45.18 [template = constants.%int_6.e56] +// CHECK:STDOUT: %impl.elem0.loc11_45.7: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.7: = bound_method %int_7.loc11_38, %impl.elem0.loc11_45.7 [template = constants.%Convert.bound.208] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.7: = specific_function %Convert.bound.loc11_45.7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c12] +// CHECK:STDOUT: %int.convert_checked.loc11_45.7: init %i32 = call %Convert.specific_fn.loc11_45.7(%int_7.loc11_38) [template = constants.%int_7.0b1] +// CHECK:STDOUT: %.loc11_45.20: init %i32 = converted %int_7.loc11_38, %int.convert_checked.loc11_45.7 [template = constants.%int_7.0b1] // CHECK:STDOUT: %int_6.loc11_45: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] // CHECK:STDOUT: %.loc11_45.21: ref %i32 = array_index file.%a.var, %int_6.loc11_45 -// CHECK:STDOUT: %.loc11_45.22: init %i32 = initialize_from %.loc11_45.20 to %.loc11_45.21 [template = constants.%int_7.2da] -// CHECK:STDOUT: %impl.elem0.loc11_45.8: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.8: = bound_method %int_8.loc11_41, %impl.elem0.loc11_45.8 [template = constants.%Convert.bound.29e] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.8: = specific_function %Convert.bound.loc11_45.8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.5a6] -// CHECK:STDOUT: %int.convert_checked.loc11_45.8: init %i32 = call %Convert.specific_fn.loc11_45.8(%int_8.loc11_41) [template = constants.%int_8.f03] -// CHECK:STDOUT: %.loc11_45.23: init %i32 = converted %int_8.loc11_41, %int.convert_checked.loc11_45.8 [template = constants.%int_8.f03] +// CHECK:STDOUT: %.loc11_45.22: init %i32 = initialize_from %.loc11_45.20 to %.loc11_45.21 [template = constants.%int_7.0b1] +// CHECK:STDOUT: %impl.elem0.loc11_45.8: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.8: = bound_method %int_8.loc11_41, %impl.elem0.loc11_45.8 [template = constants.%Convert.bound.e09] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.8: = specific_function %Convert.bound.loc11_45.8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.e0d] +// CHECK:STDOUT: %int.convert_checked.loc11_45.8: init %i32 = call %Convert.specific_fn.loc11_45.8(%int_8.loc11_41) [template = constants.%int_8.98c] +// CHECK:STDOUT: %.loc11_45.23: init %i32 = converted %int_8.loc11_41, %int.convert_checked.loc11_45.8 [template = constants.%int_8.98c] // CHECK:STDOUT: %int_7.loc11_45: Core.IntLiteral = int_value 7 [template = constants.%int_7.29f] // CHECK:STDOUT: %.loc11_45.24: ref %i32 = array_index file.%a.var, %int_7.loc11_45 -// CHECK:STDOUT: %.loc11_45.25: init %i32 = initialize_from %.loc11_45.23 to %.loc11_45.24 [template = constants.%int_8.f03] -// CHECK:STDOUT: %impl.elem0.loc11_45.9: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_45.9: = bound_method %int_9, %impl.elem0.loc11_45.9 [template = constants.%Convert.bound.cc8] -// CHECK:STDOUT: %Convert.specific_fn.loc11_45.9: = specific_function %Convert.bound.loc11_45.9, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b8b] -// CHECK:STDOUT: %int.convert_checked.loc11_45.9: init %i32 = call %Convert.specific_fn.loc11_45.9(%int_9) [template = constants.%int_9.82c] -// CHECK:STDOUT: %.loc11_45.26: init %i32 = converted %int_9, %int.convert_checked.loc11_45.9 [template = constants.%int_9.82c] +// CHECK:STDOUT: %.loc11_45.25: init %i32 = initialize_from %.loc11_45.23 to %.loc11_45.24 [template = constants.%int_8.98c] +// CHECK:STDOUT: %impl.elem0.loc11_45.9: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_45.9: = bound_method %int_9, %impl.elem0.loc11_45.9 [template = constants.%Convert.bound.9e2] +// CHECK:STDOUT: %Convert.specific_fn.loc11_45.9: = specific_function %Convert.bound.loc11_45.9, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b02] +// CHECK:STDOUT: %int.convert_checked.loc11_45.9: init %i32 = call %Convert.specific_fn.loc11_45.9(%int_9) [template = constants.%int_9.f88] +// CHECK:STDOUT: %.loc11_45.26: init %i32 = converted %int_9, %int.convert_checked.loc11_45.9 [template = constants.%int_9.f88] // CHECK:STDOUT: %int_8.loc11_45: Core.IntLiteral = int_value 8 [template = constants.%int_8.b85] // CHECK:STDOUT: %.loc11_45.27: ref %i32 = array_index file.%a.var, %int_8.loc11_45 -// CHECK:STDOUT: %.loc11_45.28: init %i32 = initialize_from %.loc11_45.26 to %.loc11_45.27 [template = constants.%int_9.82c] +// CHECK:STDOUT: %.loc11_45.28: init %i32 = initialize_from %.loc11_45.26 to %.loc11_45.27 [template = constants.%int_9.f88] // CHECK:STDOUT: %.loc11_45.29: init %array_type = array_init (%.loc11_45.4, %.loc11_45.7, %.loc11_45.10, %.loc11_45.13, %.loc11_45.16, %.loc11_45.19, %.loc11_45.22, %.loc11_45.25, %.loc11_45.28) to file.%a.var [template = constants.%array] // CHECK:STDOUT: %.loc11_46: init %array_type = converted %.loc11_45.1, %.loc11_45.29 [template = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc11_46 diff --git a/toolchain/check/testdata/as/adapter_conversion.carbon b/toolchain/check/testdata/as/adapter_conversion.carbon index b6340f94777d..6a9a0ae8fbaf 100644 --- a/toolchain/check/testdata/as/adapter_conversion.carbon +++ b/toolchain/check/testdata/as/adapter_conversion.carbon @@ -171,30 +171,30 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] -// CHECK:STDOUT: %struct_type.x.y.f68: type = struct_type {.x: %i32, .y: %i32} [template] -// CHECK:STDOUT: %complete_type.032: = complete_type_witness %struct_type.x.y.f68 [template] +// CHECK:STDOUT: %struct_type.x.y.871: type = struct_type {.x: %i32, .y: %i32} [template] +// CHECK:STDOUT: %complete_type.70a: = complete_type_witness %struct_type.x.y.871 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.x.y.4cf: type = struct_type {.x: Core.IntLiteral, .y: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -231,7 +231,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %return.param: ref %A = out_param runtime_param0 // CHECK:STDOUT: %return: ref %A = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.f68 [template = constants.%complete_type.032] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.871 [template = constants.%complete_type.70a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -244,7 +244,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: class @B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: adapt_decl %A.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.f68 [template = constants.%complete_type.032] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.871 [template = constants.%complete_type.70a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B @@ -256,20 +256,20 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc9_27.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc9_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc9_27.1: = bound_method %int_1, %impl.elem0.loc9_27.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc9_27.1: = specific_function %Convert.bound.loc9_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc9_27.1: init %i32 = call %Convert.specific_fn.loc9_27.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc9_27.2: init %i32 = converted %int_1, %int.convert_checked.loc9_27.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc9_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc9_27.1: = bound_method %int_1, %impl.elem0.loc9_27.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc9_27.1: = specific_function %Convert.bound.loc9_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc9_27.1: init %i32 = call %Convert.specific_fn.loc9_27.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc9_27.2: init %i32 = converted %int_1, %int.convert_checked.loc9_27.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc9_27.3: ref %i32 = class_element_access %return, element0 -// CHECK:STDOUT: %.loc9_27.4: init %i32 = initialize_from %.loc9_27.2 to %.loc9_27.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc9_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc9_27.2: = bound_method %int_2, %impl.elem0.loc9_27.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc9_27.2: = specific_function %Convert.bound.loc9_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc9_27.2: init %i32 = call %Convert.specific_fn.loc9_27.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc9_27.5: init %i32 = converted %int_2, %int.convert_checked.loc9_27.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc9_27.4: init %i32 = initialize_from %.loc9_27.2 to %.loc9_27.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc9_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc9_27.2: = bound_method %int_2, %impl.elem0.loc9_27.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc9_27.2: = specific_function %Convert.bound.loc9_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc9_27.2: init %i32 = call %Convert.specific_fn.loc9_27.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc9_27.5: init %i32 = converted %int_2, %int.convert_checked.loc9_27.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc9_27.6: ref %i32 = class_element_access %return, element1 -// CHECK:STDOUT: %.loc9_27.7: init %i32 = initialize_from %.loc9_27.5 to %.loc9_27.6 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc9_27.7: init %i32 = initialize_from %.loc9_27.5 to %.loc9_27.6 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc9_27.8: init %A = class_init (%.loc9_27.4, %.loc9_27.7), %return [template = constants.%A.val] // CHECK:STDOUT: %.loc9_28: init %A = converted %.loc9_27.1, %.loc9_27.8 [template = constants.%A.val] // CHECK:STDOUT: return %.loc9_28 to %return @@ -280,20 +280,20 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc17_31.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc17_31.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17_31.1: = bound_method %int_1, %impl.elem0.loc17_31.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc17_31.1: = specific_function %Convert.bound.loc17_31.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc17_31.1: init %i32 = call %Convert.specific_fn.loc17_31.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc17_31.2: init %i32 = converted %int_1, %int.convert_checked.loc17_31.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc17_31.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17_31.1: = bound_method %int_1, %impl.elem0.loc17_31.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc17_31.1: = specific_function %Convert.bound.loc17_31.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc17_31.1: init %i32 = call %Convert.specific_fn.loc17_31.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc17_31.2: init %i32 = converted %int_1, %int.convert_checked.loc17_31.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc17_31.3: ref %i32 = class_element_access file.%a_ref.var, element0 -// CHECK:STDOUT: %.loc17_31.4: init %i32 = initialize_from %.loc17_31.2 to %.loc17_31.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc17_31.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17_31.2: = bound_method %int_2, %impl.elem0.loc17_31.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc17_31.2: = specific_function %Convert.bound.loc17_31.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc17_31.2: init %i32 = call %Convert.specific_fn.loc17_31.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc17_31.5: init %i32 = converted %int_2, %int.convert_checked.loc17_31.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc17_31.4: init %i32 = initialize_from %.loc17_31.2 to %.loc17_31.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc17_31.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17_31.2: = bound_method %int_2, %impl.elem0.loc17_31.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc17_31.2: = specific_function %Convert.bound.loc17_31.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc17_31.2: init %i32 = call %Convert.specific_fn.loc17_31.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc17_31.5: init %i32 = converted %int_2, %int.convert_checked.loc17_31.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc17_31.6: ref %i32 = class_element_access file.%a_ref.var, element1 -// CHECK:STDOUT: %.loc17_31.7: init %i32 = initialize_from %.loc17_31.5 to %.loc17_31.6 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc17_31.7: init %i32 = initialize_from %.loc17_31.5 to %.loc17_31.6 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc17_31.8: init %A = class_init (%.loc17_31.4, %.loc17_31.7), file.%a_ref.var [template = constants.%A.val] // CHECK:STDOUT: %.loc17_32: init %A = converted %.loc17_31.1, %.loc17_31.8 [template = constants.%A.val] // CHECK:STDOUT: assign file.%a_ref.var, %.loc17_32 @@ -331,19 +331,19 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.1b9: type = fn_type @Convert.1, @As(%i32) [template] -// CHECK:STDOUT: %impl_witness.c9a: = impl_witness (imports.%import_ref.6fa), @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.type.531: type = fn_type @Convert.5, @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.6c4: %Convert.type.531 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.6c4 [template] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [template] +// CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%import_ref.78a), @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.197 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -376,15 +376,15 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc8: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc8: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.c9a, element0 [template = constants.%Convert.6c4] +// CHECK:STDOUT: %impl.elem0: %Convert.type.99b = impl_witness_access constants.%impl_witness.882, element0 [template = constants.%Convert.197] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_15.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_15.2: %i32 = converted %int_1, %.loc8_15.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_15.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_15.2: %i32 = converted %int_1, %.loc8_15.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] -// CHECK:STDOUT: %.loc8_23.1: %A = as_compatible %.loc8_15.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_23.2: %A = converted %.loc8_15.2, %.loc8_23.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc8_23.1: %A = as_compatible %.loc8_15.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_23.2: %A = converted %.loc8_15.2, %.loc8_23.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %a: %A = bind_name a, %.loc8_23.2 // CHECK:STDOUT: %a.ref: %A = name_ref a, %a // CHECK:STDOUT: %int_32.loc9: Core.IntLiteral = int_value 32 [template = constants.%int_32] @@ -489,29 +489,29 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] -// CHECK:STDOUT: %struct_type.x.y.f68: type = struct_type {.x: %i32, .y: %i32} [template] -// CHECK:STDOUT: %complete_type.032: = complete_type_witness %struct_type.x.y.f68 [template] +// CHECK:STDOUT: %struct_type.x.y.871: type = struct_type {.x: %i32, .y: %i32} [template] +// CHECK:STDOUT: %complete_type.70a: = complete_type_witness %struct_type.x.y.871 [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.x.y.4cf: type = struct_type {.x: Core.IntLiteral, .y: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -532,7 +532,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [template] // CHECK:STDOUT: %.loc6: %A.elem = field_decl y, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.f68 [template = constants.%complete_type.032] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.871 [template = constants.%complete_type.70a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -544,7 +544,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: class @B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: adapt_decl %A.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.f68 [template = constants.%complete_type.032] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.871 [template = constants.%complete_type.70a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B @@ -557,21 +557,21 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc13_34.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] -// CHECK:STDOUT: %impl.elem0.loc13_34.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_34.1: = bound_method %int_1, %impl.elem0.loc13_34.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc13_34.1: = specific_function %Convert.bound.loc13_34.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc13_34.1: init %i32 = call %Convert.specific_fn.loc13_34.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_34.2: init %i32 = converted %int_1, %int.convert_checked.loc13_34.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc13_34.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_34.1: = bound_method %int_1, %impl.elem0.loc13_34.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc13_34.1: = specific_function %Convert.bound.loc13_34.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc13_34.1: init %i32 = call %Convert.specific_fn.loc13_34.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_34.2: init %i32 = converted %int_1, %int.convert_checked.loc13_34.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_34.3: ref %A = temporary_storage // CHECK:STDOUT: %.loc13_34.4: ref %i32 = class_element_access %.loc13_34.3, element0 -// CHECK:STDOUT: %.loc13_34.5: init %i32 = initialize_from %.loc13_34.2 to %.loc13_34.4 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc13_34.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_34.2: = bound_method %int_2, %impl.elem0.loc13_34.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc13_34.2: = specific_function %Convert.bound.loc13_34.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc13_34.2: init %i32 = call %Convert.specific_fn.loc13_34.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc13_34.6: init %i32 = converted %int_2, %int.convert_checked.loc13_34.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc13_34.5: init %i32 = initialize_from %.loc13_34.2 to %.loc13_34.4 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc13_34.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_34.2: = bound_method %int_2, %impl.elem0.loc13_34.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc13_34.2: = specific_function %Convert.bound.loc13_34.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc13_34.2: init %i32 = call %Convert.specific_fn.loc13_34.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc13_34.6: init %i32 = converted %int_2, %int.convert_checked.loc13_34.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_34.7: ref %i32 = class_element_access %.loc13_34.3, element1 -// CHECK:STDOUT: %.loc13_34.8: init %i32 = initialize_from %.loc13_34.6 to %.loc13_34.7 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc13_34.8: init %i32 = initialize_from %.loc13_34.6 to %.loc13_34.7 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_34.9: init %A = class_init (%.loc13_34.5, %.loc13_34.8), %.loc13_34.3 [template = constants.%A.val] // CHECK:STDOUT: %.loc13_34.10: ref %A = temporary %.loc13_34.3, %.loc13_34.9 // CHECK:STDOUT: %.loc13_36: ref %A = converted %.loc13_34.1, %.loc13_34.10 @@ -590,29 +590,29 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] -// CHECK:STDOUT: %struct_type.x.y.f68: type = struct_type {.x: %i32, .y: %i32} [template] -// CHECK:STDOUT: %complete_type.032: = complete_type_witness %struct_type.x.y.f68 [template] +// CHECK:STDOUT: %struct_type.x.y.871: type = struct_type {.x: %i32, .y: %i32} [template] +// CHECK:STDOUT: %complete_type.70a: = complete_type_witness %struct_type.x.y.871 [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.x.y.4cf: type = struct_type {.x: Core.IntLiteral, .y: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -635,7 +635,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [template] // CHECK:STDOUT: %.loc6: %A.elem = field_decl y, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.f68 [template = constants.%complete_type.032] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.871 [template = constants.%complete_type.70a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -647,7 +647,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: class @B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: adapt_decl %A.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.f68 [template = constants.%complete_type.032] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y.871 [template = constants.%complete_type.70a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B @@ -660,21 +660,21 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc22_33.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] -// CHECK:STDOUT: %impl.elem0.loc22_33.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc22_33.1: = bound_method %int_1, %impl.elem0.loc22_33.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc22_33.1: = specific_function %Convert.bound.loc22_33.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc22_33.1: init %i32 = call %Convert.specific_fn.loc22_33.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc22_33.2: init %i32 = converted %int_1, %int.convert_checked.loc22_33.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc22_33.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc22_33.1: = bound_method %int_1, %impl.elem0.loc22_33.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc22_33.1: = specific_function %Convert.bound.loc22_33.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc22_33.1: init %i32 = call %Convert.specific_fn.loc22_33.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc22_33.2: init %i32 = converted %int_1, %int.convert_checked.loc22_33.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc22_33.3: ref %A = temporary_storage // CHECK:STDOUT: %.loc22_33.4: ref %i32 = class_element_access %.loc22_33.3, element0 -// CHECK:STDOUT: %.loc22_33.5: init %i32 = initialize_from %.loc22_33.2 to %.loc22_33.4 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc22_33.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc22_33.2: = bound_method %int_2, %impl.elem0.loc22_33.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc22_33.2: = specific_function %Convert.bound.loc22_33.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc22_33.2: init %i32 = call %Convert.specific_fn.loc22_33.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc22_33.6: init %i32 = converted %int_2, %int.convert_checked.loc22_33.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc22_33.5: init %i32 = initialize_from %.loc22_33.2 to %.loc22_33.4 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc22_33.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc22_33.2: = bound_method %int_2, %impl.elem0.loc22_33.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc22_33.2: = specific_function %Convert.bound.loc22_33.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc22_33.2: init %i32 = call %Convert.specific_fn.loc22_33.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc22_33.6: init %i32 = converted %int_2, %int.convert_checked.loc22_33.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc22_33.7: ref %i32 = class_element_access %.loc22_33.3, element1 -// CHECK:STDOUT: %.loc22_33.8: init %i32 = initialize_from %.loc22_33.6 to %.loc22_33.7 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc22_33.8: init %i32 = initialize_from %.loc22_33.6 to %.loc22_33.7 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc22_33.9: init %A = class_init (%.loc22_33.5, %.loc22_33.8), %.loc22_33.3 [template = constants.%A.val] // CHECK:STDOUT: %.loc22_33.10: ref %A = temporary %.loc22_33.3, %.loc22_33.9 // CHECK:STDOUT: %.loc22_35: ref %A = converted %.loc22_33.1, %.loc22_33.10 @@ -696,15 +696,15 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.8a7: type = tuple_type (%i32, %Noncopyable) [template] -// CHECK:STDOUT: %complete_type.750: = complete_type_witness %tuple.type.8a7 [template] +// CHECK:STDOUT: %tuple.type.560: type = tuple_type (%i32, %Noncopyable) [template] +// CHECK:STDOUT: %complete_type.ce5: = complete_type_witness %tuple.type.560 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -743,9 +743,9 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %Noncopyable.ref: type = name_ref Noncopyable, file.%Noncopyable.decl [template = constants.%Noncopyable] // CHECK:STDOUT: %.loc9_26: %tuple.type.24b = tuple_literal (%i32, %Noncopyable.ref) -// CHECK:STDOUT: %.loc9_27: type = converted %.loc9_26, constants.%tuple.type.8a7 [template = constants.%tuple.type.8a7] +// CHECK:STDOUT: %.loc9_27: type = converted %.loc9_26, constants.%tuple.type.560 [template = constants.%tuple.type.560] // CHECK:STDOUT: adapt_decl %.loc9_27 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.8a7 [template = constants.%complete_type.750] +// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.560 [template = constants.%complete_type.ce5] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -759,9 +759,9 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %Noncopyable.ref: type = name_ref Noncopyable, file.%Noncopyable.decl [template = constants.%Noncopyable] // CHECK:STDOUT: %.loc13_43.1: %tuple.type.24b = tuple_literal (%i32, %Noncopyable.ref) -// CHECK:STDOUT: %.loc13_43.2: type = converted %.loc13_43.1, constants.%tuple.type.8a7 [template = constants.%tuple.type.8a7] -// CHECK:STDOUT: %.loc13_23.1: %tuple.type.8a7 = as_compatible %a.ref -// CHECK:STDOUT: %.loc13_23.2: %tuple.type.8a7 = converted %a.ref, %.loc13_23.1 +// CHECK:STDOUT: %.loc13_43.2: type = converted %.loc13_43.1, constants.%tuple.type.560 [template = constants.%tuple.type.560] +// CHECK:STDOUT: %.loc13_23.1: %tuple.type.560 = as_compatible %a.ref +// CHECK:STDOUT: %.loc13_23.2: %tuple.type.560 = converted %a.ref, %.loc13_23.1 // CHECK:STDOUT: %A.ref.loc13: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %.loc13_46.1: %A = as_compatible %.loc13_23.2 // CHECK:STDOUT: %.loc13_46.2: %A = converted %.loc13_23.2, %.loc13_46.1 @@ -779,15 +779,15 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.8a7: type = tuple_type (%i32, %Noncopyable) [template] -// CHECK:STDOUT: %complete_type.750: = complete_type_witness %tuple.type.8a7 [template] +// CHECK:STDOUT: %tuple.type.560: type = tuple_type (%i32, %Noncopyable) [template] +// CHECK:STDOUT: %complete_type.ce5: = complete_type_witness %tuple.type.560 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -826,9 +826,9 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %Noncopyable.ref: type = name_ref Noncopyable, file.%Noncopyable.decl [template = constants.%Noncopyable] // CHECK:STDOUT: %.loc9_26: %tuple.type.24b = tuple_literal (%i32, %Noncopyable.ref) -// CHECK:STDOUT: %.loc9_27: type = converted %.loc9_26, constants.%tuple.type.8a7 [template = constants.%tuple.type.8a7] +// CHECK:STDOUT: %.loc9_27: type = converted %.loc9_26, constants.%tuple.type.560 [template = constants.%tuple.type.560] // CHECK:STDOUT: adapt_decl %.loc9_27 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.8a7 [template = constants.%complete_type.750] +// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.560 [template = constants.%complete_type.ce5] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -844,15 +844,15 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %Noncopyable.ref: type = name_ref Noncopyable, file.%Noncopyable.decl [template = constants.%Noncopyable] // CHECK:STDOUT: %.loc25_42.1: %tuple.type.24b = tuple_literal (%i32, %Noncopyable.ref) -// CHECK:STDOUT: %.loc25_42.2: type = converted %.loc25_42.1, constants.%tuple.type.8a7 [template = constants.%tuple.type.8a7] -// CHECK:STDOUT: %.loc25_22.1: %tuple.type.8a7 = as_compatible %a.ref -// CHECK:STDOUT: %.loc25_22.2: %tuple.type.8a7 = converted %a.ref, %.loc25_22.1 +// CHECK:STDOUT: %.loc25_42.2: type = converted %.loc25_42.1, constants.%tuple.type.560 [template = constants.%tuple.type.560] +// CHECK:STDOUT: %.loc25_22.1: %tuple.type.560 = as_compatible %a.ref +// CHECK:STDOUT: %.loc25_22.2: %tuple.type.560 = converted %a.ref, %.loc25_22.1 // CHECK:STDOUT: %A.ref.loc25: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %.loc25_45.1: %A = as_compatible %.loc25_22.2 // CHECK:STDOUT: %.loc25_45.2: %A = converted %.loc25_22.2, %.loc25_45.1 -// CHECK:STDOUT: %.loc25_49.1: %tuple.type.8a7 = as_compatible %.loc25_45.2 +// CHECK:STDOUT: %.loc25_49.1: %tuple.type.560 = as_compatible %.loc25_45.2 // CHECK:STDOUT: %tuple.elem0.loc25_49.1: %i32 = tuple_access %.loc25_49.1, element0 -// CHECK:STDOUT: %.loc25_49.2: ref %tuple.type.8a7 = as_compatible %a_init.var +// CHECK:STDOUT: %.loc25_49.2: ref %tuple.type.560 = as_compatible %a_init.var // CHECK:STDOUT: %tuple.elem0.loc25_49.2: ref %i32 = tuple_access %.loc25_49.2, element0 // CHECK:STDOUT: %.loc25_49.3: init %i32 = initialize_from %tuple.elem0.loc25_49.1 to %tuple.elem0.loc25_49.2 // CHECK:STDOUT: %tuple.elem1: %Noncopyable = tuple_access %.loc25_49.1, element1 @@ -867,8 +867,8 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] -// CHECK:STDOUT: %struct_type.x.b74: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x.b74 [template] +// CHECK:STDOUT: %struct_type.x.ed6: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x.ed6 [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.x.c96: type = struct_type {.x: Core.IntLiteral} [template] @@ -876,8 +876,8 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -899,7 +899,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.b74 [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.ed6 [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -910,7 +910,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: class @B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: adapt_decl %A.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.b74 [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.ed6 [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B diff --git a/toolchain/check/testdata/as/as_type.carbon b/toolchain/check/testdata/as/as_type.carbon index 3284294dacda..30e8d3d0b1bd 100644 --- a/toolchain/check/testdata/as/as_type.carbon +++ b/toolchain/check/testdata/as/as_type.carbon @@ -16,12 +16,12 @@ let t: type = (i32, i32) as type; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -42,7 +42,7 @@ let t: type = (i32, i32) as type; // CHECK:STDOUT: %int_32.loc11_21: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_21: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc11_24: %tuple.type.24b = tuple_literal (%i32.loc11_16, %i32.loc11_21) -// CHECK:STDOUT: %.loc11_26: type = converted %.loc11_24, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc11_26: type = converted %.loc11_24, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: %t: type = bind_name t, %.loc11_26 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/as/basic.carbon b/toolchain/check/testdata/as/basic.carbon index 36bcf3a5e355..8edbc724111c 100644 --- a/toolchain/check/testdata/as/basic.carbon +++ b/toolchain/check/testdata/as/basic.carbon @@ -20,19 +20,19 @@ fn Main() -> i32 { // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.1b9: type = fn_type @Convert.1, @As(%i32) [template] -// CHECK:STDOUT: %impl_witness.c9a: = impl_witness (imports.%import_ref.6fa), @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.type.531: type = fn_type @Convert.5, @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.6c4: %Convert.type.531 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.6c4 [template] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [template] +// CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%import_ref.78a), @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.197 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -60,12 +60,12 @@ fn Main() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc12: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.c9a, element0 [template = constants.%Convert.6c4] +// CHECK:STDOUT: %impl.elem0: %Convert.type.99b = impl_witness_access constants.%impl_witness.882, element0 [template = constants.%Convert.197] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_12.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_12.2: %i32 = converted %int_1, %.loc12_12.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_12.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_12.2: %i32 = converted %int_1, %.loc12_12.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc12_12.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/fail_no_conversion.carbon b/toolchain/check/testdata/as/fail_no_conversion.carbon index b7749914bb96..00b9017df124 100644 --- a/toolchain/check/testdata/as/fail_no_conversion.carbon +++ b/toolchain/check/testdata/as/fail_no_conversion.carbon @@ -22,14 +22,14 @@ let n: (i32, i32) = 1 as (i32, i32); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -51,10 +51,10 @@ let n: (i32, i32) = 1 as (i32, i32); // CHECK:STDOUT: %int_32.loc17_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc17_32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc17_35.1: %tuple.type.24b = tuple_literal (%i32.loc17_27, %i32.loc17_32) -// CHECK:STDOUT: %.loc17_35.2: type = converted %.loc17_35.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] -// CHECK:STDOUT: %.loc17_23: %tuple.type.471 = converted %int_1, [template = ] +// CHECK:STDOUT: %.loc17_35.2: type = converted %.loc17_35.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] +// CHECK:STDOUT: %.loc17_23: %tuple.type.d07 = converted %int_1, [template = ] // CHECK:STDOUT: %tuple.elem0: %i32 = tuple_access %.loc17_23, element0 [template = ] -// CHECK:STDOUT: %n: %tuple.type.471 = bind_name n, +// CHECK:STDOUT: %n: %tuple.type.d07 = bind_name n, // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/fail_not_type.carbon b/toolchain/check/testdata/as/fail_not_type.carbon index ac9256692fe7..f34d13cdd91a 100644 --- a/toolchain/check/testdata/as/fail_not_type.carbon +++ b/toolchain/check/testdata/as/fail_not_type.carbon @@ -27,8 +27,8 @@ let n: i32 = 1 as 2; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/as/overloaded.carbon b/toolchain/check/testdata/as/overloaded.carbon index f5409a60befc..33f65491a5c5 100644 --- a/toolchain/check/testdata/as/overloaded.carbon +++ b/toolchain/check/testdata/as/overloaded.carbon @@ -30,37 +30,37 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %X.elem: type = unbound_element_type %X, %i32 [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: %As.type.90f: type = generic_interface_type @As [template] // CHECK:STDOUT: %As.generic: %As.type.90f = struct_value () [template] -// CHECK:STDOUT: %As.type.678: type = facet_type <@As, @As(%X)> [template] -// CHECK:STDOUT: %Convert.type.73d: type = fn_type @Convert.1, @As(%X) [template] -// CHECK:STDOUT: %impl_witness.cf4: = impl_witness (@impl.1.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.5bf: type = fn_type @Convert.2 [template] -// CHECK:STDOUT: %Convert.f4a: %Convert.type.5bf = struct_value () [template] -// CHECK:STDOUT: %As.type.a50: type = facet_type <@As, @As(%i32)> [template] -// CHECK:STDOUT: %Convert.type.1b9: type = fn_type @Convert.1, @As(%i32) [template] -// CHECK:STDOUT: %impl_witness.d22: = impl_witness (@impl.2.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.45a: type = fn_type @Convert.3 [template] -// CHECK:STDOUT: %Convert.5bc: %Convert.type.45a = struct_value () [template] +// CHECK:STDOUT: %As.type.602: type = facet_type <@As, @As(%X)> [template] +// CHECK:STDOUT: %Convert.type.35b: type = fn_type @Convert.1, @As(%X) [template] +// CHECK:STDOUT: %impl_witness.491: = impl_witness (@impl.1.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.0e3: type = fn_type @Convert.2 [template] +// CHECK:STDOUT: %Convert.311: %Convert.type.0e3 = struct_value () [template] +// CHECK:STDOUT: %As.type.fd4: type = facet_type <@As, @As(%i32)> [template] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [template] +// CHECK:STDOUT: %impl_witness.662: = impl_witness (@impl.2.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.c23: type = fn_type @Convert.3 [template] +// CHECK:STDOUT: %Convert.8bb: %Convert.type.c23 = struct_value () [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %impl_witness.c9a: = impl_witness (imports.%import_ref.6fa), @impl.5(%int_32) [template] -// CHECK:STDOUT: %Convert.type.531: type = fn_type @Convert.7, @impl.5(%int_32) [template] -// CHECK:STDOUT: %Convert.6c4: %Convert.type.531 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.416: = bound_method %int_4.0c1, %Convert.6c4 [template] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound.416, @Convert.7(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.5eb: = bound_method %int_4.2ec, %Convert.f4a [template] +// CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%import_ref.78a), @impl.5(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.7, @impl.5(%int_32) [template] +// CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.e80: = bound_method %int_4.0c1, %Convert.197 [template] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound.e80, @Convert.7(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %Convert.bound.483: = bound_method %int_4.940, %Convert.311 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.166: %As.type.90f = import_ref Core//prelude/operators/as, As, loaded [template = constants.%As.generic] +// CHECK:STDOUT: %import_ref.16b: %As.type.90f = import_ref Core//prelude/operators/as, As, loaded [template = constants.%As.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -75,24 +75,24 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %As.ref: %As.type.90f = name_ref As, imports.%import_ref.166 [template = constants.%As.generic] +// CHECK:STDOUT: %As.ref: %As.type.90f = name_ref As, imports.%import_ref.16b [template = constants.%As.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(constants.%X)> [template = constants.%As.type.678] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(constants.%X)> [template = constants.%As.type.602] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.1.%Convert.decl) [template = constants.%impl_witness.cf4] +// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.1.%Convert.decl) [template = constants.%impl_witness.491] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %As.ref: %As.type.90f = name_ref As, imports.%import_ref.166 [template = constants.%As.generic] +// CHECK:STDOUT: %As.ref: %As.type.90f = name_ref As, imports.%import_ref.16b [template = constants.%As.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(constants.%i32)> [template = constants.%As.type.a50] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(constants.%i32)> [template = constants.%As.type.fd4] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.2.%Convert.decl) [template = constants.%impl_witness.d22] +// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.2.%Convert.decl) [template = constants.%impl_witness.662] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %i32 as %As.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.5bf = fn_decl @Convert.2 [template = constants.%Convert.f4a] { +// CHECK:STDOUT: %Convert.decl: %Convert.type.0e3 = fn_decl @Convert.2 [template = constants.%Convert.311] { // CHECK:STDOUT: %self.patt: %i32 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %i32 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %X = return_slot_pattern @@ -115,7 +115,7 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %X.ref as %As.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.45a = fn_decl @Convert.3 [template = constants.%Convert.5bc] { +// CHECK:STDOUT: %Convert.decl: %Convert.type.c23 = fn_decl @Convert.3 [template = constants.%Convert.8bb] { // CHECK:STDOUT: %self.patt: %X = binding_pattern self // CHECK:STDOUT: %self.param_patt: %X = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -137,7 +137,7 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: // CHECK:STDOUT: class @X { // CHECK:STDOUT: %.loc12: %X.elem = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X @@ -170,21 +170,21 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %int_32.loc23_21: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc23_21: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc23_18: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.c9a, element0 [template = constants.%Convert.6c4] -// CHECK:STDOUT: %Convert.bound.loc23_18: = bound_method %int_4, %impl.elem0.loc23_18 [template = constants.%Convert.bound.416] +// CHECK:STDOUT: %impl.elem0.loc23_18: %Convert.type.99b = impl_witness_access constants.%impl_witness.882, element0 [template = constants.%Convert.197] +// CHECK:STDOUT: %Convert.bound.loc23_18: = bound_method %int_4, %impl.elem0.loc23_18 [template = constants.%Convert.bound.e80] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound.loc23_18, @Convert.7(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc23_18.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc23_18.2: %i32 = converted %int_4, %.loc23_18.1 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc23_18.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc23_18.2: %i32 = converted %int_4, %.loc23_18.1 [template = constants.%int_4.940] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %impl.elem0.loc23_26: %Convert.type.73d = impl_witness_access constants.%impl_witness.cf4, element0 [template = constants.%Convert.f4a] -// CHECK:STDOUT: %Convert.bound.loc23_26: = bound_method %.loc23_18.2, %impl.elem0.loc23_26 [template = constants.%Convert.bound.5eb] +// CHECK:STDOUT: %impl.elem0.loc23_26: %Convert.type.35b = impl_witness_access constants.%impl_witness.491, element0 [template = constants.%Convert.311] +// CHECK:STDOUT: %Convert.bound.loc23_26: = bound_method %.loc23_18.2, %impl.elem0.loc23_26 [template = constants.%Convert.bound.483] // CHECK:STDOUT: %.loc23_26.1: ref %X = temporary_storage // CHECK:STDOUT: %Convert.call.loc23_26: init %X = call %Convert.bound.loc23_26(%.loc23_18.2) to %.loc23_26.1 // CHECK:STDOUT: %.loc23_26.2: init %X = converted %.loc23_18.2, %Convert.call.loc23_26 // CHECK:STDOUT: %int_32.loc23_35: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc23_35: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc23_32: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.d22, element0 [template = constants.%Convert.5bc] +// CHECK:STDOUT: %impl.elem0.loc23_32: %Convert.type.99b = impl_witness_access constants.%impl_witness.662, element0 [template = constants.%Convert.8bb] // CHECK:STDOUT: %Convert.bound.loc23_32: = bound_method %.loc23_26.2, %impl.elem0.loc23_32 // CHECK:STDOUT: %.loc23_26.3: ref %X = temporary %.loc23_26.1, %.loc23_26.2 // CHECK:STDOUT: %.loc23_26.4: %X = bind_value %.loc23_26.3 diff --git a/toolchain/check/testdata/basics/builtin_types.carbon b/toolchain/check/testdata/basics/builtin_types.carbon index 679de9d46410..8ac4d02228a9 100644 --- a/toolchain/check/testdata/basics/builtin_types.carbon +++ b/toolchain/check/testdata/basics/builtin_types.carbon @@ -19,22 +19,22 @@ var test_type: type = i32; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %float: f64 = float_literal 0.10000000000000001 [template] // CHECK:STDOUT: %str: String = string_literal "Test" [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Float = %import_ref.20bd +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -60,11 +60,11 @@ var test_type: type = i32; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign file.%test_i32.var, %.loc11 // CHECK:STDOUT: %float: f64 = float_literal 0.10000000000000001 [template = constants.%float] // CHECK:STDOUT: assign file.%test_f64.var, %float diff --git a/toolchain/check/testdata/basics/fail_bad_run.carbon b/toolchain/check/testdata/basics/fail_bad_run.carbon index 133ceb13a31f..3b1379be7ccc 100644 --- a/toolchain/check/testdata/basics/fail_bad_run.carbon +++ b/toolchain/check/testdata/basics/fail_bad_run.carbon @@ -28,7 +28,7 @@ fn Run() -> String {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/fail_bad_run_2.carbon b/toolchain/check/testdata/basics/fail_bad_run_2.carbon index 7a1e2e6c49aa..70f0ed8e4e9d 100644 --- a/toolchain/check/testdata/basics/fail_bad_run_2.carbon +++ b/toolchain/check/testdata/basics/fail_bad_run_2.carbon @@ -24,7 +24,7 @@ fn Run(n: i32) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/fail_non_type_as_type.carbon b/toolchain/check/testdata/basics/fail_non_type_as_type.carbon index 721d4d217caa..b902b468890f 100644 --- a/toolchain/check/testdata/basics/fail_non_type_as_type.carbon +++ b/toolchain/check/testdata/basics/fail_non_type_as_type.carbon @@ -24,7 +24,7 @@ var x: type = 42; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/fail_numeric_literal_overflow.carbon b/toolchain/check/testdata/basics/fail_numeric_literal_overflow.carbon index e950e90fc9d9..1fd5918b0696 100644 --- a/toolchain/check/testdata/basics/fail_numeric_literal_overflow.carbon +++ b/toolchain/check/testdata/basics/fail_numeric_literal_overflow.carbon @@ -43,24 +43,24 @@ let e: f64 = 5.0e39999999999999999993; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_39999999999999999993.af6: Core.IntLiteral = int_value 39999999999999999993 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.212: = bound_method %int_39999999999999999993.af6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.e77: = specific_function %Convert.bound.212, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_39999999999999999993.2c0: %i32 = int_value 39999999999999999993 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.7ef: = bound_method %int_39999999999999999993.af6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.2ed: = specific_function %Convert.bound.7ef, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_39999999999999999993.dee: %i32 = int_value 39999999999999999993 [template] // CHECK:STDOUT: %int_2147483648.1db: Core.IntLiteral = int_value 2147483648 [template] -// CHECK:STDOUT: %Convert.bound.dbd: = bound_method %int_2147483648.1db, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b90: = specific_function %Convert.bound.dbd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2147483648.928: %i32 = int_value 2147483648 [template] +// CHECK:STDOUT: %Convert.bound.85f: = bound_method %int_2147483648.1db, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.387: = specific_function %Convert.bound.85f, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2147483648.8df: %i32 = int_value 2147483648 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Float = %import_ref.20bd +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -81,28 +81,28 @@ let e: f64 = 5.0e39999999999999999993; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_39999999999999999993: Core.IntLiteral = int_value 39999999999999999993 [template = constants.%int_39999999999999999993.af6] -// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_39999999999999999993, %impl.elem0.loc15 [template = constants.%Convert.bound.212] -// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.e77] -// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_39999999999999999993) [template = constants.%int_39999999999999999993.2c0] -// CHECK:STDOUT: %.loc15_34.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_39999999999999999993.2c0] -// CHECK:STDOUT: %.loc15_34.2: %i32 = converted %int_39999999999999999993, %.loc15_34.1 [template = constants.%int_39999999999999999993.2c0] +// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_39999999999999999993, %impl.elem0.loc15 [template = constants.%Convert.bound.7ef] +// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2ed] +// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_39999999999999999993) [template = constants.%int_39999999999999999993.dee] +// CHECK:STDOUT: %.loc15_34.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_39999999999999999993.dee] +// CHECK:STDOUT: %.loc15_34.2: %i32 = converted %int_39999999999999999993, %.loc15_34.1 [template = constants.%int_39999999999999999993.dee] // CHECK:STDOUT: %a: %i32 = bind_name a, %.loc15_34.2 // CHECK:STDOUT: %int_2147483648.loc21: Core.IntLiteral = int_value 2147483648 [template = constants.%int_2147483648.1db] -// CHECK:STDOUT: %impl.elem0.loc21: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21: = bound_method %int_2147483648.loc21, %impl.elem0.loc21 [template = constants.%Convert.bound.dbd] -// CHECK:STDOUT: %Convert.specific_fn.loc21: = specific_function %Convert.bound.loc21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b90] -// CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %Convert.specific_fn.loc21(%int_2147483648.loc21) [template = constants.%int_2147483648.928] -// CHECK:STDOUT: %.loc21_27.1: %i32 = value_of_initializer %int.convert_checked.loc21 [template = constants.%int_2147483648.928] -// CHECK:STDOUT: %.loc21_27.2: %i32 = converted %int_2147483648.loc21, %.loc21_27.1 [template = constants.%int_2147483648.928] +// CHECK:STDOUT: %impl.elem0.loc21: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21: = bound_method %int_2147483648.loc21, %impl.elem0.loc21 [template = constants.%Convert.bound.85f] +// CHECK:STDOUT: %Convert.specific_fn.loc21: = specific_function %Convert.bound.loc21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.387] +// CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %Convert.specific_fn.loc21(%int_2147483648.loc21) [template = constants.%int_2147483648.8df] +// CHECK:STDOUT: %.loc21_27.1: %i32 = value_of_initializer %int.convert_checked.loc21 [template = constants.%int_2147483648.8df] +// CHECK:STDOUT: %.loc21_27.2: %i32 = converted %int_2147483648.loc21, %.loc21_27.1 [template = constants.%int_2147483648.8df] // CHECK:STDOUT: %b: %i32 = bind_name b, %.loc21_27.2 // CHECK:STDOUT: %int_2147483648.loc27: Core.IntLiteral = int_value 2147483648 [template = constants.%int_2147483648.1db] -// CHECK:STDOUT: %impl.elem0.loc27: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc27: = bound_method %int_2147483648.loc27, %impl.elem0.loc27 [template = constants.%Convert.bound.dbd] -// CHECK:STDOUT: %Convert.specific_fn.loc27: = specific_function %Convert.bound.loc27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b90] -// CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %Convert.specific_fn.loc27(%int_2147483648.loc27) [template = constants.%int_2147483648.928] -// CHECK:STDOUT: %.loc27_25.1: %i32 = value_of_initializer %int.convert_checked.loc27 [template = constants.%int_2147483648.928] -// CHECK:STDOUT: %.loc27_25.2: %i32 = converted %int_2147483648.loc27, %.loc27_25.1 [template = constants.%int_2147483648.928] +// CHECK:STDOUT: %impl.elem0.loc27: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc27: = bound_method %int_2147483648.loc27, %impl.elem0.loc27 [template = constants.%Convert.bound.85f] +// CHECK:STDOUT: %Convert.specific_fn.loc27: = specific_function %Convert.bound.loc27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.387] +// CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %Convert.specific_fn.loc27(%int_2147483648.loc27) [template = constants.%int_2147483648.8df] +// CHECK:STDOUT: %.loc27_25.1: %i32 = value_of_initializer %int.convert_checked.loc27 [template = constants.%int_2147483648.8df] +// CHECK:STDOUT: %.loc27_25.2: %i32 = converted %int_2147483648.loc27, %.loc27_25.1 [template = constants.%int_2147483648.8df] // CHECK:STDOUT: %c: %i32 = bind_name c, %.loc27_25.2 // CHECK:STDOUT: %d: f64 = bind_name d, // CHECK:STDOUT: %e: f64 = bind_name e, diff --git a/toolchain/check/testdata/basics/numeric_literals.carbon b/toolchain/check/testdata/basics/numeric_literals.carbon index e07144d7691e..79b1e436496b 100644 --- a/toolchain/check/testdata/basics/numeric_literals.carbon +++ b/toolchain/check/testdata/basics/numeric_literals.carbon @@ -37,31 +37,31 @@ fn F() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template] -// CHECK:STDOUT: %array_type.a36: type = array_type %int_6, %i32 [template] +// CHECK:STDOUT: %array_type.d49: type = array_type %int_6, %i32 [template] // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [template] // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [template] // CHECK:STDOUT: %int_2147483647.d89: Core.IntLiteral = int_value 2147483647 [template] // CHECK:STDOUT: %tuple.type.27c: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.29e: = bound_method %int_8.b85, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.5a6: = specific_function %Convert.bound.29e, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_8.f03: %i32 = int_value 8 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.e09: = bound_method %int_8.b85, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.e0d: = specific_function %Convert.bound.e09, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_8.98c: %i32 = int_value 8 [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.cc8: = bound_method %int_9.988, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b8b: = specific_function %Convert.bound.cc8, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_9.82c: %i32 = int_value 9 [template] +// CHECK:STDOUT: %Convert.bound.9e2: = bound_method %int_9.988, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b02: = specific_function %Convert.bound.9e2, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_9.f88: %i32 = int_value 9 [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2147483647.d89, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.a96: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2147483647.2ba: %i32 = int_value 2147483647 [template] +// CHECK:STDOUT: %Convert.bound.f38: = bound_method %int_2147483647.d89, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.221: = specific_function %Convert.bound.f38, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2147483647.a74: %i32 = int_value 2147483647 [template] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %array.11d: %array_type.a36 = tuple_value (%int_8.f03, %int_9.82c, %int_8.f03, %int_8.f03, %int_2147483647.2ba, %int_2147483647.2ba) [template] +// CHECK:STDOUT: %array.ae2: %array_type.d49 = tuple_value (%int_8.98c, %int_9.f88, %int_8.98c, %int_8.98c, %int_2147483647.a74, %int_2147483647.a74) [template] // CHECK:STDOUT: %array_type.72b: type = array_type %int_6, f64 [template] // CHECK:STDOUT: %float.952: f64 = float_literal 0.90000000000000002 [template] // CHECK:STDOUT: %float.298: f64 = float_literal 8 [template] @@ -75,9 +75,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Float = %import_ref.20bd +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -94,8 +94,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %ints.var: ref %array_type.a36 = var ints -// CHECK:STDOUT: %ints: ref %array_type.a36 = bind_name ints, %ints.var +// CHECK:STDOUT: %ints.var: ref %array_type.d49 = var ints +// CHECK:STDOUT: %ints: ref %array_type.d49 = bind_name ints, %ints.var // CHECK:STDOUT: %int_8.loc15: Core.IntLiteral = int_value 8 [template = constants.%int_8.b85] // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [template = constants.%int_9.988] // CHECK:STDOUT: %int_8.loc17: Core.IntLiteral = int_value 8 [template = constants.%int_8.b85] @@ -103,56 +103,56 @@ fn F() { // CHECK:STDOUT: %int_2147483647.loc19: Core.IntLiteral = int_value 2147483647 [template = constants.%int_2147483647.d89] // CHECK:STDOUT: %int_2147483647.loc20: Core.IntLiteral = int_value 2147483647 [template = constants.%int_2147483647.d89] // CHECK:STDOUT: %.loc21_3.1: %tuple.type.27c = tuple_literal (%int_8.loc15, %int_9, %int_8.loc17, %int_8.loc18, %int_2147483647.loc19, %int_2147483647.loc20) -// CHECK:STDOUT: %impl.elem0.loc21_3.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21_3.1: = bound_method %int_8.loc15, %impl.elem0.loc21_3.1 [template = constants.%Convert.bound.29e] -// CHECK:STDOUT: %Convert.specific_fn.loc21_3.1: = specific_function %Convert.bound.loc21_3.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.5a6] -// CHECK:STDOUT: %int.convert_checked.loc21_3.1: init %i32 = call %Convert.specific_fn.loc21_3.1(%int_8.loc15) [template = constants.%int_8.f03] -// CHECK:STDOUT: %.loc21_3.2: init %i32 = converted %int_8.loc15, %int.convert_checked.loc21_3.1 [template = constants.%int_8.f03] +// CHECK:STDOUT: %impl.elem0.loc21_3.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21_3.1: = bound_method %int_8.loc15, %impl.elem0.loc21_3.1 [template = constants.%Convert.bound.e09] +// CHECK:STDOUT: %Convert.specific_fn.loc21_3.1: = specific_function %Convert.bound.loc21_3.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.e0d] +// CHECK:STDOUT: %int.convert_checked.loc21_3.1: init %i32 = call %Convert.specific_fn.loc21_3.1(%int_8.loc15) [template = constants.%int_8.98c] +// CHECK:STDOUT: %.loc21_3.2: init %i32 = converted %int_8.loc15, %int.convert_checked.loc21_3.1 [template = constants.%int_8.98c] // CHECK:STDOUT: %int_0.loc21: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc21_3.3: ref %i32 = array_index %ints.var, %int_0.loc21 -// CHECK:STDOUT: %.loc21_3.4: init %i32 = initialize_from %.loc21_3.2 to %.loc21_3.3 [template = constants.%int_8.f03] -// CHECK:STDOUT: %impl.elem0.loc21_3.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21_3.2: = bound_method %int_9, %impl.elem0.loc21_3.2 [template = constants.%Convert.bound.cc8] -// CHECK:STDOUT: %Convert.specific_fn.loc21_3.2: = specific_function %Convert.bound.loc21_3.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b8b] -// CHECK:STDOUT: %int.convert_checked.loc21_3.2: init %i32 = call %Convert.specific_fn.loc21_3.2(%int_9) [template = constants.%int_9.82c] -// CHECK:STDOUT: %.loc21_3.5: init %i32 = converted %int_9, %int.convert_checked.loc21_3.2 [template = constants.%int_9.82c] +// CHECK:STDOUT: %.loc21_3.4: init %i32 = initialize_from %.loc21_3.2 to %.loc21_3.3 [template = constants.%int_8.98c] +// CHECK:STDOUT: %impl.elem0.loc21_3.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21_3.2: = bound_method %int_9, %impl.elem0.loc21_3.2 [template = constants.%Convert.bound.9e2] +// CHECK:STDOUT: %Convert.specific_fn.loc21_3.2: = specific_function %Convert.bound.loc21_3.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b02] +// CHECK:STDOUT: %int.convert_checked.loc21_3.2: init %i32 = call %Convert.specific_fn.loc21_3.2(%int_9) [template = constants.%int_9.f88] +// CHECK:STDOUT: %.loc21_3.5: init %i32 = converted %int_9, %int.convert_checked.loc21_3.2 [template = constants.%int_9.f88] // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [template = constants.%int_1] // CHECK:STDOUT: %.loc21_3.6: ref %i32 = array_index %ints.var, %int_1.loc21 -// CHECK:STDOUT: %.loc21_3.7: init %i32 = initialize_from %.loc21_3.5 to %.loc21_3.6 [template = constants.%int_9.82c] -// CHECK:STDOUT: %impl.elem0.loc21_3.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21_3.3: = bound_method %int_8.loc17, %impl.elem0.loc21_3.3 [template = constants.%Convert.bound.29e] -// CHECK:STDOUT: %Convert.specific_fn.loc21_3.3: = specific_function %Convert.bound.loc21_3.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.5a6] -// CHECK:STDOUT: %int.convert_checked.loc21_3.3: init %i32 = call %Convert.specific_fn.loc21_3.3(%int_8.loc17) [template = constants.%int_8.f03] -// CHECK:STDOUT: %.loc21_3.8: init %i32 = converted %int_8.loc17, %int.convert_checked.loc21_3.3 [template = constants.%int_8.f03] +// CHECK:STDOUT: %.loc21_3.7: init %i32 = initialize_from %.loc21_3.5 to %.loc21_3.6 [template = constants.%int_9.f88] +// CHECK:STDOUT: %impl.elem0.loc21_3.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21_3.3: = bound_method %int_8.loc17, %impl.elem0.loc21_3.3 [template = constants.%Convert.bound.e09] +// CHECK:STDOUT: %Convert.specific_fn.loc21_3.3: = specific_function %Convert.bound.loc21_3.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.e0d] +// CHECK:STDOUT: %int.convert_checked.loc21_3.3: init %i32 = call %Convert.specific_fn.loc21_3.3(%int_8.loc17) [template = constants.%int_8.98c] +// CHECK:STDOUT: %.loc21_3.8: init %i32 = converted %int_8.loc17, %int.convert_checked.loc21_3.3 [template = constants.%int_8.98c] // CHECK:STDOUT: %int_2.loc21: Core.IntLiteral = int_value 2 [template = constants.%int_2] // CHECK:STDOUT: %.loc21_3.9: ref %i32 = array_index %ints.var, %int_2.loc21 -// CHECK:STDOUT: %.loc21_3.10: init %i32 = initialize_from %.loc21_3.8 to %.loc21_3.9 [template = constants.%int_8.f03] -// CHECK:STDOUT: %impl.elem0.loc21_3.4: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21_3.4: = bound_method %int_8.loc18, %impl.elem0.loc21_3.4 [template = constants.%Convert.bound.29e] -// CHECK:STDOUT: %Convert.specific_fn.loc21_3.4: = specific_function %Convert.bound.loc21_3.4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.5a6] -// CHECK:STDOUT: %int.convert_checked.loc21_3.4: init %i32 = call %Convert.specific_fn.loc21_3.4(%int_8.loc18) [template = constants.%int_8.f03] -// CHECK:STDOUT: %.loc21_3.11: init %i32 = converted %int_8.loc18, %int.convert_checked.loc21_3.4 [template = constants.%int_8.f03] +// CHECK:STDOUT: %.loc21_3.10: init %i32 = initialize_from %.loc21_3.8 to %.loc21_3.9 [template = constants.%int_8.98c] +// CHECK:STDOUT: %impl.elem0.loc21_3.4: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21_3.4: = bound_method %int_8.loc18, %impl.elem0.loc21_3.4 [template = constants.%Convert.bound.e09] +// CHECK:STDOUT: %Convert.specific_fn.loc21_3.4: = specific_function %Convert.bound.loc21_3.4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.e0d] +// CHECK:STDOUT: %int.convert_checked.loc21_3.4: init %i32 = call %Convert.specific_fn.loc21_3.4(%int_8.loc18) [template = constants.%int_8.98c] +// CHECK:STDOUT: %.loc21_3.11: init %i32 = converted %int_8.loc18, %int.convert_checked.loc21_3.4 [template = constants.%int_8.98c] // CHECK:STDOUT: %int_3.loc21: Core.IntLiteral = int_value 3 [template = constants.%int_3] // CHECK:STDOUT: %.loc21_3.12: ref %i32 = array_index %ints.var, %int_3.loc21 -// CHECK:STDOUT: %.loc21_3.13: init %i32 = initialize_from %.loc21_3.11 to %.loc21_3.12 [template = constants.%int_8.f03] -// CHECK:STDOUT: %impl.elem0.loc21_3.5: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21_3.5: = bound_method %int_2147483647.loc19, %impl.elem0.loc21_3.5 [template = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %Convert.specific_fn.loc21_3.5: = specific_function %Convert.bound.loc21_3.5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.a96] -// CHECK:STDOUT: %int.convert_checked.loc21_3.5: init %i32 = call %Convert.specific_fn.loc21_3.5(%int_2147483647.loc19) [template = constants.%int_2147483647.2ba] -// CHECK:STDOUT: %.loc21_3.14: init %i32 = converted %int_2147483647.loc19, %int.convert_checked.loc21_3.5 [template = constants.%int_2147483647.2ba] +// CHECK:STDOUT: %.loc21_3.13: init %i32 = initialize_from %.loc21_3.11 to %.loc21_3.12 [template = constants.%int_8.98c] +// CHECK:STDOUT: %impl.elem0.loc21_3.5: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21_3.5: = bound_method %int_2147483647.loc19, %impl.elem0.loc21_3.5 [template = constants.%Convert.bound.f38] +// CHECK:STDOUT: %Convert.specific_fn.loc21_3.5: = specific_function %Convert.bound.loc21_3.5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.221] +// CHECK:STDOUT: %int.convert_checked.loc21_3.5: init %i32 = call %Convert.specific_fn.loc21_3.5(%int_2147483647.loc19) [template = constants.%int_2147483647.a74] +// CHECK:STDOUT: %.loc21_3.14: init %i32 = converted %int_2147483647.loc19, %int.convert_checked.loc21_3.5 [template = constants.%int_2147483647.a74] // CHECK:STDOUT: %int_4.loc21: Core.IntLiteral = int_value 4 [template = constants.%int_4] // CHECK:STDOUT: %.loc21_3.15: ref %i32 = array_index %ints.var, %int_4.loc21 -// CHECK:STDOUT: %.loc21_3.16: init %i32 = initialize_from %.loc21_3.14 to %.loc21_3.15 [template = constants.%int_2147483647.2ba] -// CHECK:STDOUT: %impl.elem0.loc21_3.6: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21_3.6: = bound_method %int_2147483647.loc20, %impl.elem0.loc21_3.6 [template = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %Convert.specific_fn.loc21_3.6: = specific_function %Convert.bound.loc21_3.6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.a96] -// CHECK:STDOUT: %int.convert_checked.loc21_3.6: init %i32 = call %Convert.specific_fn.loc21_3.6(%int_2147483647.loc20) [template = constants.%int_2147483647.2ba] -// CHECK:STDOUT: %.loc21_3.17: init %i32 = converted %int_2147483647.loc20, %int.convert_checked.loc21_3.6 [template = constants.%int_2147483647.2ba] +// CHECK:STDOUT: %.loc21_3.16: init %i32 = initialize_from %.loc21_3.14 to %.loc21_3.15 [template = constants.%int_2147483647.a74] +// CHECK:STDOUT: %impl.elem0.loc21_3.6: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21_3.6: = bound_method %int_2147483647.loc20, %impl.elem0.loc21_3.6 [template = constants.%Convert.bound.f38] +// CHECK:STDOUT: %Convert.specific_fn.loc21_3.6: = specific_function %Convert.bound.loc21_3.6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.221] +// CHECK:STDOUT: %int.convert_checked.loc21_3.6: init %i32 = call %Convert.specific_fn.loc21_3.6(%int_2147483647.loc20) [template = constants.%int_2147483647.a74] +// CHECK:STDOUT: %.loc21_3.17: init %i32 = converted %int_2147483647.loc20, %int.convert_checked.loc21_3.6 [template = constants.%int_2147483647.a74] // CHECK:STDOUT: %int_5.loc21: Core.IntLiteral = int_value 5 [template = constants.%int_5] // CHECK:STDOUT: %.loc21_3.18: ref %i32 = array_index %ints.var, %int_5.loc21 -// CHECK:STDOUT: %.loc21_3.19: init %i32 = initialize_from %.loc21_3.17 to %.loc21_3.18 [template = constants.%int_2147483647.2ba] -// CHECK:STDOUT: %.loc21_3.20: init %array_type.a36 = array_init (%.loc21_3.4, %.loc21_3.7, %.loc21_3.10, %.loc21_3.13, %.loc21_3.16, %.loc21_3.19) to %ints.var [template = constants.%array.11d] -// CHECK:STDOUT: %.loc21_4: init %array_type.a36 = converted %.loc21_3.1, %.loc21_3.20 [template = constants.%array.11d] +// CHECK:STDOUT: %.loc21_3.19: init %i32 = initialize_from %.loc21_3.17 to %.loc21_3.18 [template = constants.%int_2147483647.a74] +// CHECK:STDOUT: %.loc21_3.20: init %array_type.d49 = array_init (%.loc21_3.4, %.loc21_3.7, %.loc21_3.10, %.loc21_3.13, %.loc21_3.16, %.loc21_3.19) to %ints.var [template = constants.%array.ae2] +// CHECK:STDOUT: %.loc21_4: init %array_type.d49 = converted %.loc21_3.1, %.loc21_3.20 [template = constants.%array.ae2] // CHECK:STDOUT: assign %ints.var, %.loc21_4 // CHECK:STDOUT: %floats.var: ref %array_type.72b = var floats // CHECK:STDOUT: %floats: ref %array_type.72b = bind_name floats, %floats.var diff --git a/toolchain/check/testdata/basics/parens.carbon b/toolchain/check/testdata/basics/parens.carbon index d947a0f156ab..af70443cef86 100644 --- a/toolchain/check/testdata/basics/parens.carbon +++ b/toolchain/check/testdata/basics/parens.carbon @@ -17,23 +17,23 @@ var b: i32 = ((2)); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -55,18 +55,18 @@ var b: i32 = ((2)); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc11: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_1, %impl.elem0.loc11 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11: init %i32 = converted %int_1, %int.convert_checked.loc11 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc11: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_1, %impl.elem0.loc11 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11: init %i32 = converted %int_1, %int.convert_checked.loc11 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign file.%a.var, %.loc11 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_2, %impl.elem0.loc12 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_2, %int.convert_checked.loc12 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_2, %impl.elem0.loc12 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_2, %int.convert_checked.loc12 [template = constants.%int_2.ef8] // CHECK:STDOUT: assign file.%b.var, %.loc12 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/run_i32.carbon b/toolchain/check/testdata/basics/run_i32.carbon index 377e5a54c7e9..bec76984e3ff 100644 --- a/toolchain/check/testdata/basics/run_i32.carbon +++ b/toolchain/check/testdata/basics/run_i32.carbon @@ -18,19 +18,19 @@ fn Run() -> i32 { return 0; } // CHECK:STDOUT: %Run.type: type = fn_type @Run [template] // CHECK:STDOUT: %Run: %Run.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -58,12 +58,12 @@ fn Run() -> i32 { return 0; } // CHECK:STDOUT: fn @Run() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_27.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_27.2: %i32 = converted %int_0, %.loc11_27.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_27.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_27.2: %i32 = converted %int_0, %.loc11_27.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc11_27.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/type_literals.carbon b/toolchain/check/testdata/basics/type_literals.carbon index e7e480d6de19..414fbc855f13 100644 --- a/toolchain/check/testdata/basics/type_literals.carbon +++ b/toolchain/check/testdata/basics/type_literals.carbon @@ -138,7 +138,7 @@ var test_f128: f128; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -180,7 +180,7 @@ var test_f128: f128; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .UInt = %import_ref.b2c +// CHECK:STDOUT: .UInt = %import_ref.bcd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/bool/eq.carbon b/toolchain/check/testdata/builtins/bool/eq.carbon index 4ee90d676e02..3f34112f6962 100644 --- a/toolchain/check/testdata/builtins/bool/eq.carbon +++ b/toolchain/check/testdata/builtins/bool/eq.carbon @@ -49,15 +49,15 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %B.patt: bool = symbolic_binding_pattern B, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.a1d: type = class_type @C, @C(%B) [symbolic] +// CHECK:STDOUT: %C.342: type = class_type @C, @C(%B) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] -// CHECK:STDOUT: %C.ec9: type = class_type @C, @C(%true) [template] +// CHECK:STDOUT: %C.a14: type = class_type @C, @C(%true) [template] // CHECK:STDOUT: %True.type: type = fn_type @True [template] // CHECK:STDOUT: %True: %True.type = struct_value () [template] // CHECK:STDOUT: %false: bool = bool_literal false [template] -// CHECK:STDOUT: %C.9f8: type = class_type @C, @C(%false) [template] +// CHECK:STDOUT: %C.2ba: type = class_type @C, @C(%false) [template] // CHECK:STDOUT: %False.type: type = fn_type @False [template] // CHECK:STDOUT: %False: %False.type = struct_value () [template] // CHECK:STDOUT: } @@ -124,33 +124,33 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %B.loc6_9.1: bool = bind_symbolic_name B, 0, %B.param [symbolic = %B.loc6_9.2 (constants.%B)] // CHECK:STDOUT: } // CHECK:STDOUT: %True.decl: %True.type = fn_decl @True [template = constants.%True] { -// CHECK:STDOUT: %return.patt: %C.ec9 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.ec9 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.a14 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.a14 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %true: bool = bool_literal true [template = constants.%true] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%true) [template = constants.%C.ec9] -// CHECK:STDOUT: %return.param: ref %C.ec9 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.ec9 = return_slot %return.param +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%true) [template = constants.%C.a14] +// CHECK:STDOUT: %return.param: ref %C.a14 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.a14 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %False.decl: %False.type = fn_decl @False [template = constants.%False] { -// CHECK:STDOUT: %return.patt: %C.9f8 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.9f8 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.2ba = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.2ba = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %false: bool = bool_literal false [template = constants.%false] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%false) [template = constants.%C.9f8] -// CHECK:STDOUT: %return.param: ref %C.9f8 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.9f8 = return_slot %return.param +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%false) [template = constants.%C.2ba] +// CHECK:STDOUT: %return.param: ref %C.2ba = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.2ba = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %C.ec9 = var a -// CHECK:STDOUT: %a: ref %C.ec9 = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %C.9f8 = var b -// CHECK:STDOUT: %b: ref %C.9f8 = bind_name b, %b.var -// CHECK:STDOUT: %c.var: ref %C.9f8 = var c -// CHECK:STDOUT: %c: ref %C.9f8 = bind_name c, %c.var -// CHECK:STDOUT: %d.var: ref %C.ec9 = var d -// CHECK:STDOUT: %d: ref %C.ec9 = bind_name d, %d.var +// CHECK:STDOUT: %a.var: ref %C.a14 = var a +// CHECK:STDOUT: %a: ref %C.a14 = bind_name a, %a.var +// CHECK:STDOUT: %b.var: ref %C.2ba = var b +// CHECK:STDOUT: %b: ref %C.2ba = bind_name b, %b.var +// CHECK:STDOUT: %c.var: ref %C.2ba = var c +// CHECK:STDOUT: %c: ref %C.2ba = bind_name c, %c.var +// CHECK:STDOUT: %d.var: ref %C.a14 = var d +// CHECK:STDOUT: %d: ref %C.a14 = bind_name d, %d.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(%B.loc6_9.1: bool) { @@ -163,34 +163,34 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.a1d +// CHECK:STDOUT: .Self = constants.%C.342 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Eq(%a.param_patt: bool, %b.param_patt: bool) -> bool = "bool.eq"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @True() -> %C.ec9; +// CHECK:STDOUT: fn @True() -> %C.a14; // CHECK:STDOUT: -// CHECK:STDOUT: fn @False() -> %C.9f8; +// CHECK:STDOUT: fn @False() -> %C.2ba; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %True.ref.loc11: %True.type = name_ref True, file.%True.decl [template = constants.%True] -// CHECK:STDOUT: %.loc11: ref %C.ec9 = splice_block file.%a.var {} -// CHECK:STDOUT: %True.call.loc11: init %C.ec9 = call %True.ref.loc11() to %.loc11 +// CHECK:STDOUT: %.loc11: ref %C.a14 = splice_block file.%a.var {} +// CHECK:STDOUT: %True.call.loc11: init %C.a14 = call %True.ref.loc11() to %.loc11 // CHECK:STDOUT: assign file.%a.var, %True.call.loc11 // CHECK:STDOUT: %False.ref.loc12: %False.type = name_ref False, file.%False.decl [template = constants.%False] -// CHECK:STDOUT: %.loc12: ref %C.9f8 = splice_block file.%b.var {} -// CHECK:STDOUT: %False.call.loc12: init %C.9f8 = call %False.ref.loc12() to %.loc12 +// CHECK:STDOUT: %.loc12: ref %C.2ba = splice_block file.%b.var {} +// CHECK:STDOUT: %False.call.loc12: init %C.2ba = call %False.ref.loc12() to %.loc12 // CHECK:STDOUT: assign file.%b.var, %False.call.loc12 // CHECK:STDOUT: %False.ref.loc13: %False.type = name_ref False, file.%False.decl [template = constants.%False] -// CHECK:STDOUT: %.loc13: ref %C.9f8 = splice_block file.%c.var {} -// CHECK:STDOUT: %False.call.loc13: init %C.9f8 = call %False.ref.loc13() to %.loc13 +// CHECK:STDOUT: %.loc13: ref %C.2ba = splice_block file.%c.var {} +// CHECK:STDOUT: %False.call.loc13: init %C.2ba = call %False.ref.loc13() to %.loc13 // CHECK:STDOUT: assign file.%c.var, %False.call.loc13 // CHECK:STDOUT: %True.ref.loc14: %True.type = name_ref True, file.%True.decl [template = constants.%True] -// CHECK:STDOUT: %.loc14: ref %C.ec9 = splice_block file.%d.var {} -// CHECK:STDOUT: %True.call.loc14: init %C.ec9 = call %True.ref.loc14() to %.loc14 +// CHECK:STDOUT: %.loc14: ref %C.a14 = splice_block file.%d.var {} +// CHECK:STDOUT: %True.call.loc14: init %C.a14 = call %True.ref.loc14() to %.loc14 // CHECK:STDOUT: assign file.%d.var, %True.call.loc14 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -223,23 +223,23 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %B.patt: bool = symbolic_binding_pattern B, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.a1d: type = class_type @C, @C(%B) [symbolic] +// CHECK:STDOUT: %C.342: type = class_type @C, @C(%B) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] -// CHECK:STDOUT: %C.ec9: type = class_type @C, @C(%true) [template] +// CHECK:STDOUT: %C.a14: type = class_type @C, @C(%true) [template] // CHECK:STDOUT: %True.type: type = fn_type @True [template] // CHECK:STDOUT: %True: %True.type = struct_value () [template] // CHECK:STDOUT: %false: bool = bool_literal false [template] -// CHECK:STDOUT: %C.9f8: type = class_type @C, @C(%false) [template] +// CHECK:STDOUT: %C.2ba: type = class_type @C, @C(%false) [template] // CHECK:STDOUT: %False.type: type = fn_type @False [template] // CHECK:STDOUT: %False: %False.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Eq = %import_ref.32e +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Eq = %import_ref.822 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -270,33 +270,33 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %B.loc4_9.1: bool = bind_symbolic_name B, 0, %B.param [symbolic = %B.loc4_9.2 (constants.%B)] // CHECK:STDOUT: } // CHECK:STDOUT: %True.decl: %True.type = fn_decl @True [template = constants.%True] { -// CHECK:STDOUT: %return.patt: %C.ec9 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.ec9 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.a14 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.a14 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %true: bool = bool_literal true [template = constants.%true] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%true) [template = constants.%C.ec9] -// CHECK:STDOUT: %return.param: ref %C.ec9 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.ec9 = return_slot %return.param +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%true) [template = constants.%C.a14] +// CHECK:STDOUT: %return.param: ref %C.a14 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.a14 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %False.decl: %False.type = fn_decl @False [template = constants.%False] { -// CHECK:STDOUT: %return.patt: %C.9f8 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.9f8 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.2ba = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.2ba = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %false: bool = bool_literal false [template = constants.%false] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%false) [template = constants.%C.9f8] -// CHECK:STDOUT: %return.param: ref %C.9f8 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.9f8 = return_slot %return.param +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%false) [template = constants.%C.2ba] +// CHECK:STDOUT: %return.param: ref %C.2ba = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.2ba = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %C.ec9 = var a -// CHECK:STDOUT: %a: ref %C.ec9 = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %C.9f8 = var b -// CHECK:STDOUT: %b: ref %C.9f8 = bind_name b, %b.var -// CHECK:STDOUT: %c.var: ref %C.9f8 = var c -// CHECK:STDOUT: %c: ref %C.9f8 = bind_name c, %c.var -// CHECK:STDOUT: %d.var: ref %C.ec9 = var d -// CHECK:STDOUT: %d: ref %C.ec9 = bind_name d, %d.var +// CHECK:STDOUT: %a.var: ref %C.a14 = var a +// CHECK:STDOUT: %a: ref %C.a14 = bind_name a, %a.var +// CHECK:STDOUT: %b.var: ref %C.2ba = var b +// CHECK:STDOUT: %b: ref %C.2ba = bind_name b, %b.var +// CHECK:STDOUT: %c.var: ref %C.2ba = var c +// CHECK:STDOUT: %c: ref %C.2ba = bind_name c, %c.var +// CHECK:STDOUT: %d.var: ref %C.a14 = var d +// CHECK:STDOUT: %d: ref %C.a14 = bind_name d, %d.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(%B.loc4_9.1: bool) { @@ -309,32 +309,32 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.a1d +// CHECK:STDOUT: .Self = constants.%C.342 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @True() -> %C.ec9; +// CHECK:STDOUT: fn @True() -> %C.a14; // CHECK:STDOUT: -// CHECK:STDOUT: fn @False() -> %C.9f8; +// CHECK:STDOUT: fn @False() -> %C.2ba; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %True.ref.loc9: %True.type = name_ref True, file.%True.decl [template = constants.%True] -// CHECK:STDOUT: %.loc9: ref %C.ec9 = splice_block file.%a.var {} -// CHECK:STDOUT: %True.call.loc9: init %C.ec9 = call %True.ref.loc9() to %.loc9 +// CHECK:STDOUT: %.loc9: ref %C.a14 = splice_block file.%a.var {} +// CHECK:STDOUT: %True.call.loc9: init %C.a14 = call %True.ref.loc9() to %.loc9 // CHECK:STDOUT: assign file.%a.var, %True.call.loc9 // CHECK:STDOUT: %False.ref.loc10: %False.type = name_ref False, file.%False.decl [template = constants.%False] -// CHECK:STDOUT: %.loc10: ref %C.9f8 = splice_block file.%b.var {} -// CHECK:STDOUT: %False.call.loc10: init %C.9f8 = call %False.ref.loc10() to %.loc10 +// CHECK:STDOUT: %.loc10: ref %C.2ba = splice_block file.%b.var {} +// CHECK:STDOUT: %False.call.loc10: init %C.2ba = call %False.ref.loc10() to %.loc10 // CHECK:STDOUT: assign file.%b.var, %False.call.loc10 // CHECK:STDOUT: %False.ref.loc11: %False.type = name_ref False, file.%False.decl [template = constants.%False] -// CHECK:STDOUT: %.loc11: ref %C.9f8 = splice_block file.%c.var {} -// CHECK:STDOUT: %False.call.loc11: init %C.9f8 = call %False.ref.loc11() to %.loc11 +// CHECK:STDOUT: %.loc11: ref %C.2ba = splice_block file.%c.var {} +// CHECK:STDOUT: %False.call.loc11: init %C.2ba = call %False.ref.loc11() to %.loc11 // CHECK:STDOUT: assign file.%c.var, %False.call.loc11 // CHECK:STDOUT: %True.ref.loc12: %True.type = name_ref True, file.%True.decl [template = constants.%True] -// CHECK:STDOUT: %.loc12: ref %C.ec9 = splice_block file.%d.var {} -// CHECK:STDOUT: %True.call.loc12: init %C.ec9 = call %True.ref.loc12() to %.loc12 +// CHECK:STDOUT: %.loc12: ref %C.a14 = splice_block file.%d.var {} +// CHECK:STDOUT: %True.call.loc12: init %C.a14 = call %True.ref.loc12() to %.loc12 // CHECK:STDOUT: assign file.%d.var, %True.call.loc12 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/bool/neq.carbon b/toolchain/check/testdata/builtins/bool/neq.carbon index 278f2ac0b2b0..5e6790b8ce93 100644 --- a/toolchain/check/testdata/builtins/bool/neq.carbon +++ b/toolchain/check/testdata/builtins/bool/neq.carbon @@ -49,15 +49,15 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %B.patt: bool = symbolic_binding_pattern B, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.a1d: type = class_type @C, @C(%B) [symbolic] +// CHECK:STDOUT: %C.342: type = class_type @C, @C(%B) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] -// CHECK:STDOUT: %C.ec9: type = class_type @C, @C(%true) [template] +// CHECK:STDOUT: %C.a14: type = class_type @C, @C(%true) [template] // CHECK:STDOUT: %True.type: type = fn_type @True [template] // CHECK:STDOUT: %True: %True.type = struct_value () [template] // CHECK:STDOUT: %false: bool = bool_literal false [template] -// CHECK:STDOUT: %C.9f8: type = class_type @C, @C(%false) [template] +// CHECK:STDOUT: %C.2ba: type = class_type @C, @C(%false) [template] // CHECK:STDOUT: %False.type: type = fn_type @False [template] // CHECK:STDOUT: %False: %False.type = struct_value () [template] // CHECK:STDOUT: } @@ -124,33 +124,33 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %B.loc6_9.1: bool = bind_symbolic_name B, 0, %B.param [symbolic = %B.loc6_9.2 (constants.%B)] // CHECK:STDOUT: } // CHECK:STDOUT: %True.decl: %True.type = fn_decl @True [template = constants.%True] { -// CHECK:STDOUT: %return.patt: %C.ec9 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.ec9 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.a14 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.a14 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %true: bool = bool_literal true [template = constants.%true] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%true) [template = constants.%C.ec9] -// CHECK:STDOUT: %return.param: ref %C.ec9 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.ec9 = return_slot %return.param +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%true) [template = constants.%C.a14] +// CHECK:STDOUT: %return.param: ref %C.a14 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.a14 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %False.decl: %False.type = fn_decl @False [template = constants.%False] { -// CHECK:STDOUT: %return.patt: %C.9f8 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.9f8 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.2ba = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.2ba = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %false: bool = bool_literal false [template = constants.%false] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%false) [template = constants.%C.9f8] -// CHECK:STDOUT: %return.param: ref %C.9f8 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.9f8 = return_slot %return.param +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%false) [template = constants.%C.2ba] +// CHECK:STDOUT: %return.param: ref %C.2ba = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.2ba = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %C.9f8 = var a -// CHECK:STDOUT: %a: ref %C.9f8 = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %C.ec9 = var b -// CHECK:STDOUT: %b: ref %C.ec9 = bind_name b, %b.var -// CHECK:STDOUT: %c.var: ref %C.ec9 = var c -// CHECK:STDOUT: %c: ref %C.ec9 = bind_name c, %c.var -// CHECK:STDOUT: %d.var: ref %C.9f8 = var d -// CHECK:STDOUT: %d: ref %C.9f8 = bind_name d, %d.var +// CHECK:STDOUT: %a.var: ref %C.2ba = var a +// CHECK:STDOUT: %a: ref %C.2ba = bind_name a, %a.var +// CHECK:STDOUT: %b.var: ref %C.a14 = var b +// CHECK:STDOUT: %b: ref %C.a14 = bind_name b, %b.var +// CHECK:STDOUT: %c.var: ref %C.a14 = var c +// CHECK:STDOUT: %c: ref %C.a14 = bind_name c, %c.var +// CHECK:STDOUT: %d.var: ref %C.2ba = var d +// CHECK:STDOUT: %d: ref %C.2ba = bind_name d, %d.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(%B.loc6_9.1: bool) { @@ -163,34 +163,34 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.a1d +// CHECK:STDOUT: .Self = constants.%C.342 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Neq(%a.param_patt: bool, %b.param_patt: bool) -> bool = "bool.neq"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @True() -> %C.ec9; +// CHECK:STDOUT: fn @True() -> %C.a14; // CHECK:STDOUT: -// CHECK:STDOUT: fn @False() -> %C.9f8; +// CHECK:STDOUT: fn @False() -> %C.2ba; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %False.ref.loc11: %False.type = name_ref False, file.%False.decl [template = constants.%False] -// CHECK:STDOUT: %.loc11: ref %C.9f8 = splice_block file.%a.var {} -// CHECK:STDOUT: %False.call.loc11: init %C.9f8 = call %False.ref.loc11() to %.loc11 +// CHECK:STDOUT: %.loc11: ref %C.2ba = splice_block file.%a.var {} +// CHECK:STDOUT: %False.call.loc11: init %C.2ba = call %False.ref.loc11() to %.loc11 // CHECK:STDOUT: assign file.%a.var, %False.call.loc11 // CHECK:STDOUT: %True.ref.loc12: %True.type = name_ref True, file.%True.decl [template = constants.%True] -// CHECK:STDOUT: %.loc12: ref %C.ec9 = splice_block file.%b.var {} -// CHECK:STDOUT: %True.call.loc12: init %C.ec9 = call %True.ref.loc12() to %.loc12 +// CHECK:STDOUT: %.loc12: ref %C.a14 = splice_block file.%b.var {} +// CHECK:STDOUT: %True.call.loc12: init %C.a14 = call %True.ref.loc12() to %.loc12 // CHECK:STDOUT: assign file.%b.var, %True.call.loc12 // CHECK:STDOUT: %True.ref.loc13: %True.type = name_ref True, file.%True.decl [template = constants.%True] -// CHECK:STDOUT: %.loc13: ref %C.ec9 = splice_block file.%c.var {} -// CHECK:STDOUT: %True.call.loc13: init %C.ec9 = call %True.ref.loc13() to %.loc13 +// CHECK:STDOUT: %.loc13: ref %C.a14 = splice_block file.%c.var {} +// CHECK:STDOUT: %True.call.loc13: init %C.a14 = call %True.ref.loc13() to %.loc13 // CHECK:STDOUT: assign file.%c.var, %True.call.loc13 // CHECK:STDOUT: %False.ref.loc14: %False.type = name_ref False, file.%False.decl [template = constants.%False] -// CHECK:STDOUT: %.loc14: ref %C.9f8 = splice_block file.%d.var {} -// CHECK:STDOUT: %False.call.loc14: init %C.9f8 = call %False.ref.loc14() to %.loc14 +// CHECK:STDOUT: %.loc14: ref %C.2ba = splice_block file.%d.var {} +// CHECK:STDOUT: %False.call.loc14: init %C.2ba = call %False.ref.loc14() to %.loc14 // CHECK:STDOUT: assign file.%d.var, %False.call.loc14 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -223,23 +223,23 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %B.patt: bool = symbolic_binding_pattern B, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.a1d: type = class_type @C, @C(%B) [symbolic] +// CHECK:STDOUT: %C.342: type = class_type @C, @C(%B) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] -// CHECK:STDOUT: %C.ec9: type = class_type @C, @C(%true) [template] +// CHECK:STDOUT: %C.a14: type = class_type @C, @C(%true) [template] // CHECK:STDOUT: %True.type: type = fn_type @True [template] // CHECK:STDOUT: %True: %True.type = struct_value () [template] // CHECK:STDOUT: %false: bool = bool_literal false [template] -// CHECK:STDOUT: %C.9f8: type = class_type @C, @C(%false) [template] +// CHECK:STDOUT: %C.2ba: type = class_type @C, @C(%false) [template] // CHECK:STDOUT: %False.type: type = fn_type @False [template] // CHECK:STDOUT: %False: %False.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Eq = %import_ref.32e +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Eq = %import_ref.822 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -270,33 +270,33 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %B.loc4_9.1: bool = bind_symbolic_name B, 0, %B.param [symbolic = %B.loc4_9.2 (constants.%B)] // CHECK:STDOUT: } // CHECK:STDOUT: %True.decl: %True.type = fn_decl @True [template = constants.%True] { -// CHECK:STDOUT: %return.patt: %C.ec9 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.ec9 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.a14 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.a14 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %true: bool = bool_literal true [template = constants.%true] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%true) [template = constants.%C.ec9] -// CHECK:STDOUT: %return.param: ref %C.ec9 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.ec9 = return_slot %return.param +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%true) [template = constants.%C.a14] +// CHECK:STDOUT: %return.param: ref %C.a14 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.a14 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %False.decl: %False.type = fn_decl @False [template = constants.%False] { -// CHECK:STDOUT: %return.patt: %C.9f8 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.9f8 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.2ba = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.2ba = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %false: bool = bool_literal false [template = constants.%false] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%false) [template = constants.%C.9f8] -// CHECK:STDOUT: %return.param: ref %C.9f8 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.9f8 = return_slot %return.param +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%false) [template = constants.%C.2ba] +// CHECK:STDOUT: %return.param: ref %C.2ba = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.2ba = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %C.9f8 = var a -// CHECK:STDOUT: %a: ref %C.9f8 = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %C.ec9 = var b -// CHECK:STDOUT: %b: ref %C.ec9 = bind_name b, %b.var -// CHECK:STDOUT: %c.var: ref %C.ec9 = var c -// CHECK:STDOUT: %c: ref %C.ec9 = bind_name c, %c.var -// CHECK:STDOUT: %d.var: ref %C.9f8 = var d -// CHECK:STDOUT: %d: ref %C.9f8 = bind_name d, %d.var +// CHECK:STDOUT: %a.var: ref %C.2ba = var a +// CHECK:STDOUT: %a: ref %C.2ba = bind_name a, %a.var +// CHECK:STDOUT: %b.var: ref %C.a14 = var b +// CHECK:STDOUT: %b: ref %C.a14 = bind_name b, %b.var +// CHECK:STDOUT: %c.var: ref %C.a14 = var c +// CHECK:STDOUT: %c: ref %C.a14 = bind_name c, %c.var +// CHECK:STDOUT: %d.var: ref %C.2ba = var d +// CHECK:STDOUT: %d: ref %C.2ba = bind_name d, %d.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(%B.loc4_9.1: bool) { @@ -309,32 +309,32 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.a1d +// CHECK:STDOUT: .Self = constants.%C.342 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @True() -> %C.ec9; +// CHECK:STDOUT: fn @True() -> %C.a14; // CHECK:STDOUT: -// CHECK:STDOUT: fn @False() -> %C.9f8; +// CHECK:STDOUT: fn @False() -> %C.2ba; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %False.ref.loc9: %False.type = name_ref False, file.%False.decl [template = constants.%False] -// CHECK:STDOUT: %.loc9: ref %C.9f8 = splice_block file.%a.var {} -// CHECK:STDOUT: %False.call.loc9: init %C.9f8 = call %False.ref.loc9() to %.loc9 +// CHECK:STDOUT: %.loc9: ref %C.2ba = splice_block file.%a.var {} +// CHECK:STDOUT: %False.call.loc9: init %C.2ba = call %False.ref.loc9() to %.loc9 // CHECK:STDOUT: assign file.%a.var, %False.call.loc9 // CHECK:STDOUT: %True.ref.loc10: %True.type = name_ref True, file.%True.decl [template = constants.%True] -// CHECK:STDOUT: %.loc10: ref %C.ec9 = splice_block file.%b.var {} -// CHECK:STDOUT: %True.call.loc10: init %C.ec9 = call %True.ref.loc10() to %.loc10 +// CHECK:STDOUT: %.loc10: ref %C.a14 = splice_block file.%b.var {} +// CHECK:STDOUT: %True.call.loc10: init %C.a14 = call %True.ref.loc10() to %.loc10 // CHECK:STDOUT: assign file.%b.var, %True.call.loc10 // CHECK:STDOUT: %True.ref.loc11: %True.type = name_ref True, file.%True.decl [template = constants.%True] -// CHECK:STDOUT: %.loc11: ref %C.ec9 = splice_block file.%c.var {} -// CHECK:STDOUT: %True.call.loc11: init %C.ec9 = call %True.ref.loc11() to %.loc11 +// CHECK:STDOUT: %.loc11: ref %C.a14 = splice_block file.%c.var {} +// CHECK:STDOUT: %True.call.loc11: init %C.a14 = call %True.ref.loc11() to %.loc11 // CHECK:STDOUT: assign file.%c.var, %True.call.loc11 // CHECK:STDOUT: %False.ref.loc12: %False.type = name_ref False, file.%False.decl [template = constants.%False] -// CHECK:STDOUT: %.loc12: ref %C.9f8 = splice_block file.%d.var {} -// CHECK:STDOUT: %False.call.loc12: init %C.9f8 = call %False.ref.loc12() to %.loc12 +// CHECK:STDOUT: %.loc12: ref %C.2ba = splice_block file.%d.var {} +// CHECK:STDOUT: %False.call.loc12: init %C.2ba = call %False.ref.loc12() to %.loc12 // CHECK:STDOUT: assign file.%d.var, %False.call.loc12 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/add.carbon b/toolchain/check/testdata/builtins/float/add.carbon index 19c2c932cc06..d3213233bb15 100644 --- a/toolchain/check/testdata/builtins/float/add.carbon +++ b/toolchain/check/testdata/builtins/float/add.carbon @@ -196,8 +196,8 @@ fn RuntimeCallIsValidBadReturnType(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/div.carbon b/toolchain/check/testdata/builtins/float/div.carbon index 640be984889c..a4656f8ad9e3 100644 --- a/toolchain/check/testdata/builtins/float/div.carbon +++ b/toolchain/check/testdata/builtins/float/div.carbon @@ -218,8 +218,8 @@ fn RuntimeCallIsValidBadReturnType(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/eq.carbon b/toolchain/check/testdata/builtins/float/eq.carbon index 2d554093c437..7b56cec70b7f 100644 --- a/toolchain/check/testdata/builtins/float/eq.carbon +++ b/toolchain/check/testdata/builtins/float/eq.carbon @@ -59,8 +59,8 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.eq"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/greater.carbon b/toolchain/check/testdata/builtins/float/greater.carbon index 128403518549..fd557acfe61e 100644 --- a/toolchain/check/testdata/builtins/float/greater.carbon +++ b/toolchain/check/testdata/builtins/float/greater.carbon @@ -58,8 +58,8 @@ fn RuntimeCallIsValid(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/greater_eq.carbon b/toolchain/check/testdata/builtins/float/greater_eq.carbon index e2ea4f7becab..86570a2054ba 100644 --- a/toolchain/check/testdata/builtins/float/greater_eq.carbon +++ b/toolchain/check/testdata/builtins/float/greater_eq.carbon @@ -58,8 +58,8 @@ fn RuntimeCallIsValid(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/less.carbon b/toolchain/check/testdata/builtins/float/less.carbon index 498c0051a68b..7c60a5485102 100644 --- a/toolchain/check/testdata/builtins/float/less.carbon +++ b/toolchain/check/testdata/builtins/float/less.carbon @@ -58,8 +58,8 @@ fn RuntimeCallIsValid(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/less_eq.carbon b/toolchain/check/testdata/builtins/float/less_eq.carbon index 56b597acf51f..f7d09a716cf3 100644 --- a/toolchain/check/testdata/builtins/float/less_eq.carbon +++ b/toolchain/check/testdata/builtins/float/less_eq.carbon @@ -58,8 +58,8 @@ fn RuntimeCallIsValid(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/make_type.carbon b/toolchain/check/testdata/builtins/float/make_type.carbon index dcbeefdb2343..13d026d82539 100644 --- a/toolchain/check/testdata/builtins/float/make_type.carbon +++ b/toolchain/check/testdata/builtins/float/make_type.carbon @@ -55,7 +55,7 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -99,10 +99,10 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.197: %Float.type = import_ref Main//types, Float, loaded [template = constants.%Float] +// CHECK:STDOUT: %import_ref.fb8: %Float.type = import_ref Main//types, Float, loaded [template = constants.%Float] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Int = %import_ref.d69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Int = %import_ref.2c8 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -110,7 +110,7 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Float = imports.%import_ref.197 +// CHECK:STDOUT: .Float = imports.%import_ref.fb8 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .f = %f // CHECK:STDOUT: .GetFloat = %GetFloat.decl @@ -140,7 +140,7 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: // CHECK:STDOUT: fn @GetFloat(%dyn_size.param_patt: %i32) -> type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Float.ref: %Float.type = name_ref Float, imports.%import_ref.197 [template = constants.%Float] +// CHECK:STDOUT: %Float.ref: %Float.type = name_ref Float, imports.%import_ref.fb8 [template = constants.%Float] // CHECK:STDOUT: %dyn_size.ref: %i32 = name_ref dyn_size, %dyn_size // CHECK:STDOUT: %float.make_type: init type = call %Float.ref(%dyn_size.ref) // CHECK:STDOUT: %.loc9_25.1: type = value_of_initializer %float.make_type @@ -162,21 +162,21 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: %Float: %Float.type = struct_value () [template] // CHECK:STDOUT: %int_32.be0: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32.be0) [template] -// CHECK:STDOUT: %Convert.type.e4d: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32.be0) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32.be0) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] +// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.b97: = impl_witness (imports.%import_ref.a86), @impl.1(%int_32.be0) [template] +// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @impl.1(%int_32.be0) [template] +// CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [template] // CHECK:STDOUT: %int_64.fab: Core.IntLiteral = int_value 64 [template] -// CHECK:STDOUT: %Convert.bound.8f9: = bound_method %int_64.fab, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.124: = specific_function %Convert.bound.8f9, @Convert.2(%int_32.be0) [template] -// CHECK:STDOUT: %int_64.949: %i32 = int_value 64 [template] +// CHECK:STDOUT: %Convert.bound.575: = bound_method %int_64.fab, %Convert.16d [template] +// CHECK:STDOUT: %Convert.specific_fn.bd8: = specific_function %Convert.bound.575, @Convert.2(%int_32.be0) [template] +// CHECK:STDOUT: %int_64.198: %i32 = int_value 64 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.197: %Float.type = import_ref Main//types, Float, loaded [template = constants.%Float] +// CHECK:STDOUT: %import_ref.fb8: %Float.type = import_ref Main//types, Float, loaded [template = constants.%Float] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Int = %import_ref.d69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Int = %import_ref.2c8 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -184,7 +184,7 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Float = imports.%import_ref.197 +// CHECK:STDOUT: .Float = imports.%import_ref.fb8 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .invalid_float = %invalid_float // CHECK:STDOUT: .dyn_size = %dyn_size @@ -205,11 +205,11 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [template = constants.%int_64.fab] -// CHECK:STDOUT: %impl.elem0: %Convert.type.e4d = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_64, %impl.elem0 [template = constants.%Convert.bound.8f9] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32.be0) [template = constants.%Convert.specific_fn.124] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_64) [template = constants.%int_64.949] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_64, %int.convert_checked [template = constants.%int_64.949] +// CHECK:STDOUT: %impl.elem0: %Convert.type.6da = impl_witness_access constants.%impl_witness.b97, element0 [template = constants.%Convert.16d] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_64, %impl.elem0 [template = constants.%Convert.bound.575] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32.be0) [template = constants.%Convert.specific_fn.bd8] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_64) [template = constants.%int_64.198] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_64, %int.convert_checked [template = constants.%int_64.198] // CHECK:STDOUT: assign file.%dyn_size.var, %.loc12 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/mul.carbon b/toolchain/check/testdata/builtins/float/mul.carbon index 9b5f2d496d28..ac1c6df53f0d 100644 --- a/toolchain/check/testdata/builtins/float/mul.carbon +++ b/toolchain/check/testdata/builtins/float/mul.carbon @@ -196,8 +196,8 @@ fn RuntimeCallIsValidBadReturnType(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/negate.carbon b/toolchain/check/testdata/builtins/float/negate.carbon index e33da7661354..80a72e3b30c2 100644 --- a/toolchain/check/testdata/builtins/float/negate.carbon +++ b/toolchain/check/testdata/builtins/float/negate.carbon @@ -204,8 +204,8 @@ fn RuntimeCallIsValidBadReturnType(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/neq.carbon b/toolchain/check/testdata/builtins/float/neq.carbon index 8a90834b1cd7..a55b62f45c90 100644 --- a/toolchain/check/testdata/builtins/float/neq.carbon +++ b/toolchain/check/testdata/builtins/float/neq.carbon @@ -59,8 +59,8 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.neq"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/sub.carbon b/toolchain/check/testdata/builtins/float/sub.carbon index a73105c61101..23f0b72356b9 100644 --- a/toolchain/check/testdata/builtins/float/sub.carbon +++ b/toolchain/check/testdata/builtins/float/sub.carbon @@ -196,8 +196,8 @@ fn RuntimeCallIsValidBadReturnType(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/print/char.carbon b/toolchain/check/testdata/builtins/print/char.carbon index 7d6a46e1d28d..5dec1afbc55b 100644 --- a/toolchain/check/testdata/builtins/print/char.carbon +++ b/toolchain/check/testdata/builtins/print/char.carbon @@ -27,31 +27,31 @@ fn Main() { // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %PrintChar.type.089: type = fn_type @PrintChar.2 [template] // CHECK:STDOUT: %PrintChar.d75: %PrintChar.type.089 = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .PrintChar = %import_ref.d1d +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .PrintChar = %import_ref.f2f // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//io // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.d1d: %PrintChar.type.089 = import_ref Core//io, PrintChar, loaded [template = constants.%PrintChar.d75] +// CHECK:STDOUT: %import_ref.f2f: %PrintChar.type.089 = import_ref Core//io, PrintChar, loaded [template = constants.%PrintChar.d75] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -87,22 +87,22 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %PrintChar.ref.loc16: %PrintChar.type.c95 = name_ref PrintChar, file.%PrintChar.decl [template = constants.%PrintChar.843] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_1, %impl.elem0.loc16 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_13.1: %i32 = value_of_initializer %int.convert_checked.loc16 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_13.2: %i32 = converted %int_1, %.loc16_13.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_1, %impl.elem0.loc16 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_13.1: %i32 = value_of_initializer %int.convert_checked.loc16 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_13.2: %i32 = converted %int_1, %.loc16_13.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %print.char.loc16: init %i32 = call %PrintChar.ref.loc16(%.loc16_13.2) // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %PrintChar.ref.loc17: %PrintChar.type.089 = name_ref PrintChar, imports.%import_ref.d1d [template = constants.%PrintChar.d75] +// CHECK:STDOUT: %PrintChar.ref.loc17: %PrintChar.type.089 = name_ref PrintChar, imports.%import_ref.f2f [template = constants.%PrintChar.d75] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_2, %impl.elem0.loc17 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc17_18.1: %i32 = value_of_initializer %int.convert_checked.loc17 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc17_18.2: %i32 = converted %int_2, %.loc17_18.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_2, %impl.elem0.loc17 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc17_18.1: %i32 = value_of_initializer %int.convert_checked.loc17 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc17_18.2: %i32 = converted %int_2, %.loc17_18.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %print.char.loc17: init %i32 = call %PrintChar.ref.loc17(%.loc17_18.2) // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/print/int.carbon b/toolchain/check/testdata/builtins/print/int.carbon index 4865f8be5563..3ec022fa0290 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: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %Print.type.6ed: type = fn_type @Print.2 [template] // CHECK:STDOUT: %Print.723: %Print.type.6ed = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Print = %import_ref.ace +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Print = %import_ref.a34 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//io // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.ace: %Print.type.6ed = import_ref Core//io, Print, loaded [template = constants.%Print.723] +// CHECK:STDOUT: %import_ref.a34: %Print.type.6ed = import_ref Core//io, Print, loaded [template = constants.%Print.723] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -83,22 +83,22 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Print.ref.loc16: %Print.type.980 = name_ref Print, file.%Print.decl [template = constants.%Print.b7c] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_1, %impl.elem0.loc16 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_9.1: %i32 = value_of_initializer %int.convert_checked.loc16 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_9.2: %i32 = converted %int_1, %.loc16_9.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_1, %impl.elem0.loc16 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_9.1: %i32 = value_of_initializer %int.convert_checked.loc16 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_9.2: %i32 = converted %int_1, %.loc16_9.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %print.int.loc16: init %empty_tuple.type = call %Print.ref.loc16(%.loc16_9.2) // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Print.ref.loc18: %Print.type.6ed = name_ref Print, imports.%import_ref.ace [template = constants.%Print.723] +// CHECK:STDOUT: %Print.ref.loc18: %Print.type.6ed = name_ref Print, imports.%import_ref.a34 [template = constants.%Print.723] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_2, %impl.elem0.loc18 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc18_14.1: %i32 = value_of_initializer %int.convert_checked.loc18 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc18_14.2: %i32 = converted %int_2, %.loc18_14.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_2, %impl.elem0.loc18 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc18_14.1: %i32 = value_of_initializer %int.convert_checked.loc18 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc18_14.2: %i32 = converted %int_2, %.loc18_14.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %print.int.loc18: init %empty_tuple.type = call %Print.ref.loc18(%.loc18_14.2) // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/read/int.carbon b/toolchain/check/testdata/builtins/read/int.carbon index c38b1a231e36..2b19c894268e 100644 --- a/toolchain/check/testdata/builtins/read/int.carbon +++ b/toolchain/check/testdata/builtins/read/int.carbon @@ -32,13 +32,13 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ReadChar = %import_ref.12c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ReadChar = %import_ref.ecd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//io // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.12c: %ReadChar.type.9f3 = import_ref Core//io, ReadChar, loaded [template = constants.%ReadChar.01f] +// CHECK:STDOUT: %import_ref.ecd: %ReadChar.type.9f3 = import_ref Core//io, ReadChar, loaded [template = constants.%ReadChar.01f] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -70,7 +70,7 @@ fn Main() { // CHECK:STDOUT: %.loc16_26.2: %i32 = converted %read.char.loc16, %.loc16_26.1 // CHECK:STDOUT: %n: %i32 = bind_name n, %.loc16_26.2 // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ReadChar.ref.loc17: %ReadChar.type.9f3 = name_ref ReadChar, imports.%import_ref.12c [template = constants.%ReadChar.01f] +// CHECK:STDOUT: %ReadChar.ref.loc17: %ReadChar.type.9f3 = name_ref ReadChar, imports.%import_ref.ecd [template = constants.%ReadChar.01f] // CHECK:STDOUT: %read.char.loc17: init %i32 = call %ReadChar.ref.loc17() // CHECK:STDOUT: %.loc17_31.1: %i32 = value_of_initializer %read.char.loc17 // CHECK:STDOUT: %.loc17_31.2: %i32 = converted %read.char.loc17, %.loc17_31.1 diff --git a/toolchain/check/testdata/class/access_modifers.carbon b/toolchain/check/testdata/class/access_modifers.carbon index cb6b9ead3270..e021e25e5e71 100644 --- a/toolchain/check/testdata/class/access_modifers.carbon +++ b/toolchain/check/testdata/class/access_modifers.carbon @@ -153,33 +153,33 @@ class A { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Circle.elem: type = unbound_element_type %Circle, %i32 [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b33: = bound_method %int_5.64b, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.89d: = specific_function %Convert.bound.b33, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.ba9: = specific_function %Convert.bound.4e6, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] // CHECK:STDOUT: %SomeInternalFunction.type: type = fn_type @SomeInternalFunction [template] // CHECK:STDOUT: %SomeInternalFunction: %SomeInternalFunction.type = struct_value () [template] // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] -// CHECK:STDOUT: %struct_type.radius.4fc: type = struct_type {.radius: %i32} [template] -// CHECK:STDOUT: %complete_type.4c9: = complete_type_witness %struct_type.radius.4fc [template] +// CHECK:STDOUT: %struct_type.radius.251: type = struct_type {.radius: %i32} [template] +// CHECK:STDOUT: %complete_type.5a5: = complete_type_witness %struct_type.radius.251 [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %struct_type.radius.f47: type = struct_type {.radius: Core.IntLiteral} [template] -// CHECK:STDOUT: %Circle.val: %Circle = struct_value (%int_5.70b) [template] +// CHECK:STDOUT: %Circle.val: %Circle = struct_value (%int_5.0f6) [template] // CHECK:STDOUT: %Run.type: type = fn_type @Run [template] // CHECK:STDOUT: %Run: %Run.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -199,12 +199,12 @@ class A { // CHECK:STDOUT: class @Circle { // CHECK:STDOUT: %.loc5: %Circle.elem = field_decl radius, element0 [template] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound.b33] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.89d] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc6_46.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc6_46.2: %i32 = converted %int_5, %.loc6_46.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound.4e6] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.ba9] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc6_46.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc6_46.2: %i32 = converted %int_5, %.loc6_46.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %SOME_INTERNAL_CONSTANT: %i32 = bind_name SOME_INTERNAL_CONSTANT, %.loc6_46.2 // CHECK:STDOUT: %SomeInternalFunction.decl: %SomeInternalFunction.type = fn_decl @SomeInternalFunction [template = constants.%SomeInternalFunction] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -223,7 +223,7 @@ class A { // CHECK:STDOUT: %return.param: ref %Circle = out_param runtime_param0 // CHECK:STDOUT: %return: ref %Circle = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.radius.4fc [template = constants.%complete_type.4c9] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.radius.251 [template = constants.%complete_type.5a5] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Circle @@ -237,12 +237,12 @@ class A { // CHECK:STDOUT: fn @SomeInternalFunction() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc9_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc9_13.2: %i32 = converted %int_0, %.loc9_13.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc9_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc9_13.2: %i32 = converted %int_0, %.loc9_13.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc9_13.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -250,13 +250,13 @@ class A { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] // CHECK:STDOUT: %.loc13_24.1: %struct_type.radius.f47 = struct_literal (%int_5) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound.b33] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.89d] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc13_24.2: init %i32 = converted %int_5, %int.convert_checked [template = constants.%int_5.70b] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound.4e6] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.ba9] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc13_24.2: init %i32 = converted %int_5, %int.convert_checked [template = constants.%int_5.0f6] // CHECK:STDOUT: %.loc13_24.3: ref %i32 = class_element_access %return, element0 -// CHECK:STDOUT: %.loc13_24.4: init %i32 = initialize_from %.loc13_24.2 to %.loc13_24.3 [template = constants.%int_5.70b] +// CHECK:STDOUT: %.loc13_24.4: init %i32 = initialize_from %.loc13_24.2 to %.loc13_24.3 [template = constants.%int_5.0f6] // CHECK:STDOUT: %.loc13_24.5: init %Circle = class_init (%.loc13_24.4), %return [template = constants.%Circle.val] // CHECK:STDOUT: %.loc13_25: init %Circle = converted %.loc13_24.1, %.loc13_24.5 [template = constants.%Circle.val] // CHECK:STDOUT: return %.loc13_25 to %return @@ -293,14 +293,14 @@ class A { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x [template] // CHECK:STDOUT: %Run.type: type = fn_type @Run [template] // CHECK:STDOUT: %Run: %Run.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -319,7 +319,7 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -349,21 +349,21 @@ class A { // CHECK:STDOUT: %Compute.type: type = fn_type @Compute [template] // CHECK:STDOUT: %Compute: %Compute.type = struct_value () [template] // CHECK:STDOUT: %struct_type.radius: type = struct_type {.radius: %i32} [template] -// CHECK:STDOUT: %complete_type.4c9: = complete_type_witness %struct_type.radius [template] +// CHECK:STDOUT: %complete_type.5a5: = complete_type_witness %struct_type.radius [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -417,7 +417,7 @@ class A { // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.radius [template = constants.%complete_type.4c9] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.radius [template = constants.%complete_type.5a5] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Circle @@ -440,12 +440,12 @@ class A { // CHECK:STDOUT: fn @SomeInternalFunction() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_13.2: %i32 = converted %int_0, %.loc12_13.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_13.2: %i32 = converted %int_0, %.loc12_13.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc12_13.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -466,21 +466,21 @@ class A { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -498,12 +498,12 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc5_17.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc5_17.2: %i32 = converted %int_5, %.loc5_17.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc5_17.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc5_17.2: %i32 = converted %int_5, %.loc5_17.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %x: %i32 = bind_name x, %.loc5_17.2 // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: @@ -528,21 +528,21 @@ class A { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -561,20 +561,20 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %int_5.loc5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc5: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc5: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc5: = bound_method %int_5.loc5, %impl.elem0.loc5 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc5: = specific_function %Convert.bound.loc5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc5: init %i32 = call %Convert.specific_fn.loc5(%int_5.loc5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc5_27.1: %i32 = value_of_initializer %int.convert_checked.loc5 [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc5_27.2: %i32 = converted %int_5.loc5, %.loc5_27.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked.loc5: init %i32 = call %Convert.specific_fn.loc5(%int_5.loc5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc5_27.1: %i32 = value_of_initializer %int.convert_checked.loc5 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc5_27.2: %i32 = converted %int_5.loc5, %.loc5_27.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %x: %i32 = bind_name x, %.loc5_27.2 // CHECK:STDOUT: %int_5.loc6: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc6: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc6: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc6: = bound_method %int_5.loc6, %impl.elem0.loc6 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc6: = specific_function %Convert.bound.loc6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %Convert.specific_fn.loc6(%int_5.loc6) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc6_25.1: %i32 = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc6_25.2: %i32 = converted %int_5.loc6, %.loc6_25.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %Convert.specific_fn.loc6(%int_5.loc6) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc6_25.1: %i32 = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc6_25.2: %i32 = converted %int_5.loc6, %.loc6_25.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %y: %i32 = bind_name y, %.loc6_25.2 // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/adapter/adapt.carbon b/toolchain/check/testdata/class/adapter/adapt.carbon index 0a168a991cd7..8ec1dd401667 100644 --- a/toolchain/check/testdata/class/adapter/adapt.carbon +++ b/toolchain/check/testdata/class/adapter/adapt.carbon @@ -71,14 +71,14 @@ interface I { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %SomeClass.elem: type = unbound_element_type %SomeClass, %i32 [template] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b [template] // CHECK:STDOUT: %SomeClassAdapter: type = class_type @SomeClassAdapter [template] // CHECK:STDOUT: %StructAdapter: type = class_type @StructAdapter [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -100,7 +100,7 @@ interface I { // CHECK:STDOUT: class @SomeClass { // CHECK:STDOUT: %.loc5: %SomeClass.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc6: %SomeClass.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SomeClass @@ -112,7 +112,7 @@ interface I { // CHECK:STDOUT: class @SomeClassAdapter { // CHECK:STDOUT: %SomeClass.ref: type = name_ref SomeClass, file.%SomeClass.decl [template = constants.%SomeClass] // CHECK:STDOUT: adapt_decl %SomeClass.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SomeClassAdapter @@ -126,7 +126,7 @@ interface I { // CHECK:STDOUT: %i32.loc14_23: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b] // CHECK:STDOUT: adapt_decl %struct_type.a.b [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%StructAdapter @@ -137,8 +137,8 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Adapted: type = class_type @Adapted [template] -// CHECK:STDOUT: %F.type.f05: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.8ad: %F.type.f05 = struct_value () [template] +// CHECK:STDOUT: %F.type.967: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.9eb: %F.type.967 = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %AdaptNotExtend: type = class_type @AdaptNotExtend [template] @@ -174,7 +174,7 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Adapted { -// CHECK:STDOUT: %F.decl: %F.type.f05 = fn_decl @F.1 [template = constants.%F.8ad] {} {} +// CHECK:STDOUT: %F.decl: %F.type.967 = fn_decl @F.1 [template = constants.%F.9eb] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -215,7 +215,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index 8c8275d732ab..682c26e84209 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -131,15 +131,15 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.6d4: type = tuple_type (%AdaptCopyable, %u32) [template] +// CHECK:STDOUT: %tuple.type.2a3: type = tuple_type (%AdaptCopyable, %u32) [template] // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [template] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .UInt = %import_ref.b2c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .UInt = %import_ref.bcd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -168,27 +168,27 @@ 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 [template = constants.%InTuple] { -// CHECK:STDOUT: %c.patt: %tuple.type.6d4 = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %tuple.type.6d4 = value_param_pattern %c.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %tuple.type.6d4 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.6d4 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %c.patt: %tuple.type.2a3 = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %tuple.type.2a3 = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.2a3 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.2a3 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptCopyable.ref.loc15_41: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [template = constants.%AdaptCopyable] // CHECK:STDOUT: %int_32.loc15_56: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %u32.loc15_56: type = class_type @UInt, @UInt(constants.%int_32) [template = constants.%u32] // CHECK:STDOUT: %.loc15_59.1: %tuple.type.24b = tuple_literal (%AdaptCopyable.ref.loc15_41, %u32.loc15_56) -// CHECK:STDOUT: %.loc15_59.2: type = converted %.loc15_59.1, constants.%tuple.type.6d4 [template = constants.%tuple.type.6d4] -// CHECK:STDOUT: %c.param: %tuple.type.6d4 = value_param runtime_param0 -// CHECK:STDOUT: %.loc15_34.1: type = splice_block %.loc15_34.3 [template = constants.%tuple.type.6d4] { +// CHECK:STDOUT: %.loc15_59.2: type = converted %.loc15_59.1, constants.%tuple.type.2a3 [template = constants.%tuple.type.2a3] +// CHECK:STDOUT: %c.param: %tuple.type.2a3 = value_param runtime_param0 +// CHECK:STDOUT: %.loc15_34.1: type = splice_block %.loc15_34.3 [template = constants.%tuple.type.2a3] { // CHECK:STDOUT: %AdaptCopyable.ref.loc15_16: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [template = constants.%AdaptCopyable] // CHECK:STDOUT: %int_32.loc15_31: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %u32.loc15_31: type = class_type @UInt, @UInt(constants.%int_32) [template = constants.%u32] // CHECK:STDOUT: %.loc15_34.2: %tuple.type.24b = tuple_literal (%AdaptCopyable.ref.loc15_16, %u32.loc15_31) -// CHECK:STDOUT: %.loc15_34.3: type = converted %.loc15_34.2, constants.%tuple.type.6d4 [template = constants.%tuple.type.6d4] +// CHECK:STDOUT: %.loc15_34.3: type = converted %.loc15_34.2, constants.%tuple.type.2a3 [template = constants.%tuple.type.2a3] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.6d4 = bind_name c, %c.param -// CHECK:STDOUT: %return.param: ref %tuple.type.6d4 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %tuple.type.6d4 = return_slot %return.param +// CHECK:STDOUT: %c: %tuple.type.2a3 = bind_name c, %c.param +// CHECK:STDOUT: %return.param: ref %tuple.type.2a3 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %tuple.type.2a3 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -214,21 +214,21 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return %.loc12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @InTuple(%c.param_patt: %tuple.type.6d4) -> %return.param_patt: %tuple.type.6d4 { +// CHECK:STDOUT: fn @InTuple(%c.param_patt: %tuple.type.2a3) -> %return.param_patt: %tuple.type.2a3 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %d.var: ref %tuple.type.6d4 = var d -// CHECK:STDOUT: %d: ref %tuple.type.6d4 = bind_name d, %d.var -// CHECK:STDOUT: %c.ref: %tuple.type.6d4 = name_ref c, %c +// CHECK:STDOUT: %d.var: ref %tuple.type.2a3 = var d +// CHECK:STDOUT: %d: ref %tuple.type.2a3 = bind_name d, %d.var +// CHECK:STDOUT: %c.ref: %tuple.type.2a3 = name_ref c, %c // CHECK:STDOUT: %tuple.elem0.loc16_33.1: %AdaptCopyable = tuple_access %c.ref, element0 // CHECK:STDOUT: %tuple.elem0.loc16_33.2: ref %AdaptCopyable = tuple_access %d.var, element0 // CHECK:STDOUT: %.loc16_33.1: init %AdaptCopyable = initialize_from %tuple.elem0.loc16_33.1 to %tuple.elem0.loc16_33.2 // CHECK:STDOUT: %tuple.elem1.loc16_33.1: %u32 = tuple_access %c.ref, element1 // CHECK:STDOUT: %tuple.elem1.loc16_33.2: ref %u32 = tuple_access %d.var, element1 // CHECK:STDOUT: %.loc16_33.2: init %u32 = initialize_from %tuple.elem1.loc16_33.1 to %tuple.elem1.loc16_33.2 -// CHECK:STDOUT: %.loc16_33.3: init %tuple.type.6d4 = tuple_init (%.loc16_33.1, %.loc16_33.2) to %d.var -// CHECK:STDOUT: %.loc16_34: init %tuple.type.6d4 = converted %c.ref, %.loc16_33.3 +// CHECK:STDOUT: %.loc16_33.3: init %tuple.type.2a3 = tuple_init (%.loc16_33.1, %.loc16_33.2) to %d.var +// CHECK:STDOUT: %.loc16_34: init %tuple.type.2a3 = converted %c.ref, %.loc16_33.3 // CHECK:STDOUT: assign %d.var, %.loc16_34 -// CHECK:STDOUT: %d.ref: ref %tuple.type.6d4 = name_ref d, %d +// CHECK:STDOUT: %d.ref: ref %tuple.type.2a3 = name_ref d, %d // CHECK:STDOUT: %tuple.elem0.loc17_10.1: ref %AdaptCopyable = tuple_access %d.ref, element0 // CHECK:STDOUT: %.loc17_10.1: %AdaptCopyable = bind_value %tuple.elem0.loc17_10.1 // CHECK:STDOUT: %tuple.elem0.loc17_10.2: ref %AdaptCopyable = tuple_access %return, element0 @@ -237,8 +237,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc17_10.3: %u32 = bind_value %tuple.elem1.loc17_10.1 // CHECK:STDOUT: %tuple.elem1.loc17_10.2: ref %u32 = tuple_access %return, element1 // CHECK:STDOUT: %.loc17_10.4: init %u32 = initialize_from %.loc17_10.3 to %tuple.elem1.loc17_10.2 -// CHECK:STDOUT: %.loc17_10.5: init %tuple.type.6d4 = tuple_init (%.loc17_10.2, %.loc17_10.4) to %return -// CHECK:STDOUT: %.loc17_11: init %tuple.type.6d4 = converted %d.ref, %.loc17_10.5 +// CHECK:STDOUT: %.loc17_10.5: init %tuple.type.2a3 = tuple_init (%.loc17_10.2, %.loc17_10.4) to %return +// CHECK:STDOUT: %.loc17_11: init %tuple.type.2a3 = converted %d.ref, %.loc17_10.5 // CHECK:STDOUT: return %.loc17_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -249,20 +249,20 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %complete_type.51c: = complete_type_witness %tuple.type.471 [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %complete_type.65d: = complete_type_witness %tuple.type.d07 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [template] -// CHECK:STDOUT: %tuple.type.6a8: type = tuple_type (%AdaptTuple, %u32) [template] +// CHECK:STDOUT: %tuple.type.f69: type = tuple_type (%AdaptTuple, %u32) [template] // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [template] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .UInt = %import_ref.b2c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .UInt = %import_ref.bcd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -291,27 +291,27 @@ 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 [template = constants.%InTuple] { -// CHECK:STDOUT: %c.patt: %tuple.type.6a8 = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %tuple.type.6a8 = value_param_pattern %c.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %tuple.type.6a8 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.6a8 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %c.patt: %tuple.type.f69 = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %tuple.type.f69 = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.f69 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.f69 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptTuple.ref.loc13_38: type = name_ref AdaptTuple, file.%AdaptTuple.decl [template = constants.%AdaptTuple] // CHECK:STDOUT: %int_32.loc13_50: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %u32.loc13_50: type = class_type @UInt, @UInt(constants.%int_32) [template = constants.%u32] // CHECK:STDOUT: %.loc13_53.1: %tuple.type.24b = tuple_literal (%AdaptTuple.ref.loc13_38, %u32.loc13_50) -// CHECK:STDOUT: %.loc13_53.2: type = converted %.loc13_53.1, constants.%tuple.type.6a8 [template = constants.%tuple.type.6a8] -// CHECK:STDOUT: %c.param: %tuple.type.6a8 = value_param runtime_param0 -// CHECK:STDOUT: %.loc13_31.1: type = splice_block %.loc13_31.3 [template = constants.%tuple.type.6a8] { +// CHECK:STDOUT: %.loc13_53.2: type = converted %.loc13_53.1, constants.%tuple.type.f69 [template = constants.%tuple.type.f69] +// CHECK:STDOUT: %c.param: %tuple.type.f69 = value_param runtime_param0 +// CHECK:STDOUT: %.loc13_31.1: type = splice_block %.loc13_31.3 [template = constants.%tuple.type.f69] { // CHECK:STDOUT: %AdaptTuple.ref.loc13_16: type = name_ref AdaptTuple, file.%AdaptTuple.decl [template = constants.%AdaptTuple] // CHECK:STDOUT: %int_32.loc13_28: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %u32.loc13_28: type = class_type @UInt, @UInt(constants.%int_32) [template = constants.%u32] // CHECK:STDOUT: %.loc13_31.2: %tuple.type.24b = tuple_literal (%AdaptTuple.ref.loc13_16, %u32.loc13_28) -// CHECK:STDOUT: %.loc13_31.3: type = converted %.loc13_31.2, constants.%tuple.type.6a8 [template = constants.%tuple.type.6a8] +// CHECK:STDOUT: %.loc13_31.3: type = converted %.loc13_31.2, constants.%tuple.type.f69 [template = constants.%tuple.type.f69] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.6a8 = bind_name c, %c.param -// CHECK:STDOUT: %return.param: ref %tuple.type.6a8 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %tuple.type.6a8 = return_slot %return.param +// CHECK:STDOUT: %c: %tuple.type.f69 = bind_name c, %c.param +// CHECK:STDOUT: %return.param: ref %tuple.type.f69 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %tuple.type.f69 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -321,9 +321,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %int_32.loc5_15: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc5_15: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc5_18: %tuple.type.24b = tuple_literal (%i32.loc5_10, %i32.loc5_15) -// CHECK:STDOUT: %.loc5_19: type = converted %.loc5_18, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc5_19: type = converted %.loc5_18, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: adapt_decl %.loc5_19 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.471 [template = constants.%complete_type.51c] +// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.d07 [template = constants.%complete_type.65d] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptTuple @@ -335,81 +335,81 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %d.var: ref %AdaptTuple = var d // CHECK:STDOUT: %d: ref %AdaptTuple = bind_name d, %d.var // CHECK:STDOUT: %c.ref: %AdaptTuple = name_ref c, %c -// CHECK:STDOUT: %.loc9_24.1: %tuple.type.471 = as_compatible %c.ref +// CHECK:STDOUT: %.loc9_24.1: %tuple.type.d07 = as_compatible %c.ref // CHECK:STDOUT: %tuple.elem0.loc9_24.1: %i32 = tuple_access %.loc9_24.1, element0 -// CHECK:STDOUT: %.loc9_24.2: ref %tuple.type.471 = as_compatible %d.var +// CHECK:STDOUT: %.loc9_24.2: ref %tuple.type.d07 = as_compatible %d.var // CHECK:STDOUT: %tuple.elem0.loc9_24.2: ref %i32 = tuple_access %.loc9_24.2, element0 // CHECK:STDOUT: %.loc9_24.3: init %i32 = initialize_from %tuple.elem0.loc9_24.1 to %tuple.elem0.loc9_24.2 // CHECK:STDOUT: %tuple.elem1.loc9_24.1: %i32 = tuple_access %.loc9_24.1, element1 // CHECK:STDOUT: %tuple.elem1.loc9_24.2: ref %i32 = tuple_access %.loc9_24.2, element1 // CHECK:STDOUT: %.loc9_24.4: init %i32 = initialize_from %tuple.elem1.loc9_24.1 to %tuple.elem1.loc9_24.2 -// CHECK:STDOUT: %.loc9_24.5: init %tuple.type.471 = tuple_init (%.loc9_24.3, %.loc9_24.4) to %.loc9_24.2 +// CHECK:STDOUT: %.loc9_24.5: init %tuple.type.d07 = tuple_init (%.loc9_24.3, %.loc9_24.4) to %.loc9_24.2 // CHECK:STDOUT: %.loc9_24.6: init %AdaptTuple = as_compatible %.loc9_24.5 // CHECK:STDOUT: %.loc9_24.7: init %AdaptTuple = converted %c.ref, %.loc9_24.6 // CHECK:STDOUT: assign %d.var, %.loc9_24.7 // CHECK:STDOUT: %d.ref: ref %AdaptTuple = name_ref d, %d -// CHECK:STDOUT: %.loc10_11.1: ref %tuple.type.471 = as_compatible %d.ref +// CHECK:STDOUT: %.loc10_11.1: ref %tuple.type.d07 = 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 = bind_value %tuple.elem0.loc10_11.1 -// CHECK:STDOUT: %.loc10_11.3: ref %tuple.type.471 = as_compatible %return +// CHECK:STDOUT: %.loc10_11.3: ref %tuple.type.d07 = as_compatible %return // CHECK:STDOUT: %tuple.elem0.loc10_11.2: ref %i32 = tuple_access %.loc10_11.3, element0 // CHECK:STDOUT: %.loc10_11.4: init %i32 = initialize_from %.loc10_11.2 to %tuple.elem0.loc10_11.2 // CHECK:STDOUT: %tuple.elem1.loc10_11.1: ref %i32 = tuple_access %.loc10_11.1, element1 // CHECK:STDOUT: %.loc10_11.5: %i32 = bind_value %tuple.elem1.loc10_11.1 // CHECK:STDOUT: %tuple.elem1.loc10_11.2: ref %i32 = tuple_access %.loc10_11.3, element1 // CHECK:STDOUT: %.loc10_11.6: init %i32 = initialize_from %.loc10_11.5 to %tuple.elem1.loc10_11.2 -// CHECK:STDOUT: %.loc10_11.7: init %tuple.type.471 = tuple_init (%.loc10_11.4, %.loc10_11.6) to %.loc10_11.3 +// CHECK:STDOUT: %.loc10_11.7: init %tuple.type.d07 = tuple_init (%.loc10_11.4, %.loc10_11.6) to %.loc10_11.3 // 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: return %.loc10_11.9 to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @InTuple(%c.param_patt: %tuple.type.6a8) -> %return.param_patt: %tuple.type.6a8 { +// CHECK:STDOUT: fn @InTuple(%c.param_patt: %tuple.type.f69) -> %return.param_patt: %tuple.type.f69 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %d.var: ref %tuple.type.6a8 = var d -// CHECK:STDOUT: %d: ref %tuple.type.6a8 = bind_name d, %d.var -// CHECK:STDOUT: %c.ref: %tuple.type.6a8 = name_ref c, %c +// CHECK:STDOUT: %d.var: ref %tuple.type.f69 = var d +// CHECK:STDOUT: %d: ref %tuple.type.f69 = bind_name d, %d.var +// CHECK:STDOUT: %c.ref: %tuple.type.f69 = name_ref c, %c // CHECK:STDOUT: %tuple.elem0.loc14_30.1: %AdaptTuple = tuple_access %c.ref, element0 -// CHECK:STDOUT: %.loc14_30.1: %tuple.type.471 = as_compatible %tuple.elem0.loc14_30.1 +// CHECK:STDOUT: %.loc14_30.1: %tuple.type.d07 = as_compatible %tuple.elem0.loc14_30.1 // CHECK:STDOUT: %tuple.elem0.loc14_30.2: %i32 = tuple_access %.loc14_30.1, element0 // CHECK:STDOUT: %tuple.elem0.loc14_30.3: ref %AdaptTuple = tuple_access %d.var, element0 -// CHECK:STDOUT: %.loc14_30.2: ref %tuple.type.471 = as_compatible %tuple.elem0.loc14_30.3 +// CHECK:STDOUT: %.loc14_30.2: ref %tuple.type.d07 = 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 = initialize_from %tuple.elem0.loc14_30.2 to %tuple.elem0.loc14_30.4 // CHECK:STDOUT: %tuple.elem1.loc14_30.1: %i32 = tuple_access %.loc14_30.1, element1 // CHECK:STDOUT: %tuple.elem1.loc14_30.2: ref %i32 = tuple_access %.loc14_30.2, element1 // CHECK:STDOUT: %.loc14_30.4: init %i32 = initialize_from %tuple.elem1.loc14_30.1 to %tuple.elem1.loc14_30.2 -// CHECK:STDOUT: %.loc14_30.5: init %tuple.type.471 = tuple_init (%.loc14_30.3, %.loc14_30.4) to %.loc14_30.2 +// CHECK:STDOUT: %.loc14_30.5: init %tuple.type.d07 = tuple_init (%.loc14_30.3, %.loc14_30.4) to %.loc14_30.2 // 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: %tuple.elem1.loc14_30.4: ref %u32 = tuple_access %d.var, element1 // CHECK:STDOUT: %.loc14_30.8: init %u32 = initialize_from %tuple.elem1.loc14_30.3 to %tuple.elem1.loc14_30.4 -// CHECK:STDOUT: %.loc14_30.9: init %tuple.type.6a8 = tuple_init (%.loc14_30.7, %.loc14_30.8) to %d.var -// CHECK:STDOUT: %.loc14_31: init %tuple.type.6a8 = converted %c.ref, %.loc14_30.9 +// CHECK:STDOUT: %.loc14_30.9: init %tuple.type.f69 = tuple_init (%.loc14_30.7, %.loc14_30.8) to %d.var +// CHECK:STDOUT: %.loc14_31: init %tuple.type.f69 = converted %c.ref, %.loc14_30.9 // CHECK:STDOUT: assign %d.var, %.loc14_31 -// CHECK:STDOUT: %d.ref: ref %tuple.type.6a8 = name_ref d, %d +// CHECK:STDOUT: %d.ref: ref %tuple.type.f69 = 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.471 = as_compatible %tuple.elem0.loc15_10.1 +// CHECK:STDOUT: %.loc15_10.1: ref %tuple.type.d07 = 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 = bind_value %tuple.elem0.loc15_10.2 // CHECK:STDOUT: %tuple.elem0.loc15_10.3: ref %AdaptTuple = tuple_access %return, element0 -// CHECK:STDOUT: %.loc15_10.3: ref %tuple.type.471 = as_compatible %tuple.elem0.loc15_10.3 +// CHECK:STDOUT: %.loc15_10.3: ref %tuple.type.d07 = 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 = initialize_from %.loc15_10.2 to %tuple.elem0.loc15_10.4 // CHECK:STDOUT: %tuple.elem1.loc15_10.1: ref %i32 = tuple_access %.loc15_10.1, element1 // CHECK:STDOUT: %.loc15_10.5: %i32 = bind_value %tuple.elem1.loc15_10.1 // CHECK:STDOUT: %tuple.elem1.loc15_10.2: ref %i32 = tuple_access %.loc15_10.3, element1 // CHECK:STDOUT: %.loc15_10.6: init %i32 = initialize_from %.loc15_10.5 to %tuple.elem1.loc15_10.2 -// CHECK:STDOUT: %.loc15_10.7: init %tuple.type.471 = tuple_init (%.loc15_10.4, %.loc15_10.6) to %.loc15_10.3 +// CHECK:STDOUT: %.loc15_10.7: init %tuple.type.d07 = tuple_init (%.loc15_10.4, %.loc15_10.6) to %.loc15_10.3 // 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 = bind_value %tuple.elem1.loc15_10.3 // CHECK:STDOUT: %tuple.elem1.loc15_10.4: ref %u32 = tuple_access %return, element1 // CHECK:STDOUT: %.loc15_10.11: init %u32 = initialize_from %.loc15_10.10 to %tuple.elem1.loc15_10.4 -// CHECK:STDOUT: %.loc15_10.12: init %tuple.type.6a8 = tuple_init (%.loc15_10.9, %.loc15_10.11) to %return -// CHECK:STDOUT: %.loc15_11: init %tuple.type.6a8 = converted %d.ref, %.loc15_10.12 +// CHECK:STDOUT: %.loc15_10.12: init %tuple.type.f69 = tuple_init (%.loc15_10.9, %.loc15_10.11) to %return +// CHECK:STDOUT: %.loc15_11: init %tuple.type.f69 = converted %d.ref, %.loc15_10.12 // CHECK:STDOUT: return %.loc15_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -495,15 +495,15 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [template] -// CHECK:STDOUT: %tuple.type.27f: type = tuple_type (%i32, %Noncopyable, %i32) [template] -// CHECK:STDOUT: %complete_type.43e: = complete_type_witness %tuple.type.27f [template] +// CHECK:STDOUT: %tuple.type.c9a: type = tuple_type (%i32, %Noncopyable, %i32) [template] +// CHECK:STDOUT: %complete_type.201: = complete_type_witness %tuple.type.c9a [template] // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -549,9 +549,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %int_32.loc9_28: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc9_28: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc9_31: %tuple.type.ff9 = tuple_literal (%i32.loc9_10, %Noncopyable.ref, %i32.loc9_28) -// CHECK:STDOUT: %.loc9_32: type = converted %.loc9_31, constants.%tuple.type.27f [template = constants.%tuple.type.27f] +// CHECK:STDOUT: %.loc9_32: type = converted %.loc9_31, constants.%tuple.type.c9a [template = constants.%tuple.type.c9a] // CHECK:STDOUT: adapt_decl %.loc9_32 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.27f [template = constants.%complete_type.43e] +// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.c9a [template = constants.%complete_type.201] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptNoncopyableIndirect @@ -563,18 +563,18 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %b.var: ref %AdaptNoncopyableIndirect = var b // CHECK:STDOUT: %b: ref %AdaptNoncopyableIndirect = bind_name b, %b.var // CHECK:STDOUT: %a.ref: %AdaptNoncopyableIndirect = name_ref a, %a -// CHECK:STDOUT: %.loc20_38.1: %tuple.type.27f = as_compatible %a.ref +// CHECK:STDOUT: %.loc20_38.1: %tuple.type.c9a = as_compatible %a.ref // CHECK:STDOUT: %tuple.elem0.loc20_38.1: %i32 = tuple_access %.loc20_38.1, element0 -// CHECK:STDOUT: %.loc20_38.2: ref %tuple.type.27f = as_compatible %b.var +// CHECK:STDOUT: %.loc20_38.2: ref %tuple.type.c9a = as_compatible %b.var // CHECK:STDOUT: %tuple.elem0.loc20_38.2: ref %i32 = tuple_access %.loc20_38.2, element0 // CHECK:STDOUT: %.loc20_38.3: init %i32 = initialize_from %tuple.elem0.loc20_38.1 to %tuple.elem0.loc20_38.2 // CHECK:STDOUT: %tuple.elem1.loc20: %Noncopyable = tuple_access %.loc20_38.1, element1 // CHECK:STDOUT: assign %b.var, // CHECK:STDOUT: %b.ref: ref %AdaptNoncopyableIndirect = name_ref b, %b -// CHECK:STDOUT: %.loc27_11.1: ref %tuple.type.27f = as_compatible %b.ref +// CHECK:STDOUT: %.loc27_11.1: ref %tuple.type.c9a = as_compatible %b.ref // CHECK:STDOUT: %tuple.elem0.loc27_11.1: ref %i32 = tuple_access %.loc27_11.1, element0 // CHECK:STDOUT: %.loc27_11.2: %i32 = bind_value %tuple.elem0.loc27_11.1 -// CHECK:STDOUT: %.loc27_11.3: ref %tuple.type.27f = as_compatible %return +// CHECK:STDOUT: %.loc27_11.3: ref %tuple.type.c9a = as_compatible %return // CHECK:STDOUT: %tuple.elem0.loc27_11.2: ref %i32 = tuple_access %.loc27_11.3, element0 // CHECK:STDOUT: %.loc27_11.4: init %i32 = initialize_from %.loc27_11.2 to %tuple.elem0.loc27_11.2 // CHECK:STDOUT: %tuple.elem1.loc27: ref %Noncopyable = tuple_access %.loc27_11.1, element1 @@ -589,20 +589,20 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %struct_type.e.f: type = struct_type {.e: %i32, .f: %i32} [template] -// CHECK:STDOUT: %complete_type.692: = complete_type_witness %struct_type.e.f [template] +// CHECK:STDOUT: %complete_type.511: = complete_type_witness %struct_type.e.f [template] // CHECK:STDOUT: %I.type: type = fn_type @I [template] // CHECK:STDOUT: %I: %I.type = struct_value () [template] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.ff2: type = tuple_type (%AdaptStruct, %u32) [template] +// CHECK:STDOUT: %tuple.type.80b: type = tuple_type (%AdaptStruct, %u32) [template] // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [template] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .UInt = %import_ref.b2c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .UInt = %import_ref.bcd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -631,27 +631,27 @@ 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 [template = constants.%InTuple] { -// CHECK:STDOUT: %c.patt: %tuple.type.ff2 = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %tuple.type.ff2 = value_param_pattern %c.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %tuple.type.ff2 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.ff2 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %c.patt: %tuple.type.80b = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %tuple.type.80b = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.80b = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.80b = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptStruct.ref.loc13_39: type = name_ref AdaptStruct, file.%AdaptStruct.decl [template = constants.%AdaptStruct] // CHECK:STDOUT: %int_32.loc13_52: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %u32.loc13_52: type = class_type @UInt, @UInt(constants.%int_32) [template = constants.%u32] // CHECK:STDOUT: %.loc13_55.1: %tuple.type.24b = tuple_literal (%AdaptStruct.ref.loc13_39, %u32.loc13_52) -// CHECK:STDOUT: %.loc13_55.2: type = converted %.loc13_55.1, constants.%tuple.type.ff2 [template = constants.%tuple.type.ff2] -// CHECK:STDOUT: %c.param: %tuple.type.ff2 = value_param runtime_param0 -// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.3 [template = constants.%tuple.type.ff2] { +// CHECK:STDOUT: %.loc13_55.2: type = converted %.loc13_55.1, constants.%tuple.type.80b [template = constants.%tuple.type.80b] +// CHECK:STDOUT: %c.param: %tuple.type.80b = value_param runtime_param0 +// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.3 [template = constants.%tuple.type.80b] { // CHECK:STDOUT: %AdaptStruct.ref.loc13_16: type = name_ref AdaptStruct, file.%AdaptStruct.decl [template = constants.%AdaptStruct] // CHECK:STDOUT: %int_32.loc13_29: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %u32.loc13_29: type = class_type @UInt, @UInt(constants.%int_32) [template = constants.%u32] // CHECK:STDOUT: %.loc13_32.2: %tuple.type.24b = tuple_literal (%AdaptStruct.ref.loc13_16, %u32.loc13_29) -// CHECK:STDOUT: %.loc13_32.3: type = converted %.loc13_32.2, constants.%tuple.type.ff2 [template = constants.%tuple.type.ff2] +// CHECK:STDOUT: %.loc13_32.3: type = converted %.loc13_32.2, constants.%tuple.type.80b [template = constants.%tuple.type.80b] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.ff2 = bind_name c, %c.param -// CHECK:STDOUT: %return.param: ref %tuple.type.ff2 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %tuple.type.ff2 = return_slot %return.param +// CHECK:STDOUT: %c: %tuple.type.80b = bind_name c, %c.param +// CHECK:STDOUT: %return.param: ref %tuple.type.80b = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %tuple.type.80b = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -662,7 +662,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %i32.loc5_23: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.e.f: type = struct_type {.e: %i32, .f: %i32} [template = constants.%struct_type.e.f] // CHECK:STDOUT: adapt_decl %struct_type.e.f [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.e.f [template = constants.%complete_type.692] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.e.f [template = constants.%complete_type.511] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptStruct @@ -703,11 +703,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return %.loc10_11.13 to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @InTuple(%c.param_patt: %tuple.type.ff2) -> %return.param_patt: %tuple.type.ff2 { +// CHECK:STDOUT: fn @InTuple(%c.param_patt: %tuple.type.80b) -> %return.param_patt: %tuple.type.80b { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %d.var: ref %tuple.type.ff2 = var d -// CHECK:STDOUT: %d: ref %tuple.type.ff2 = bind_name d, %d.var -// CHECK:STDOUT: %c.ref: %tuple.type.ff2 = name_ref c, %c +// CHECK:STDOUT: %d.var: ref %tuple.type.80b = var d +// CHECK:STDOUT: %d: ref %tuple.type.80b = bind_name d, %d.var +// CHECK:STDOUT: %c.ref: %tuple.type.80b = 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 @@ -724,10 +724,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %tuple.elem1.loc14_31.1: %u32 = tuple_access %c.ref, element1 // CHECK:STDOUT: %tuple.elem1.loc14_31.2: ref %u32 = tuple_access %d.var, element1 // CHECK:STDOUT: %.loc14_31.12: init %u32 = initialize_from %tuple.elem1.loc14_31.1 to %tuple.elem1.loc14_31.2 -// CHECK:STDOUT: %.loc14_31.13: init %tuple.type.ff2 = tuple_init (%.loc14_31.11, %.loc14_31.12) to %d.var -// CHECK:STDOUT: %.loc14_32: init %tuple.type.ff2 = converted %c.ref, %.loc14_31.13 +// CHECK:STDOUT: %.loc14_31.13: init %tuple.type.80b = tuple_init (%.loc14_31.11, %.loc14_31.12) to %d.var +// CHECK:STDOUT: %.loc14_32: init %tuple.type.80b = converted %c.ref, %.loc14_31.13 // CHECK:STDOUT: assign %d.var, %.loc14_32 -// CHECK:STDOUT: %d.ref: ref %tuple.type.ff2 = name_ref d, %d +// CHECK:STDOUT: %d.ref: ref %tuple.type.80b = 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 @@ -747,8 +747,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_10.14: %u32 = bind_value %tuple.elem1.loc15_10.1 // CHECK:STDOUT: %tuple.elem1.loc15_10.2: ref %u32 = tuple_access %return, element1 // CHECK:STDOUT: %.loc15_10.15: init %u32 = initialize_from %.loc15_10.14 to %tuple.elem1.loc15_10.2 -// CHECK:STDOUT: %.loc15_10.16: init %tuple.type.ff2 = tuple_init (%.loc15_10.13, %.loc15_10.15) to %return -// CHECK:STDOUT: %.loc15_11: init %tuple.type.ff2 = converted %d.ref, %.loc15_10.16 +// CHECK:STDOUT: %.loc15_10.16: init %tuple.type.80b = tuple_init (%.loc15_10.13, %.loc15_10.15) to %return +// CHECK:STDOUT: %.loc15_11: init %tuple.type.80b = converted %d.ref, %.loc15_10.16 // CHECK:STDOUT: return %.loc15_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/adapter/extend_adapt.carbon b/toolchain/check/testdata/class/adapter/extend_adapt.carbon index bf7883bedb9d..374a7c37251e 100644 --- a/toolchain/check/testdata/class/adapter/extend_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/extend_adapt.carbon @@ -151,7 +151,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %AdapterMethod.type: type = fn_type @AdapterMethod [template] // CHECK:STDOUT: %AdapterMethod: %AdapterMethod.type = struct_value () [template] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b [template] // CHECK:STDOUT: %TestStaticMemberFunction.type: type = fn_type @TestStaticMemberFunction [template] // CHECK:STDOUT: %TestStaticMemberFunction: %TestStaticMemberFunction.type = struct_value () [template] // CHECK:STDOUT: %TestAdapterMethod.type: type = fn_type @TestAdapterMethod [template] @@ -160,7 +160,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -199,7 +199,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: class @SomeClassAdapter { // CHECK:STDOUT: %SomeClass.ref: type = name_ref SomeClass, file.%SomeClass.decl [template = constants.%SomeClass] // CHECK:STDOUT: adapt_decl %SomeClass.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SomeClassAdapter @@ -219,7 +219,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [template = constants.%SomeClassAdapter] // CHECK:STDOUT: %self: %SomeClassAdapter = bind_name self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SomeClass @@ -255,9 +255,9 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %SomeClass: type = class_type @SomeClass [template] -// CHECK:STDOUT: %F.type.58a: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.633: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.7c7: %F.type.58a = struct_value () [template] +// CHECK:STDOUT: %F.e19: %F.type.633 = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %SomeClassAdapter: type = class_type @SomeClassAdapter [template] @@ -267,7 +267,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -294,7 +294,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SomeClass { -// CHECK:STDOUT: %F.decl: %F.type.58a = fn_decl @F.1 [template = constants.%F.7c7] { +// CHECK:STDOUT: %F.decl: %F.type.633 = fn_decl @F.1 [template = constants.%F.e19] { // CHECK:STDOUT: %self.patt: %SomeClass = binding_pattern self // CHECK:STDOUT: %self.param_patt: %SomeClass = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -326,7 +326,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: fn @F.2(%a.param_patt: %SomeClassAdapter) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %SomeClassAdapter = name_ref a, %a -// CHECK:STDOUT: %F.ref: %F.type.58a = name_ref F, @SomeClass.%F.decl [template = constants.%F.7c7] +// CHECK:STDOUT: %F.ref: %F.type.633 = name_ref F, @SomeClass.%F.decl [template = constants.%F.e19] // CHECK:STDOUT: %F.bound: = bound_method %a.ref, %F.ref // CHECK:STDOUT: %.loc23: %SomeClass = converted %a.ref, [template = ] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.bound() @@ -341,7 +341,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %SomeClass.elem: type = unbound_element_type %SomeClass, %i32 [template] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b [template] // CHECK:STDOUT: %SomeClassAdapter: type = class_type @SomeClassAdapter [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] @@ -349,8 +349,8 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -385,7 +385,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: class @SomeClass { // CHECK:STDOUT: %.loc5: %SomeClass.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc6: %SomeClass.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SomeClass @@ -397,7 +397,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: class @SomeClassAdapter { // CHECK:STDOUT: %SomeClass.ref: type = name_ref SomeClass, file.%SomeClass.decl [template = constants.%SomeClass] // CHECK:STDOUT: adapt_decl %SomeClass.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SomeClassAdapter @@ -421,14 +421,14 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -465,7 +465,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %i32.loc5_30: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b] // CHECK:STDOUT: adapt_decl %struct_type.a.b [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%StructAdapter @@ -487,8 +487,8 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %complete_type.51c: = complete_type_witness %tuple.type.471 [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %complete_type.65d: = complete_type_witness %tuple.type.d07 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] @@ -496,7 +496,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -532,9 +532,9 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %int_32.loc5_22: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc5_22: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc5_25: %tuple.type.24b = tuple_literal (%i32.loc5_17, %i32.loc5_22) -// CHECK:STDOUT: %.loc5_26: type = converted %.loc5_25, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc5_26: type = converted %.loc5_25, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: adapt_decl %.loc5_26 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.471 [template = constants.%complete_type.51c] +// CHECK:STDOUT: %complete_type: = complete_type_witness %tuple.type.d07 [template = constants.%complete_type.65d] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%TupleAdapter @@ -567,12 +567,12 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IntLiteral = %import_ref.8ee -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .IntLiteral = %import_ref.72f +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.8ee: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] +// CHECK:STDOUT: %import_ref.72f: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -592,7 +592,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %N.param: Core.IntLiteral = value_param runtime_param0 // CHECK:STDOUT: %.loc4_31.1: type = splice_block %.loc4_31.3 [template = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc4_31.2: type = value_of_initializer %int_literal.make_type [template = Core.IntLiteral] // CHECK:STDOUT: %.loc4_31.3: type = converted %int_literal.make_type, %.loc4_31.2 [template = Core.IntLiteral] diff --git a/toolchain/check/testdata/class/adapter/fail_adapt_bad_decl.carbon b/toolchain/check/testdata/class/adapter/fail_adapt_bad_decl.carbon index 767ea2b9b58d..77df056b6063 100644 --- a/toolchain/check/testdata/class/adapter/fail_adapt_bad_decl.carbon +++ b/toolchain/check/testdata/class/adapter/fail_adapt_bad_decl.carbon @@ -113,7 +113,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -166,7 +166,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -266,10 +266,10 @@ class C { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %I.type.733: type = facet_type <@I.1> [template] -// CHECK:STDOUT: %Self.fb7: %I.type.733 = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type.733 = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %I.type.726: type = facet_type <@I.2> [template] -// CHECK:STDOUT: %Self.532: %I.type.726 = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %I.type.e30: type = facet_type <@I.2> [template] +// CHECK:STDOUT: %Self.6ef: %I.type.e30 = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -293,7 +293,7 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I.1 { -// CHECK:STDOUT: %Self: %I.type.733 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type.733 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: %.loc15: %empty_struct_type = struct_literal () // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -302,7 +302,7 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I.2 { -// CHECK:STDOUT: %Self: %I.type.726 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.532] +// CHECK:STDOUT: %Self: %I.type.e30 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.6ef] // CHECK:STDOUT: %.loc23: %empty_struct_type = struct_literal () // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -311,7 +311,7 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { -// CHECK:STDOUT: %I.decl: type = interface_decl @I.2 [template = constants.%I.type.726] {} {} +// CHECK:STDOUT: %I.decl: type = interface_decl @I.2 [template = constants.%I.type.e30] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: 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 fbe76b7eac97..f91cf22a959c 100644 --- a/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon +++ b/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon @@ -88,7 +88,7 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -140,7 +140,7 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -195,12 +195,12 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: %AdaptWithBaseAndFields.elem.767: type = unbound_element_type %AdaptWithBaseAndFields, %Base [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %AdaptWithBaseAndFields.elem.19e: type = unbound_element_type %AdaptWithBaseAndFields, %i32 [template] +// CHECK:STDOUT: %AdaptWithBaseAndFields.elem.ddf: type = unbound_element_type %AdaptWithBaseAndFields, %i32 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -228,7 +228,7 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: class @AdaptWithBaseAndFields { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] // CHECK:STDOUT: %.loc7: %AdaptWithBaseAndFields.elem.767 = base_decl %Base.ref, element [template] -// CHECK:STDOUT: %.loc8: %AdaptWithBaseAndFields.elem.19e = field_decl n, element [template] +// CHECK:STDOUT: %.loc8: %AdaptWithBaseAndFields.elem.ddf = field_decl n, element [template] // CHECK:STDOUT: %.loc15_10: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc15_11: type = converted %.loc15_10, constants.%empty_struct_type [template = constants.%empty_struct_type] // CHECK:STDOUT: adapt_decl %.loc15_11 [template] diff --git a/toolchain/check/testdata/class/adapter/init_adapt.carbon b/toolchain/check/testdata/class/adapter/init_adapt.carbon index 21e2aedf7876..82643756d78b 100644 --- a/toolchain/check/testdata/class/adapter/init_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/init_adapt.carbon @@ -98,23 +98,23 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b.3de [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b.501 [template] // CHECK:STDOUT: %AdaptC: type = class_type @AdaptC [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: %MakeC.type: type = fn_type @MakeC [template] // CHECK:STDOUT: %MakeC: %MakeC.type = struct_value () [template] // CHECK:STDOUT: %MakeAdaptC.type: type = fn_type @MakeAdaptC [template] @@ -123,8 +123,8 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -171,7 +171,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc5: %C.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc6: %C.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C @@ -183,7 +183,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: class @AdaptC { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: adapt_decl %C.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptC @@ -199,21 +199,21 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc13_27.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc13_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_27.1: = bound_method %int_1, %impl.elem0.loc13_27.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc13_27.1: = specific_function %Convert.bound.loc13_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc13_27.1: init %i32 = call %Convert.specific_fn.loc13_27.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_27.2: init %i32 = converted %int_1, %int.convert_checked.loc13_27.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc13_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_27.1: = bound_method %int_1, %impl.elem0.loc13_27.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc13_27.1: = specific_function %Convert.bound.loc13_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc13_27.1: init %i32 = call %Convert.specific_fn.loc13_27.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_27.2: init %i32 = converted %int_1, %int.convert_checked.loc13_27.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_27.3: ref %C = temporary_storage // CHECK:STDOUT: %.loc13_27.4: ref %i32 = class_element_access %.loc13_27.3, element0 -// CHECK:STDOUT: %.loc13_27.5: init %i32 = initialize_from %.loc13_27.2 to %.loc13_27.4 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc13_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_27.2: = bound_method %int_2, %impl.elem0.loc13_27.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc13_27.2: = specific_function %Convert.bound.loc13_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc13_27.2: init %i32 = call %Convert.specific_fn.loc13_27.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc13_27.6: init %i32 = converted %int_2, %int.convert_checked.loc13_27.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc13_27.5: init %i32 = initialize_from %.loc13_27.2 to %.loc13_27.4 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc13_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_27.2: = bound_method %int_2, %impl.elem0.loc13_27.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc13_27.2: = specific_function %Convert.bound.loc13_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc13_27.2: init %i32 = call %Convert.specific_fn.loc13_27.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc13_27.6: init %i32 = converted %int_2, %int.convert_checked.loc13_27.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_27.7: ref %i32 = class_element_access %.loc13_27.3, element1 -// CHECK:STDOUT: %.loc13_27.8: init %i32 = initialize_from %.loc13_27.6 to %.loc13_27.7 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc13_27.8: init %i32 = initialize_from %.loc13_27.6 to %.loc13_27.7 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_27.9: init %C = class_init (%.loc13_27.5, %.loc13_27.8), %.loc13_27.3 [template = constants.%C.val] // CHECK:STDOUT: %.loc13_27.10: ref %C = temporary %.loc13_27.3, %.loc13_27.9 // CHECK:STDOUT: %.loc13_28.1: ref %C = converted %.loc13_27.1, %.loc13_27.10 @@ -253,23 +253,23 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b.3de [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b.501 [template] // CHECK:STDOUT: %AdaptC: type = class_type @AdaptC [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: %MakeC.type: type = fn_type @MakeC [template] // CHECK:STDOUT: %MakeC: %MakeC.type = struct_value () [template] // CHECK:STDOUT: %MakeAdaptC.type: type = fn_type @MakeAdaptC [template] @@ -278,8 +278,8 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -326,7 +326,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc5: %C.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc6: %C.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C @@ -338,7 +338,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: class @AdaptC { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: adapt_decl %C.ref [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptC @@ -354,21 +354,21 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc13_27.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc13_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_27.1: = bound_method %int_1, %impl.elem0.loc13_27.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc13_27.1: = specific_function %Convert.bound.loc13_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc13_27.1: init %i32 = call %Convert.specific_fn.loc13_27.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_27.2: init %i32 = converted %int_1, %int.convert_checked.loc13_27.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc13_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_27.1: = bound_method %int_1, %impl.elem0.loc13_27.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc13_27.1: = specific_function %Convert.bound.loc13_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc13_27.1: init %i32 = call %Convert.specific_fn.loc13_27.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_27.2: init %i32 = converted %int_1, %int.convert_checked.loc13_27.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_27.3: ref %C = temporary_storage // CHECK:STDOUT: %.loc13_27.4: ref %i32 = class_element_access %.loc13_27.3, element0 -// CHECK:STDOUT: %.loc13_27.5: init %i32 = initialize_from %.loc13_27.2 to %.loc13_27.4 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc13_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_27.2: = bound_method %int_2, %impl.elem0.loc13_27.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc13_27.2: = specific_function %Convert.bound.loc13_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc13_27.2: init %i32 = call %Convert.specific_fn.loc13_27.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc13_27.6: init %i32 = converted %int_2, %int.convert_checked.loc13_27.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc13_27.5: init %i32 = initialize_from %.loc13_27.2 to %.loc13_27.4 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc13_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_27.2: = bound_method %int_2, %impl.elem0.loc13_27.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc13_27.2: = specific_function %Convert.bound.loc13_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc13_27.2: init %i32 = call %Convert.specific_fn.loc13_27.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc13_27.6: init %i32 = converted %int_2, %int.convert_checked.loc13_27.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_27.7: ref %i32 = class_element_access %.loc13_27.3, element1 -// CHECK:STDOUT: %.loc13_27.8: init %i32 = initialize_from %.loc13_27.6 to %.loc13_27.7 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc13_27.8: init %i32 = initialize_from %.loc13_27.6 to %.loc13_27.7 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_27.9: init %C = class_init (%.loc13_27.5, %.loc13_27.8), %.loc13_27.3 [template = constants.%C.val] // CHECK:STDOUT: %.loc13_27.10: ref %C = temporary %.loc13_27.3, %.loc13_27.9 // CHECK:STDOUT: %.loc13_28.1: ref %C = converted %.loc13_27.1, %.loc13_27.10 diff --git a/toolchain/check/testdata/class/base.carbon b/toolchain/check/testdata/class/base.carbon index 8bf30f321f8c..cc552969d0b2 100644 --- a/toolchain/check/testdata/class/base.carbon +++ b/toolchain/check/testdata/class/base.carbon @@ -51,41 +51,41 @@ class Derived { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [template] -// CHECK:STDOUT: %struct_type.b.fc0: type = struct_type {.b: %i32} [template] -// CHECK:STDOUT: %complete_type.d62: = complete_type_witness %struct_type.b.fc0 [template] +// CHECK:STDOUT: %struct_type.b.0a3: type = struct_type {.b: %i32} [template] +// CHECK:STDOUT: %complete_type.ba8: = complete_type_witness %struct_type.b.0a3 [template] // CHECK:STDOUT: %Derived: type = class_type @Derived [template] // CHECK:STDOUT: %Derived.elem.69e: type = unbound_element_type %Derived, %Base [template] -// CHECK:STDOUT: %Derived.elem.d12: type = unbound_element_type %Derived, %i32 [template] -// CHECK:STDOUT: %struct_type.base.d.79e: type = struct_type {.base: %Base, .d: %i32} [template] -// CHECK:STDOUT: %complete_type.71d: = complete_type_witness %struct_type.base.d.79e [template] +// CHECK:STDOUT: %Derived.elem.344: type = unbound_element_type %Derived, %i32 [template] +// CHECK:STDOUT: %struct_type.base.d.f8f: type = struct_type {.base: %Base, .d: %i32} [template] +// CHECK:STDOUT: %complete_type.da6: = complete_type_witness %struct_type.base.d.f8f [template] // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] // CHECK:STDOUT: %struct_type.b.a15: type = struct_type {.b: Core.IntLiteral} [template] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [template] // CHECK:STDOUT: %struct_type.base.d.a20: type = struct_type {.base: %struct_type.b.a15, .d: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %Base.val: %Base = struct_value (%int_4.2ec) [template] -// CHECK:STDOUT: %Convert.bound.eba: = bound_method %int_7.29f, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.785: = specific_function %Convert.bound.eba, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_7.2da: %i32 = int_value 7 [template] -// CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Base.val, %int_7.2da) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %Base.val: %Base = struct_value (%int_4.940) [template] +// CHECK:STDOUT: %Convert.bound.208: = bound_method %int_7.29f, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.c12: = specific_function %Convert.bound.208, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_7.0b1: %i32 = int_value 7 [template] +// CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Base.val, %int_7.0b1) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %Access.type: type = fn_type @Access [template] // CHECK:STDOUT: %Access: %Access.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -113,26 +113,26 @@ class Derived { // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [template = constants.%Access] { // CHECK:STDOUT: %d.patt: %Derived = binding_pattern d // CHECK:STDOUT: %d.param_patt: %Derived = value_param_pattern %d.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %tuple.type.471 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.471 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %tuple.type.d07 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.d07 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc17_27: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc17_27: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc17_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc17_32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc17_35.1: %tuple.type.24b = tuple_literal (%i32.loc17_27, %i32.loc17_32) -// CHECK:STDOUT: %.loc17_35.2: type = converted %.loc17_35.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc17_35.2: type = converted %.loc17_35.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: %d.param: %Derived = value_param runtime_param0 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [template = constants.%Derived] // CHECK:STDOUT: %d: %Derived = bind_name d, %d.param -// CHECK:STDOUT: %return.param: ref %tuple.type.471 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %tuple.type.471 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %tuple.type.d07 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %tuple.type.d07 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %.loc4: %Base.elem = field_decl b, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.b.fc0 [template = constants.%complete_type.d62] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.b.0a3 [template = constants.%complete_type.ba8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base @@ -143,8 +143,8 @@ class Derived { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] // CHECK:STDOUT: %.loc8: %Derived.elem.69e = base_decl %Base.ref, element0 [template] -// CHECK:STDOUT: %.loc10: %Derived.elem.d12 = field_decl d, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.79e [template = constants.%complete_type.71d] +// CHECK:STDOUT: %.loc10: %Derived.elem.344 = field_decl d, element1 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.f8f [template = constants.%complete_type.da6] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Derived @@ -160,32 +160,32 @@ class Derived { // CHECK:STDOUT: %.loc14_26.1: %struct_type.b.a15 = struct_literal (%int_4) // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [template = constants.%int_7.29f] // CHECK:STDOUT: %.loc14_35.1: %struct_type.base.d.a20 = struct_literal (%.loc14_26.1, %int_7) -// CHECK:STDOUT: %impl.elem0.loc14_26: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_26: = bound_method %int_4, %impl.elem0.loc14_26 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc14_26: = specific_function %Convert.bound.loc14_26, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc14_26: init %i32 = call %Convert.specific_fn.loc14_26(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc14_26.2: init %i32 = converted %int_4, %int.convert_checked.loc14_26 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc14_26: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_26: = bound_method %int_4, %impl.elem0.loc14_26 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc14_26: = specific_function %Convert.bound.loc14_26, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc14_26: init %i32 = call %Convert.specific_fn.loc14_26(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc14_26.2: init %i32 = converted %int_4, %int.convert_checked.loc14_26 [template = constants.%int_4.940] // CHECK:STDOUT: %.loc14_35.2: ref %Base = class_element_access %return, element0 // CHECK:STDOUT: %.loc14_26.3: ref %i32 = class_element_access %.loc14_35.2, element0 -// CHECK:STDOUT: %.loc14_26.4: init %i32 = initialize_from %.loc14_26.2 to %.loc14_26.3 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %.loc14_26.4: init %i32 = initialize_from %.loc14_26.2 to %.loc14_26.3 [template = constants.%int_4.940] // CHECK:STDOUT: %.loc14_26.5: init %Base = class_init (%.loc14_26.4), %.loc14_35.2 [template = constants.%Base.val] // CHECK:STDOUT: %.loc14_35.3: init %Base = converted %.loc14_26.1, %.loc14_26.5 [template = constants.%Base.val] -// CHECK:STDOUT: %impl.elem0.loc14_35: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_35: = bound_method %int_7, %impl.elem0.loc14_35 [template = constants.%Convert.bound.eba] -// CHECK:STDOUT: %Convert.specific_fn.loc14_35: = specific_function %Convert.bound.loc14_35, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.785] -// CHECK:STDOUT: %int.convert_checked.loc14_35: init %i32 = call %Convert.specific_fn.loc14_35(%int_7) [template = constants.%int_7.2da] -// CHECK:STDOUT: %.loc14_35.4: init %i32 = converted %int_7, %int.convert_checked.loc14_35 [template = constants.%int_7.2da] +// CHECK:STDOUT: %impl.elem0.loc14_35: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_35: = bound_method %int_7, %impl.elem0.loc14_35 [template = constants.%Convert.bound.208] +// CHECK:STDOUT: %Convert.specific_fn.loc14_35: = specific_function %Convert.bound.loc14_35, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c12] +// CHECK:STDOUT: %int.convert_checked.loc14_35: init %i32 = call %Convert.specific_fn.loc14_35(%int_7) [template = constants.%int_7.0b1] +// CHECK:STDOUT: %.loc14_35.4: init %i32 = converted %int_7, %int.convert_checked.loc14_35 [template = constants.%int_7.0b1] // CHECK:STDOUT: %.loc14_35.5: ref %i32 = class_element_access %return, element1 -// CHECK:STDOUT: %.loc14_35.6: init %i32 = initialize_from %.loc14_35.4 to %.loc14_35.5 [template = constants.%int_7.2da] +// CHECK:STDOUT: %.loc14_35.6: init %i32 = initialize_from %.loc14_35.4 to %.loc14_35.5 [template = constants.%int_7.0b1] // CHECK:STDOUT: %.loc14_35.7: init %Derived = class_init (%.loc14_35.3, %.loc14_35.6), %return [template = constants.%Derived.val] // CHECK:STDOUT: %.loc14_36: init %Derived = converted %.loc14_35.1, %.loc14_35.7 [template = constants.%Derived.val] // CHECK:STDOUT: return %.loc14_36 to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Access(%d.param_patt: %Derived) -> %return.param_patt: %tuple.type.471 { +// CHECK:STDOUT: fn @Access(%d.param_patt: %Derived) -> %return.param_patt: %tuple.type.d07 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref.loc18_11: %Derived = name_ref d, %d -// CHECK:STDOUT: %d.ref.loc18_12: %Derived.elem.d12 = name_ref d, @Derived.%.loc10 [template = @Derived.%.loc10] +// CHECK:STDOUT: %d.ref.loc18_12: %Derived.elem.344 = name_ref d, @Derived.%.loc10 [template = @Derived.%.loc10] // CHECK:STDOUT: %.loc18_12.1: ref %i32 = class_element_access %d.ref.loc18_11, element1 // CHECK:STDOUT: %.loc18_12.2: %i32 = bind_value %.loc18_12.1 // CHECK:STDOUT: %d.ref.loc18_16: %Derived = name_ref d, %d @@ -195,13 +195,13 @@ class Derived { // CHECK:STDOUT: %b.ref: %Base.elem = name_ref b, @Base.%.loc4 [template = @Base.%.loc4] // CHECK:STDOUT: %.loc18_22.1: ref %i32 = class_element_access %.loc18_17.2, element0 // CHECK:STDOUT: %.loc18_22.2: %i32 = bind_value %.loc18_22.1 -// CHECK:STDOUT: %.loc18_24.1: %tuple.type.471 = tuple_literal (%.loc18_12.2, %.loc18_22.2) +// CHECK:STDOUT: %.loc18_24.1: %tuple.type.d07 = tuple_literal (%.loc18_12.2, %.loc18_22.2) // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return, element0 // CHECK:STDOUT: %.loc18_24.2: init %i32 = initialize_from %.loc18_12.2 to %tuple.elem0 // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return, element1 // CHECK:STDOUT: %.loc18_24.3: init %i32 = initialize_from %.loc18_22.2 to %tuple.elem1 -// CHECK:STDOUT: %.loc18_24.4: init %tuple.type.471 = tuple_init (%.loc18_24.2, %.loc18_24.3) to %return -// CHECK:STDOUT: %.loc18_25: init %tuple.type.471 = converted %.loc18_24.1, %.loc18_24.4 +// CHECK:STDOUT: %.loc18_24.4: init %tuple.type.d07 = tuple_init (%.loc18_24.2, %.loc18_24.3) to %return +// CHECK:STDOUT: %.loc18_25: init %tuple.type.d07 = converted %.loc18_24.1, %.loc18_24.4 // CHECK:STDOUT: return %.loc18_25 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -216,12 +216,12 @@ class Derived { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %i32 [template] // CHECK:STDOUT: %struct_type.d: type = struct_type {.d: %i32} [template] -// CHECK:STDOUT: %complete_type.23b: = complete_type_witness %struct_type.d [template] +// CHECK:STDOUT: %complete_type.860: = complete_type_witness %struct_type.d [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -249,7 +249,7 @@ class Derived { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %.loc7: %Derived.elem = field_decl d, element0 [template] // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.d [template = constants.%complete_type.23b] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.d [template = constants.%complete_type.860] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Derived diff --git a/toolchain/check/testdata/class/base_field.carbon b/toolchain/check/testdata/class/base_field.carbon index c37740b7cdcd..780b4ce8a0a6 100644 --- a/toolchain/check/testdata/class/base_field.carbon +++ b/toolchain/check/testdata/class/base_field.carbon @@ -33,21 +33,21 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [template] // CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [template] -// CHECK:STDOUT: %complete_type.67b: = complete_type_witness %struct_type.a.b.c [template] +// CHECK:STDOUT: %complete_type.ebc: = complete_type_witness %struct_type.a.b.c [template] // CHECK:STDOUT: %Derived: type = class_type @Derived [template] // CHECK:STDOUT: %Derived.elem.69e: type = unbound_element_type %Derived, %Base [template] -// CHECK:STDOUT: %Derived.elem.d12: type = unbound_element_type %Derived, %i32 [template] -// CHECK:STDOUT: %struct_type.base.d.e.9c0: type = struct_type {.base: %Base, .d: %i32, .e: %i32} [template] -// CHECK:STDOUT: %complete_type.ea5: = complete_type_witness %struct_type.base.d.e.9c0 [template] +// CHECK:STDOUT: %Derived.elem.344: type = unbound_element_type %Derived, %i32 [template] +// CHECK:STDOUT: %struct_type.base.d.e.6a7: type = struct_type {.base: %Base, .d: %i32, .e: %i32} [template] +// CHECK:STDOUT: %complete_type.401: = complete_type_witness %struct_type.base.d.e.6a7 [template] // CHECK:STDOUT: %ptr.404: type = ptr_type %Derived [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %Access.type: type = fn_type @Access [template] // CHECK:STDOUT: %Access: %Access.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -66,20 +66,20 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [template = constants.%Access] { // CHECK:STDOUT: %p.patt: %ptr.404 = binding_pattern p // CHECK:STDOUT: %p.param_patt: %ptr.404 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.dc3 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.dc3 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %ptr.235 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.235 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc24_30: type = ptr_type %i32 [template = constants.%ptr.dc3] +// CHECK:STDOUT: %ptr.loc24_30: type = ptr_type %i32 [template = constants.%ptr.235] // CHECK:STDOUT: %p.param: %ptr.404 = value_param runtime_param0 // CHECK:STDOUT: %.loc24: type = splice_block %ptr.loc24_21 [template = constants.%ptr.404] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [template = constants.%Derived] // CHECK:STDOUT: %ptr.loc24_21: type = ptr_type %Derived [template = constants.%ptr.404] // CHECK:STDOUT: } // CHECK:STDOUT: %p: %ptr.404 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.dc3 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.dc3 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %ptr.235 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -87,7 +87,7 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %.loc12: %Base.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc13: %Base.elem = field_decl b, element1 [template] // CHECK:STDOUT: %.loc14: %Base.elem = field_decl c, element2 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.c [template = constants.%complete_type.67b] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.c [template = constants.%complete_type.ebc] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base @@ -100,9 +100,9 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] // CHECK:STDOUT: %.loc18: %Derived.elem.69e = base_decl %Base.ref, element0 [template] -// CHECK:STDOUT: %.loc20: %Derived.elem.d12 = field_decl d, element1 [template] -// CHECK:STDOUT: %.loc21: %Derived.elem.d12 = field_decl e, element2 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.e.9c0 [template = constants.%complete_type.ea5] +// CHECK:STDOUT: %.loc20: %Derived.elem.344 = field_decl d, element1 [template] +// CHECK:STDOUT: %.loc21: %Derived.elem.344 = field_decl e, element2 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.e.6a7 [template = constants.%complete_type.401] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Derived @@ -113,7 +113,7 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Access(%p.param_patt: %ptr.404) -> %ptr.dc3 { +// CHECK:STDOUT: fn @Access(%p.param_patt: %ptr.404) -> %ptr.235 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr.404 = name_ref p, %p // CHECK:STDOUT: %.loc25_12: ref %Derived = deref %p.ref @@ -121,7 +121,7 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %.loc25_15.1: ref %Base = class_element_access %.loc25_12, element0 // CHECK:STDOUT: %.loc25_15.2: ref %Base = converted %.loc25_12, %.loc25_15.1 // CHECK:STDOUT: %.loc25_15.3: ref %i32 = class_element_access %.loc25_15.2, element2 -// CHECK:STDOUT: %addr: %ptr.dc3 = addr_of %.loc25_15.3 +// CHECK:STDOUT: %addr: %ptr.235 = addr_of %.loc25_15.3 // CHECK:STDOUT: return %addr // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/base_method.carbon b/toolchain/check/testdata/class/base_method.carbon index 9cee22f43ab5..391b0018fe69 100644 --- a/toolchain/check/testdata/class/base_method.carbon +++ b/toolchain/check/testdata/class/base_method.carbon @@ -38,15 +38,15 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %Derived: type = class_type @Derived [template] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [template] // CHECK:STDOUT: %struct_type.base.b1e: type = struct_type {.base: %Base} [template] @@ -58,8 +58,8 @@ fn Call(p: Derived*) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -114,7 +114,7 @@ fn Call(p: Derived*) { // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc14: %ptr.11f = bind_name self, %self.param.loc14 // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base @@ -142,11 +142,11 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %a.ref: %Base.elem = name_ref a, @Base.%.loc12 [template = @Base.%.loc12] // CHECK:STDOUT: %.loc18_10: ref %i32 = class_element_access %.loc18_4, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc18_13: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc18_13: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %.loc18_10, %.loc18_13 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/base_method_qualified.carbon b/toolchain/check/testdata/class/base_method_qualified.carbon index d6c020d6cdca..be102fea419e 100644 --- a/toolchain/check/testdata/class/base_method_qualified.carbon +++ b/toolchain/check/testdata/class/base_method_qualified.carbon @@ -45,17 +45,17 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %Base: type = class_type @Base [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %F.type.3ec: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.f90: %F.type.3ec = struct_value () [template] -// CHECK:STDOUT: %G.type.975: type = fn_type @G.1 [template] -// CHECK:STDOUT: %G.476: %G.type.975 = struct_value () [template] +// CHECK:STDOUT: %F.type.7c6: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.d17: %F.type.7c6 = struct_value () [template] +// CHECK:STDOUT: %G.type.6ee: type = fn_type @G.1 [template] +// CHECK:STDOUT: %G.663: %G.type.6ee = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [template] -// CHECK:STDOUT: %F.type.55a: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.8d5: %F.type.55a = struct_value () [template] -// CHECK:STDOUT: %G.type.2ac: type = fn_type @G.2 [template] -// CHECK:STDOUT: %G.8df: %G.type.2ac = struct_value () [template] +// CHECK:STDOUT: %F.type.5da: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [template] +// CHECK:STDOUT: %G.type.04c: type = fn_type @G.2 [template] +// CHECK:STDOUT: %G.07e: %G.type.04c = struct_value () [template] // CHECK:STDOUT: %struct_type.base.b1e: type = struct_type {.base: %Base} [template] // CHECK:STDOUT: %complete_type.15c: = complete_type_witness %struct_type.base.b1e [template] // CHECK:STDOUT: %Call.type: type = fn_type @Call [template] @@ -71,7 +71,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -158,7 +158,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] // CHECK:STDOUT: %.loc19: %Derived.elem = base_decl %Base.ref, element0 [template] -// CHECK:STDOUT: %F.decl: %F.type.55a = fn_decl @F.2 [template = constants.%F.8d5] { +// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.2 [template = constants.%F.fa3] { // CHECK:STDOUT: %self.patt: %Derived = binding_pattern self // CHECK:STDOUT: %self.param_patt: %Derived = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -166,7 +166,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [template = constants.%Derived] // CHECK:STDOUT: %self: %Derived = bind_name self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %G.decl: %G.type.2ac = fn_decl @G.2 [template = constants.%G.8df] { +// CHECK:STDOUT: %G.decl: %G.type.04c = fn_decl @G.2 [template = constants.%G.07e] { // CHECK:STDOUT: %self.patt: %Derived = binding_pattern self // CHECK:STDOUT: %self.param_patt: %Derived = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -186,7 +186,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base { -// CHECK:STDOUT: %F.decl: %F.type.3ec = fn_decl @F.1 [template = constants.%F.f90] { +// CHECK:STDOUT: %F.decl: %F.type.7c6 = fn_decl @F.1 [template = constants.%F.d17] { // CHECK:STDOUT: %self.patt: %Base = binding_pattern self // CHECK:STDOUT: %self.param_patt: %Base = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -200,7 +200,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %G.decl: %G.type.975 = fn_decl @G.1 [template = constants.%G.476] { +// CHECK:STDOUT: %G.decl: %G.type.6ee = fn_decl @G.1 [template = constants.%G.663] { // CHECK:STDOUT: %self.patt: %Derived = binding_pattern self // CHECK:STDOUT: %self.param_patt: %Derived = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -235,7 +235,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %Derived = name_ref a, %a // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] -// CHECK:STDOUT: %F.ref: %F.type.3ec = name_ref F, @Base.%F.decl [template = constants.%F.f90] +// CHECK:STDOUT: %F.ref: %F.type.7c6 = name_ref F, @Base.%F.decl [template = constants.%F.d17] // CHECK:STDOUT: %F.bound: = bound_method %a.ref, %F.ref // CHECK:STDOUT: %.loc26_10.1: ref %Base = class_element_access %a.ref, element0 // CHECK:STDOUT: %.loc26_10.2: ref %Base = converted %a.ref, %.loc26_10.1 @@ -250,7 +250,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr.404 = name_ref p, %p // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] -// CHECK:STDOUT: %F.ref: %F.type.3ec = name_ref F, @Base.%F.decl [template = constants.%F.f90] +// CHECK:STDOUT: %F.ref: %F.type.7c6 = name_ref F, @Base.%F.decl [template = constants.%F.d17] // CHECK:STDOUT: %.loc30_11.1: ref %Derived = deref %p.ref // CHECK:STDOUT: %F.bound: = bound_method %.loc30_11.1, %F.ref // CHECK:STDOUT: %.loc30_11.2: ref %Base = class_element_access %.loc30_11.1, element0 @@ -266,7 +266,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %Derived = name_ref a, %a // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] -// CHECK:STDOUT: %G.ref: %G.type.975 = name_ref G, @Base.%G.decl [template = constants.%G.476] +// CHECK:STDOUT: %G.ref: %G.type.6ee = name_ref G, @Base.%G.decl [template = constants.%G.663] // CHECK:STDOUT: %G.bound: = bound_method %a.ref, %G.ref // CHECK:STDOUT: %G.call: init %i32 = call %G.bound(%a.ref) // CHECK:STDOUT: %.loc34_22.1: %i32 = value_of_initializer %G.call @@ -278,7 +278,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr.404 = name_ref p, %p // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] -// CHECK:STDOUT: %G.ref: %G.type.975 = name_ref G, @Base.%G.decl [template = constants.%G.476] +// CHECK:STDOUT: %G.ref: %G.type.6ee = name_ref G, @Base.%G.decl [template = constants.%G.663] // CHECK:STDOUT: %.loc38_11.1: ref %Derived = deref %p.ref // CHECK:STDOUT: %G.bound: = bound_method %.loc38_11.1, %G.ref // CHECK:STDOUT: %.loc38_11.2: %Derived = bind_value %.loc38_11.1 diff --git a/toolchain/check/testdata/class/base_method_shadow.carbon b/toolchain/check/testdata/class/base_method_shadow.carbon index f5ff67f826cd..b22027b03f7c 100644 --- a/toolchain/check/testdata/class/base_method_shadow.carbon +++ b/toolchain/check/testdata/class/base_method_shadow.carbon @@ -38,23 +38,23 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %A: type = class_type @A [template] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [template] -// CHECK:STDOUT: %F.type.76a: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.649: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.a9f: %F.type.76a = struct_value () [template] +// CHECK:STDOUT: %F.485: %F.type.649 = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [template] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [template] -// CHECK:STDOUT: %F.type.e92: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.d7d: %F.type.e92 = struct_value () [template] +// CHECK:STDOUT: %F.type.8c6: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.92a: %F.type.8c6 = struct_value () [template] // CHECK:STDOUT: %struct_type.base.953: type = struct_type {.base: %A} [template] // CHECK:STDOUT: %complete_type.020: = complete_type_witness %struct_type.base.953 [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %F.type.675: type = fn_type @F.3 [template] -// CHECK:STDOUT: %F.2c9: %F.type.675 = struct_value () [template] +// CHECK:STDOUT: %F.type.c29: type = fn_type @F.3 [template] +// CHECK:STDOUT: %F.437: %F.type.c29 = struct_value () [template] // CHECK:STDOUT: %struct_type.base.0ff: type = struct_type {.base: %B} [template] // CHECK:STDOUT: %complete_type.98e: = complete_type_witness %struct_type.base.0ff [template] // CHECK:STDOUT: %D: type = class_type @D [template] @@ -123,7 +123,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A { -// CHECK:STDOUT: %F.decl: %F.type.76a = fn_decl @F.1 [template = constants.%F.a9f] { +// CHECK:STDOUT: %F.decl: %F.type.649 = fn_decl @F.1 [template = constants.%F.485] { // CHECK:STDOUT: %self.patt: %ptr.6db = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.6db = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc12_8: auto = addr_pattern %self.param_patt @@ -146,7 +146,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: class @B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %.loc16: %B.elem = base_decl %A.ref, element0 [template] -// CHECK:STDOUT: %F.decl: %F.type.e92 = fn_decl @F.2 [template = constants.%F.d7d] { +// CHECK:STDOUT: %F.decl: %F.type.8c6 = fn_decl @F.2 [template = constants.%F.92a] { // CHECK:STDOUT: %self.patt: %ptr.e79 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.e79 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc17_8: auto = addr_pattern %self.param_patt @@ -171,7 +171,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: class @C { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %.loc21: %C.elem = base_decl %B.ref, element0 [template] -// CHECK:STDOUT: %F.decl: %F.type.675 = fn_decl @F.3 [template = constants.%F.2c9] { +// CHECK:STDOUT: %F.decl: %F.type.c29 = fn_decl @F.3 [template = constants.%F.437] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc22_8: auto = addr_pattern %self.param_patt @@ -215,25 +215,25 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.6db = name_ref a, %a // CHECK:STDOUT: %.loc30: ref %A = deref %a.ref -// CHECK:STDOUT: %F.ref.loc30: %F.type.76a = name_ref F, @A.%F.decl [template = constants.%F.a9f] +// CHECK:STDOUT: %F.ref.loc30: %F.type.649 = name_ref F, @A.%F.decl [template = constants.%F.485] // CHECK:STDOUT: %F.bound.loc30: = bound_method %.loc30, %F.ref.loc30 // CHECK:STDOUT: %addr.loc30: %ptr.6db = addr_of %.loc30 // CHECK:STDOUT: %F.call.loc30: init %empty_tuple.type = call %F.bound.loc30(%addr.loc30) // CHECK:STDOUT: %b.ref: %ptr.e79 = name_ref b, %b // CHECK:STDOUT: %.loc31: ref %B = deref %b.ref -// CHECK:STDOUT: %F.ref.loc31: %F.type.e92 = name_ref F, @B.%F.decl [template = constants.%F.d7d] +// CHECK:STDOUT: %F.ref.loc31: %F.type.8c6 = name_ref F, @B.%F.decl [template = constants.%F.92a] // CHECK:STDOUT: %F.bound.loc31: = bound_method %.loc31, %F.ref.loc31 // CHECK:STDOUT: %addr.loc31: %ptr.e79 = addr_of %.loc31 // CHECK:STDOUT: %F.call.loc31: init %empty_tuple.type = call %F.bound.loc31(%addr.loc31) // CHECK:STDOUT: %c.ref: %ptr.019 = name_ref c, %c // CHECK:STDOUT: %.loc32: ref %C = deref %c.ref -// CHECK:STDOUT: %F.ref.loc32: %F.type.675 = name_ref F, @C.%F.decl [template = constants.%F.2c9] +// CHECK:STDOUT: %F.ref.loc32: %F.type.c29 = name_ref F, @C.%F.decl [template = constants.%F.437] // CHECK:STDOUT: %F.bound.loc32: = bound_method %.loc32, %F.ref.loc32 // CHECK:STDOUT: %addr.loc32: %ptr.019 = addr_of %.loc32 // CHECK:STDOUT: %F.call.loc32: init %empty_tuple.type = call %F.bound.loc32(%addr.loc32) // CHECK:STDOUT: %d.ref: %ptr.19c = name_ref d, %d // CHECK:STDOUT: %.loc33_4.1: ref %D = deref %d.ref -// CHECK:STDOUT: %F.ref.loc33: %F.type.e92 = name_ref F, @B.%F.decl [template = constants.%F.d7d] +// CHECK:STDOUT: %F.ref.loc33: %F.type.8c6 = name_ref F, @B.%F.decl [template = constants.%F.92a] // CHECK:STDOUT: %F.bound.loc33: = bound_method %.loc33_4.1, %F.ref.loc33 // CHECK:STDOUT: %addr.loc33_4.1: %ptr.19c = addr_of %.loc33_4.1 // CHECK:STDOUT: %.loc33_4.2: ref %D = deref %addr.loc33_4.1 diff --git a/toolchain/check/testdata/class/basic.carbon b/toolchain/check/testdata/class/basic.carbon index 00ce199f20b7..18d5112f21fc 100644 --- a/toolchain/check/testdata/class/basic.carbon +++ b/toolchain/check/testdata/class/basic.carbon @@ -38,23 +38,23 @@ fn Run() -> i32 { // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %struct_type.k: type = struct_type {.k: %i32} [template] -// CHECK:STDOUT: %complete_type.631: = complete_type_witness %struct_type.k [template] +// CHECK:STDOUT: %complete_type.954: = complete_type_witness %struct_type.k [template] // CHECK:STDOUT: %Run.type: type = fn_type @Run [template] // CHECK:STDOUT: %Run: %Run.type = struct_value () [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -134,7 +134,7 @@ fn Run() -> i32 { // CHECK:STDOUT: %return.loc16: ref %i32 = return_slot %return.param.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: %.loc18: %Class.elem = field_decl k, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k [template = constants.%complete_type.631] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k [template = constants.%complete_type.954] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -161,12 +161,12 @@ fn Run() -> i32 { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [template = constants.%Class] // CHECK:STDOUT: %F.ref: %F.type = name_ref F, @Class.%F.decl [template = constants.%F] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc26_18.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc26_18.2: %i32 = converted %int_4, %.loc26_18.1 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc26_18.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc26_18.2: %i32 = converted %int_4, %.loc26_18.1 [template = constants.%int_4.940] // CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc26_18.2) // CHECK:STDOUT: %.loc26_20.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc26_20.2: %i32 = converted %F.call, %.loc26_20.1 diff --git a/toolchain/check/testdata/class/complete_in_member_fn.carbon b/toolchain/check/testdata/class/complete_in_member_fn.carbon index 3094b6bc3fa9..70b7eb355e0a 100644 --- a/toolchain/check/testdata/class/complete_in_member_fn.carbon +++ b/toolchain/check/testdata/class/complete_in_member_fn.carbon @@ -24,12 +24,12 @@ class C { // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -60,7 +60,7 @@ class C { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.loc14: %C.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C diff --git a/toolchain/check/testdata/class/compound_field.carbon b/toolchain/check/testdata/class/compound_field.carbon index a39052e2afef..40bb300eca87 100644 --- a/toolchain/check/testdata/class/compound_field.carbon +++ b/toolchain/check/testdata/class/compound_field.carbon @@ -45,18 +45,18 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [template] // CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [template] -// CHECK:STDOUT: %complete_type.67b: = complete_type_witness %struct_type.a.b.c [template] +// CHECK:STDOUT: %complete_type.ebc: = complete_type_witness %struct_type.a.b.c [template] // CHECK:STDOUT: %Derived: type = class_type @Derived [template] // CHECK:STDOUT: %Derived.elem.69e: type = unbound_element_type %Derived, %Base [template] -// CHECK:STDOUT: %Derived.elem.d12: type = unbound_element_type %Derived, %i32 [template] -// CHECK:STDOUT: %struct_type.base.d.e.9c0: type = struct_type {.base: %Base, .d: %i32, .e: %i32} [template] -// CHECK:STDOUT: %complete_type.ea5: = complete_type_witness %struct_type.base.d.e.9c0 [template] +// CHECK:STDOUT: %Derived.elem.344: type = unbound_element_type %Derived, %i32 [template] +// CHECK:STDOUT: %struct_type.base.d.e.6a7: type = struct_type {.base: %Base, .d: %i32, .e: %i32} [template] +// CHECK:STDOUT: %complete_type.401: = complete_type_witness %struct_type.base.d.e.6a7 [template] // CHECK:STDOUT: %AccessDerived.type: type = fn_type @AccessDerived [template] // CHECK:STDOUT: %AccessDerived: %AccessDerived.type = struct_value () [template] // CHECK:STDOUT: %AccessBase.type: type = fn_type @AccessBase [template] // CHECK:STDOUT: %AccessBase: %AccessBase.type = struct_value () [template] // CHECK:STDOUT: %ptr.404: type = ptr_type %Derived [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %AccessDerivedIndirect.type: type = fn_type @AccessDerivedIndirect [template] // CHECK:STDOUT: %AccessDerivedIndirect: %AccessDerivedIndirect.type = struct_value () [template] // CHECK:STDOUT: %AccessBaseIndirect.type: type = fn_type @AccessBaseIndirect [template] @@ -65,7 +65,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -115,38 +115,38 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %AccessDerivedIndirect.decl: %AccessDerivedIndirect.type = fn_decl @AccessDerivedIndirect [template = constants.%AccessDerivedIndirect] { // CHECK:STDOUT: %p.patt: %ptr.404 = binding_pattern p // CHECK:STDOUT: %p.param_patt: %ptr.404 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.dc3 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.dc3 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %ptr.235 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.235 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc32_45: type = ptr_type %i32 [template = constants.%ptr.dc3] +// CHECK:STDOUT: %ptr.loc32_45: type = ptr_type %i32 [template = constants.%ptr.235] // CHECK:STDOUT: %p.param: %ptr.404 = value_param runtime_param0 // CHECK:STDOUT: %.loc32: type = splice_block %ptr.loc32_36 [template = constants.%ptr.404] { // CHECK:STDOUT: %Derived.ref.loc32: type = name_ref Derived, file.%Derived.decl [template = constants.%Derived] // CHECK:STDOUT: %ptr.loc32_36: type = ptr_type %Derived [template = constants.%ptr.404] // CHECK:STDOUT: } // CHECK:STDOUT: %p: %ptr.404 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.dc3 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.dc3 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %ptr.235 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessBaseIndirect.decl: %AccessBaseIndirect.type = fn_decl @AccessBaseIndirect [template = constants.%AccessBaseIndirect] { // CHECK:STDOUT: %p.patt: %ptr.404 = binding_pattern p // CHECK:STDOUT: %p.param_patt: %ptr.404 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.dc3 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.dc3 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %ptr.235 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.235 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc36_42: type = ptr_type %i32 [template = constants.%ptr.dc3] +// CHECK:STDOUT: %ptr.loc36_42: type = ptr_type %i32 [template = constants.%ptr.235] // CHECK:STDOUT: %p.param: %ptr.404 = value_param runtime_param0 // CHECK:STDOUT: %.loc36: type = splice_block %ptr.loc36_33 [template = constants.%ptr.404] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [template = constants.%Derived] // CHECK:STDOUT: %ptr.loc36_33: type = ptr_type %Derived [template = constants.%ptr.404] // CHECK:STDOUT: } // CHECK:STDOUT: %p: %ptr.404 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.dc3 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.dc3 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %ptr.235 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -154,7 +154,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %.loc12: %Base.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc13: %Base.elem = field_decl b, element1 [template] // CHECK:STDOUT: %.loc14: %Base.elem = field_decl c, element2 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.c [template = constants.%complete_type.67b] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.c [template = constants.%complete_type.ebc] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base @@ -167,9 +167,9 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] // CHECK:STDOUT: %.loc18: %Derived.elem.69e = base_decl %Base.ref, element0 [template] -// CHECK:STDOUT: %.loc20: %Derived.elem.d12 = field_decl d, element1 [template] -// CHECK:STDOUT: %.loc21: %Derived.elem.d12 = field_decl e, element2 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.e.9c0 [template = constants.%complete_type.ea5] +// CHECK:STDOUT: %.loc20: %Derived.elem.344 = field_decl d, element1 [template] +// CHECK:STDOUT: %.loc21: %Derived.elem.344 = field_decl e, element2 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.e.6a7 [template = constants.%complete_type.401] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Derived @@ -184,7 +184,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref.loc25_10: %Derived = name_ref d, %d // CHECK:STDOUT: %Derived.ref.loc25: type = name_ref Derived, file.%Derived.decl [template = constants.%Derived] -// CHECK:STDOUT: %d.ref.loc25_20: %Derived.elem.d12 = name_ref d, @Derived.%.loc20 [template = @Derived.%.loc20] +// CHECK:STDOUT: %d.ref.loc25_20: %Derived.elem.344 = name_ref d, @Derived.%.loc20 [template = @Derived.%.loc20] // CHECK:STDOUT: %.loc25_11.1: ref %i32 = class_element_access %d.ref.loc25_10, element1 // CHECK:STDOUT: %.loc25_11.2: %i32 = bind_value %.loc25_11.1 // CHECK:STDOUT: return %.loc25_11.2 @@ -202,18 +202,18 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: return %.loc29_11.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AccessDerivedIndirect(%p.param_patt: %ptr.404) -> %ptr.dc3 { +// CHECK:STDOUT: fn @AccessDerivedIndirect(%p.param_patt: %ptr.404) -> %ptr.235 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr.404 = name_ref p, %p // CHECK:STDOUT: %Derived.ref.loc33: type = name_ref Derived, file.%Derived.decl [template = constants.%Derived] -// CHECK:STDOUT: %d.ref: %Derived.elem.d12 = name_ref d, @Derived.%.loc20 [template = @Derived.%.loc20] +// CHECK:STDOUT: %d.ref: %Derived.elem.344 = name_ref d, @Derived.%.loc20 [template = @Derived.%.loc20] // CHECK:STDOUT: %.loc33_12.1: ref %Derived = deref %p.ref // CHECK:STDOUT: %.loc33_12.2: ref %i32 = class_element_access %.loc33_12.1, element1 -// CHECK:STDOUT: %addr: %ptr.dc3 = addr_of %.loc33_12.2 +// CHECK:STDOUT: %addr: %ptr.235 = addr_of %.loc33_12.2 // CHECK:STDOUT: return %addr // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AccessBaseIndirect(%p.param_patt: %ptr.404) -> %ptr.dc3 { +// CHECK:STDOUT: fn @AccessBaseIndirect(%p.param_patt: %ptr.404) -> %ptr.235 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr.404 = name_ref p, %p // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] @@ -222,7 +222,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %.loc37_12.2: ref %Base = class_element_access %.loc37_12.1, element0 // CHECK:STDOUT: %.loc37_12.3: ref %Base = converted %.loc37_12.1, %.loc37_12.2 // CHECK:STDOUT: %.loc37_12.4: ref %i32 = class_element_access %.loc37_12.3, element1 -// CHECK:STDOUT: %addr: %ptr.dc3 = addr_of %.loc37_12.4 +// CHECK:STDOUT: %addr: %ptr.235 = addr_of %.loc37_12.4 // CHECK:STDOUT: return %addr // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/cross_package_import.carbon b/toolchain/check/testdata/class/cross_package_import.carbon index d90dda7b00b8..288642a1bcf1 100644 --- a/toolchain/check/testdata/class/cross_package_import.carbon +++ b/toolchain/check/testdata/class/cross_package_import.carbon @@ -198,7 +198,7 @@ var c: Other.C = {}; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac +// CHECK:STDOUT: .C = %import_ref.3b0 // CHECK:STDOUT: import Other//other_define // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Other//other_define, loc4_10, loaded [template = constants.%complete_type] @@ -285,7 +285,7 @@ var c: Other.C = {}; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac +// CHECK:STDOUT: .C = %import_ref.3b0 // CHECK:STDOUT: import Other//other_define // CHECK:STDOUT: import Other//other_extern // CHECK:STDOUT: } @@ -335,7 +335,7 @@ var c: Other.C = {}; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac +// CHECK:STDOUT: .C = %import_ref.3b0 // CHECK:STDOUT: import Other//other_define // CHECK:STDOUT: import Other//other_conflict // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/derived_to_base.carbon b/toolchain/check/testdata/class/derived_to_base.carbon index 7e60dbe6c97d..a4982fe1091a 100644 --- a/toolchain/check/testdata/class/derived_to_base.carbon +++ b/toolchain/check/testdata/class/derived_to_base.carbon @@ -45,18 +45,18 @@ fn ConvertInit() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] -// CHECK:STDOUT: %struct_type.a.7cc: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a.7cc [template] +// CHECK:STDOUT: %struct_type.a.ba9: type = struct_type {.a: %i32} [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a.ba9 [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %B.elem.e38: type = unbound_element_type %B, %A [template] -// CHECK:STDOUT: %B.elem.4d3: type = unbound_element_type %B, %i32 [template] -// CHECK:STDOUT: %struct_type.base.b.970: type = struct_type {.base: %A, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.0f8: = complete_type_witness %struct_type.base.b.970 [template] +// CHECK:STDOUT: %B.elem.5c3: type = unbound_element_type %B, %i32 [template] +// CHECK:STDOUT: %struct_type.base.b.b44: type = struct_type {.base: %A, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.725: = complete_type_witness %struct_type.base.b.b44 [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %C.elem.f0c: type = unbound_element_type %C, %B [template] -// CHECK:STDOUT: %C.elem.124: type = unbound_element_type %C, %i32 [template] -// CHECK:STDOUT: %struct_type.base.c.b65: type = struct_type {.base: %B, .c: %i32} [template] -// CHECK:STDOUT: %complete_type.c8e: = complete_type_witness %struct_type.base.c.b65 [template] +// CHECK:STDOUT: %C.elem.646: type = unbound_element_type %C, %i32 [template] +// CHECK:STDOUT: %struct_type.base.c.8e2: type = struct_type {.base: %B, .c: %i32} [template] +// CHECK:STDOUT: %complete_type.58a: = complete_type_witness %struct_type.base.c.8e2 [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [template] // CHECK:STDOUT: %ConvertCToB.type: type = fn_type @ConvertCToB [template] @@ -78,28 +78,28 @@ fn ConvertInit() { // CHECK:STDOUT: %struct_type.base.b.bf0: type = struct_type {.base: %struct_type.a.a6c, .b: Core.IntLiteral} [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %struct_type.base.c.136: type = struct_type {.base: %struct_type.base.b.bf0, .c: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.c60) [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %B.val: %B = struct_value (%A.val, %int_2.166) [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %C.val: %C = struct_value (%B.val, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.5d2) [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %B.val: %B = struct_value (%A.val, %int_2.ef8) [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %C.val: %C = struct_value (%B.val, %int_3.822) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -203,7 +203,7 @@ fn ConvertInit() { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc12: %A.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.7cc [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.ba9 [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -214,8 +214,8 @@ fn ConvertInit() { // CHECK:STDOUT: class @B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %.loc16: %B.elem.e38 = base_decl %A.ref, element0 [template] -// CHECK:STDOUT: %.loc17: %B.elem.4d3 = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.b.970 [template = constants.%complete_type.0f8] +// CHECK:STDOUT: %.loc17: %B.elem.5c3 = field_decl b, element1 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.b.b44 [template = constants.%complete_type.725] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B @@ -228,8 +228,8 @@ fn ConvertInit() { // CHECK:STDOUT: class @C { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %.loc21: %C.elem.f0c = base_decl %B.ref, element0 [template] -// CHECK:STDOUT: %.loc22: %C.elem.124 = field_decl c, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.c.b65 [template = constants.%complete_type.c8e] +// CHECK:STDOUT: %.loc22: %C.elem.646 = field_decl c, element1 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.c.8e2 [template = constants.%complete_type.58a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C @@ -302,34 +302,34 @@ fn ConvertInit() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc38_57.1: %struct_type.base.c.136 = struct_literal (%.loc38_48.1, %int_3) // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %impl.elem0.loc38_39: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc38_39: = bound_method %int_1, %impl.elem0.loc38_39 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc38_39: = specific_function %Convert.bound.loc38_39, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc38_39: init %i32 = call %Convert.specific_fn.loc38_39(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc38_39.2: init %i32 = converted %int_1, %int.convert_checked.loc38_39 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc38_39: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc38_39: = bound_method %int_1, %impl.elem0.loc38_39 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc38_39: = specific_function %Convert.bound.loc38_39, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc38_39: init %i32 = call %Convert.specific_fn.loc38_39(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc38_39.2: init %i32 = converted %int_1, %int.convert_checked.loc38_39 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc38_57.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc38_57.3: ref %B = class_element_access %.loc38_57.2, element0 // CHECK:STDOUT: %.loc38_48.2: ref %A = class_element_access %.loc38_57.3, element0 // CHECK:STDOUT: %.loc38_39.3: ref %i32 = class_element_access %.loc38_48.2, element0 -// CHECK:STDOUT: %.loc38_39.4: init %i32 = initialize_from %.loc38_39.2 to %.loc38_39.3 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc38_39.4: init %i32 = initialize_from %.loc38_39.2 to %.loc38_39.3 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc38_39.5: init %A = class_init (%.loc38_39.4), %.loc38_48.2 [template = constants.%A.val] // CHECK:STDOUT: %.loc38_48.3: init %A = converted %.loc38_39.1, %.loc38_39.5 [template = constants.%A.val] -// CHECK:STDOUT: %impl.elem0.loc38_48: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc38_48: = bound_method %int_2, %impl.elem0.loc38_48 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc38_48: = specific_function %Convert.bound.loc38_48, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc38_48: init %i32 = call %Convert.specific_fn.loc38_48(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc38_48.4: init %i32 = converted %int_2, %int.convert_checked.loc38_48 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc38_48: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc38_48: = bound_method %int_2, %impl.elem0.loc38_48 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc38_48: = specific_function %Convert.bound.loc38_48, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc38_48: init %i32 = call %Convert.specific_fn.loc38_48(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc38_48.4: init %i32 = converted %int_2, %int.convert_checked.loc38_48 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc38_48.5: ref %i32 = class_element_access %.loc38_57.3, element1 -// CHECK:STDOUT: %.loc38_48.6: init %i32 = initialize_from %.loc38_48.4 to %.loc38_48.5 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc38_48.6: init %i32 = initialize_from %.loc38_48.4 to %.loc38_48.5 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc38_48.7: init %B = class_init (%.loc38_48.3, %.loc38_48.6), %.loc38_57.3 [template = constants.%B.val] // CHECK:STDOUT: %.loc38_57.4: init %B = converted %.loc38_48.1, %.loc38_48.7 [template = constants.%B.val] -// CHECK:STDOUT: %impl.elem0.loc38_57: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc38_57: = bound_method %int_3, %impl.elem0.loc38_57 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc38_57: = specific_function %Convert.bound.loc38_57, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc38_57: init %i32 = call %Convert.specific_fn.loc38_57(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc38_57.5: init %i32 = converted %int_3, %int.convert_checked.loc38_57 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc38_57: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc38_57: = bound_method %int_3, %impl.elem0.loc38_57 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc38_57: = specific_function %Convert.bound.loc38_57, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc38_57: init %i32 = call %Convert.specific_fn.loc38_57(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc38_57.5: init %i32 = converted %int_3, %int.convert_checked.loc38_57 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc38_57.6: ref %i32 = class_element_access %.loc38_57.2, element1 -// CHECK:STDOUT: %.loc38_57.7: init %i32 = initialize_from %.loc38_57.5 to %.loc38_57.6 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc38_57.7: init %i32 = initialize_from %.loc38_57.5 to %.loc38_57.6 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc38_57.8: init %C = class_init (%.loc38_57.4, %.loc38_57.7), %.loc38_57.2 [template = constants.%C.val] // CHECK:STDOUT: %.loc38_57.9: ref %C = temporary %.loc38_57.2, %.loc38_57.8 // CHECK:STDOUT: %.loc38_59: ref %C = converted %.loc38_57.1, %.loc38_57.9 diff --git a/toolchain/check/testdata/class/fail_abstract.carbon b/toolchain/check/testdata/class/fail_abstract.carbon index af7d74a89d6d..5f3f871590cc 100644 --- a/toolchain/check/testdata/class/fail_abstract.carbon +++ b/toolchain/check/testdata/class/fail_abstract.carbon @@ -446,9 +446,9 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Derived.elem.513: type = unbound_element_type %Derived, %Abstract [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Derived.elem.d12: type = unbound_element_type %Derived, %i32 [template] -// CHECK:STDOUT: %struct_type.base.d.b7a: type = struct_type {.base: %Abstract, .d: %i32} [template] -// CHECK:STDOUT: %complete_type.f66: = complete_type_witness %struct_type.base.d.b7a [template] +// CHECK:STDOUT: %Derived.elem.344: type = unbound_element_type %Derived, %i32 [template] +// CHECK:STDOUT: %struct_type.base.d.c44: type = struct_type {.base: %Abstract, .d: %i32} [template] +// CHECK:STDOUT: %complete_type.32a: = complete_type_witness %struct_type.base.d.c44 [template] // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] @@ -459,7 +459,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -496,8 +496,8 @@ fn CallReturnAbstract() { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [template = constants.%Abstract] // CHECK:STDOUT: %.loc8: %Derived.elem.513 = base_decl %Abstract.ref, element0 [template] -// CHECK:STDOUT: %.loc10: %Derived.elem.d12 = field_decl d, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.b7a [template = constants.%complete_type.f66] +// CHECK:STDOUT: %.loc10: %Derived.elem.344 = field_decl d, element1 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.c44 [template = constants.%complete_type.32a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Derived @@ -526,16 +526,16 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Derived.elem.513: type = unbound_element_type %Derived, %Abstract [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Derived.elem.d12: type = unbound_element_type %Derived, %i32 [template] +// CHECK:STDOUT: %Derived.elem.344: type = unbound_element_type %Derived, %i32 [template] // CHECK:STDOUT: %struct_type.base.d: type = struct_type {.base: %Abstract, .d: %i32} [template] -// CHECK:STDOUT: %complete_type.f66: = complete_type_witness %struct_type.base.d [template] +// CHECK:STDOUT: %complete_type.32a: = complete_type_witness %struct_type.base.d [template] // CHECK:STDOUT: %Return.type: type = fn_type @Return [template] // CHECK:STDOUT: %Return: %Return.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -577,8 +577,8 @@ fn CallReturnAbstract() { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [template = constants.%Abstract] // CHECK:STDOUT: %.loc8: %Derived.elem.513 = base_decl %Abstract.ref, element0 [template] -// CHECK:STDOUT: %.loc10: %Derived.elem.d12 = field_decl d, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d [template = constants.%complete_type.f66] +// CHECK:STDOUT: %.loc10: %Derived.elem.344 = field_decl d, element1 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d [template = constants.%complete_type.32a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Derived @@ -602,19 +602,19 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Abstract.elem: type = unbound_element_type %Abstract, %i32 [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a [template] // CHECK:STDOUT: %Derived: type = class_type @Derived [template] // CHECK:STDOUT: %Derived.elem.513: type = unbound_element_type %Derived, %Abstract [template] -// CHECK:STDOUT: %Derived.elem.d12: type = unbound_element_type %Derived, %i32 [template] -// CHECK:STDOUT: %struct_type.base.d.b7a: type = struct_type {.base: %Abstract, .d: %i32} [template] -// CHECK:STDOUT: %complete_type.f66: = complete_type_witness %struct_type.base.d.b7a [template] +// CHECK:STDOUT: %Derived.elem.344: type = unbound_element_type %Derived, %i32 [template] +// CHECK:STDOUT: %struct_type.base.d.c44: type = struct_type {.base: %Abstract, .d: %i32} [template] +// CHECK:STDOUT: %complete_type.32a: = complete_type_witness %struct_type.base.d.c44 [template] // CHECK:STDOUT: %Access.type: type = fn_type @Access [template] // CHECK:STDOUT: %Access: %Access.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -648,7 +648,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: // CHECK:STDOUT: class @Abstract { // CHECK:STDOUT: %.loc5: %Abstract.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract @@ -659,8 +659,8 @@ fn CallReturnAbstract() { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [template = constants.%Abstract] // CHECK:STDOUT: %.loc9: %Derived.elem.513 = base_decl %Abstract.ref, element0 [template] -// CHECK:STDOUT: %.loc11: %Derived.elem.d12 = field_decl d, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.b7a [template = constants.%complete_type.f66] +// CHECK:STDOUT: %.loc11: %Derived.elem.344 = field_decl d, element1 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d.c44 [template = constants.%complete_type.32a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Derived diff --git a/toolchain/check/testdata/class/fail_addr_self.carbon b/toolchain/check/testdata/class/fail_addr_self.carbon index 617e076832ea..ea7d8443ce06 100644 --- a/toolchain/check/testdata/class/fail_addr_self.carbon +++ b/toolchain/check/testdata/class/fail_addr_self.carbon @@ -39,9 +39,9 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [template] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [template] -// CHECK:STDOUT: %F.type.945: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.f1b: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.ffd: %F.type.945 = struct_value () [template] +// CHECK:STDOUT: %F.1f2: %F.type.f1b = struct_value () [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] @@ -84,7 +84,7 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { -// CHECK:STDOUT: %F.decl: %F.type.945 = fn_decl @F.1 [template = constants.%F.ffd] { +// CHECK:STDOUT: %F.decl: %F.type.f1b = fn_decl @F.1 [template = constants.%F.1f2] { // CHECK:STDOUT: %self.patt: %ptr.e71 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.e71 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc12_8: auto = addr_pattern %self.param_patt @@ -120,7 +120,7 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: fn @F.2(%c.param_patt: %Class, %p.param_patt: %ptr.e71) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref.loc27: %Class = name_ref c, %c -// CHECK:STDOUT: %F.ref.loc27: %F.type.945 = name_ref F, @Class.%F.decl [template = constants.%F.ffd] +// CHECK:STDOUT: %F.ref.loc27: %F.type.f1b = name_ref F, @Class.%F.decl [template = constants.%F.1f2] // CHECK:STDOUT: %F.bound.loc27: = bound_method %c.ref.loc27, %F.ref.loc27 // CHECK:STDOUT: %F.call.loc27: init %empty_tuple.type = call %F.bound.loc27() // CHECK:STDOUT: %c.ref.loc29: %Class = name_ref c, %c @@ -129,7 +129,7 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: %G.call.loc29: init %empty_tuple.type = call %G.bound.loc29(%c.ref.loc29) // CHECK:STDOUT: %p.ref.loc32: %ptr.e71 = name_ref p, %p // CHECK:STDOUT: %.loc32: ref %Class = deref %p.ref.loc32 -// CHECK:STDOUT: %F.ref.loc32: %F.type.945 = name_ref F, @Class.%F.decl [template = constants.%F.ffd] +// CHECK:STDOUT: %F.ref.loc32: %F.type.f1b = name_ref F, @Class.%F.decl [template = constants.%F.1f2] // CHECK:STDOUT: %F.bound.loc32: = bound_method %.loc32, %F.ref.loc32 // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc32 // CHECK:STDOUT: %F.call.loc32: init %empty_tuple.type = call %F.bound.loc32(%addr) diff --git a/toolchain/check/testdata/class/fail_base_bad_type.carbon b/toolchain/check/testdata/class/fail_base_bad_type.carbon index 948a3a216af0..571c40bf1254 100644 --- a/toolchain/check/testdata/class/fail_base_bad_type.carbon +++ b/toolchain/check/testdata/class/fail_base_bad_type.carbon @@ -190,7 +190,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -256,8 +256,8 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -319,9 +319,9 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %DeriveFromi32.elem: type = unbound_element_type %DeriveFromi32, %i32 [template] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %i32} [template] -// CHECK:STDOUT: %complete_type.c10: = complete_type_witness %struct_type.base [template] +// CHECK:STDOUT: %complete_type.386: = complete_type_witness %struct_type.base [template] // CHECK:STDOUT: %ptr.45c: type = ptr_type %DeriveFromi32 [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %ConvertToBadBasei32.type: type = fn_type @ConvertToBadBasei32 [template] // CHECK:STDOUT: %ConvertToBadBasei32: %ConvertToBadBasei32.type = struct_value () [template] // CHECK:STDOUT: %AccessMemberWithInvalidBasei32.type: type = fn_type @AccessMemberWithInvalidBasei32 [template] @@ -330,7 +330,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -348,20 +348,20 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: %ConvertToBadBasei32.decl: %ConvertToBadBasei32.type = fn_decl @ConvertToBadBasei32 [template = constants.%ConvertToBadBasei32] { // CHECK:STDOUT: %p.patt: %ptr.45c = binding_pattern p // CHECK:STDOUT: %p.param_patt: %ptr.45c = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.dc3 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.dc3 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %ptr.235 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.235 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc14_49: type = ptr_type %i32 [template = constants.%ptr.dc3] +// CHECK:STDOUT: %ptr.loc14_49: type = ptr_type %i32 [template = constants.%ptr.235] // CHECK:STDOUT: %p.param: %ptr.45c = value_param runtime_param0 // CHECK:STDOUT: %.loc14_40: type = splice_block %ptr.loc14_40 [template = constants.%ptr.45c] { // CHECK:STDOUT: %DeriveFromi32.ref: type = name_ref DeriveFromi32, file.%DeriveFromi32.decl [template = constants.%DeriveFromi32] // CHECK:STDOUT: %ptr.loc14_40: type = ptr_type %DeriveFromi32 [template = constants.%ptr.45c] // CHECK:STDOUT: } // CHECK:STDOUT: %p: %ptr.45c = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.dc3 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.dc3 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %ptr.235 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMemberWithInvalidBasei32.decl: %AccessMemberWithInvalidBasei32.type = fn_decl @AccessMemberWithInvalidBasei32 [template = constants.%AccessMemberWithInvalidBasei32] { // CHECK:STDOUT: %p.patt: %ptr.45c = binding_pattern p @@ -386,7 +386,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc9: %DeriveFromi32.elem = base_decl %i32, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [template = constants.%complete_type.c10] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [template = constants.%complete_type.386] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%DeriveFromi32 @@ -395,13 +395,13 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConvertToBadBasei32(%p.param_patt: %ptr.45c) -> %ptr.dc3 { +// CHECK:STDOUT: fn @ConvertToBadBasei32(%p.param_patt: %ptr.45c) -> %ptr.235 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr.45c = name_ref p, %p // CHECK:STDOUT: %.loc14_61.1: ref %DeriveFromi32 = deref %p.ref // CHECK:STDOUT: %.loc14_61.2: ref %i32 = class_element_access %.loc14_61.1, element0 -// CHECK:STDOUT: %addr: %ptr.dc3 = addr_of %.loc14_61.2 -// CHECK:STDOUT: %.loc14_61.3: %ptr.dc3 = converted %p.ref, %addr +// CHECK:STDOUT: %addr: %ptr.235 = addr_of %.loc14_61.2 +// CHECK:STDOUT: %.loc14_61.3: %ptr.235 = converted %p.ref, %addr // CHECK:STDOUT: return %.loc14_61.3 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -434,8 +434,8 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -534,7 +534,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %ptr.570: type = ptr_type %struct_type.a.b [template] +// CHECK:STDOUT: %ptr.3ee: type = ptr_type %struct_type.a.b [template] // CHECK:STDOUT: %ptr.df0: type = ptr_type %DeriveFromStruct [template] // CHECK:STDOUT: %ConvertToBadBaseStruct.type: type = fn_type @ConvertToBadBaseStruct [template] // CHECK:STDOUT: %ConvertToBadBaseStruct: %ConvertToBadBaseStruct.type = struct_value () [template] @@ -544,8 +544,8 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -563,23 +563,23 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: %ConvertToBadBaseStruct.decl: %ConvertToBadBaseStruct.type = fn_decl @ConvertToBadBaseStruct [template = constants.%ConvertToBadBaseStruct] { // CHECK:STDOUT: %p.patt: %ptr.df0 = binding_pattern p // CHECK:STDOUT: %p.param_patt: %ptr.df0 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.570 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.570 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %ptr.3ee = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.3ee = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc21_57: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc21_57: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc21_66: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc21_66: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b] -// CHECK:STDOUT: %ptr.loc21_70: type = ptr_type %struct_type.a.b [template = constants.%ptr.570] +// CHECK:STDOUT: %ptr.loc21_70: type = ptr_type %struct_type.a.b [template = constants.%ptr.3ee] // CHECK:STDOUT: %p.param: %ptr.df0 = value_param runtime_param0 // CHECK:STDOUT: %.loc21_46: type = splice_block %ptr.loc21_46 [template = constants.%ptr.df0] { // CHECK:STDOUT: %DeriveFromStruct.ref: type = name_ref DeriveFromStruct, file.%DeriveFromStruct.decl [template = constants.%DeriveFromStruct] // CHECK:STDOUT: %ptr.loc21_46: type = ptr_type %DeriveFromStruct [template = constants.%ptr.df0] // CHECK:STDOUT: } // CHECK:STDOUT: %p: %ptr.df0 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.570 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.570 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %ptr.3ee = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.3ee = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMemberWithInvalidBaseStruct.decl: %AccessMemberWithInvalidBaseStruct.type = fn_decl @AccessMemberWithInvalidBaseStruct [template = constants.%AccessMemberWithInvalidBaseStruct] { // CHECK:STDOUT: %p.patt: %ptr.df0 = binding_pattern p @@ -616,10 +616,10 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConvertToBadBaseStruct(%p.param_patt: %ptr.df0) -> %ptr.570 { +// CHECK:STDOUT: fn @ConvertToBadBaseStruct(%p.param_patt: %ptr.df0) -> %ptr.3ee { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr.df0 = name_ref p, %p -// CHECK:STDOUT: %.loc21_82: %ptr.570 = converted %p.ref, [template = ] +// CHECK:STDOUT: %.loc21_82: %ptr.3ee = converted %p.ref, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -648,8 +648,8 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -739,7 +739,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Final.elem: type = unbound_element_type %Final, %i32 [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a [template] // CHECK:STDOUT: %DeriveFromFinal: type = class_type @DeriveFromFinal [template] // CHECK:STDOUT: %DeriveFromFinal.elem: type = unbound_element_type %DeriveFromFinal, %Final [template] // CHECK:STDOUT: %struct_type.base.dae: type = struct_type {.base: %Final} [template] @@ -756,7 +756,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -829,7 +829,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Final { // CHECK:STDOUT: %.loc5: %Final.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Final diff --git a/toolchain/check/testdata/class/fail_base_method_define.carbon b/toolchain/check/testdata/class/fail_base_method_define.carbon index 2fea4fa86ab4..1127c1791343 100644 --- a/toolchain/check/testdata/class/fail_base_method_define.carbon +++ b/toolchain/check/testdata/class/fail_base_method_define.carbon @@ -35,21 +35,21 @@ fn D.C.F() {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %B: type = class_type @B [template] -// CHECK:STDOUT: %F.type.e92: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.d7d: %F.type.e92 = struct_value () [template] +// CHECK:STDOUT: %F.type.8c6: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.92a: %F.type.8c6 = struct_value () [template] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %F.type.d89: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.046: %F.type.d89 = struct_value () [template] +// CHECK:STDOUT: %F.type.b77: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.a5f: %F.type.b77 = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %B [template] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %B} [template] // CHECK:STDOUT: %complete_type.98e: = complete_type_witness %struct_type.base [template] -// CHECK:STDOUT: %F.type.984: type = fn_type @F.3 [template] -// CHECK:STDOUT: %F.e90: %F.type.984 = struct_value () [template] +// CHECK:STDOUT: %F.type.319: type = fn_type @F.3 [template] +// CHECK:STDOUT: %F.34b: %F.type.319 = struct_value () [template] // CHECK:STDOUT: %.type: type = fn_type @.1 [template] -// CHECK:STDOUT: %.e44: %.type = struct_value () [template] +// CHECK:STDOUT: %.0e9: %.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -68,12 +68,12 @@ fn D.C.F() {} // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [template = constants.%D] {} {} -// CHECK:STDOUT: %F.decl: %F.type.984 = fn_decl @F.3 [template = constants.%F.e90] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.e44] {} {} +// CHECK:STDOUT: %F.decl: %F.type.319 = fn_decl @F.3 [template = constants.%F.34b] {} {} +// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.0e9] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { -// CHECK:STDOUT: %F.decl: %F.type.e92 = fn_decl @F.1 [template = constants.%F.d7d] {} {} +// CHECK:STDOUT: %F.decl: %F.type.8c6 = fn_decl @F.1 [template = constants.%F.92a] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: @@ -85,7 +85,7 @@ fn D.C.F() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { -// CHECK:STDOUT: %F.decl: %F.type.d89 = fn_decl @F.2 [template = constants.%F.046] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b77 = fn_decl @F.2 [template = constants.%F.a5f] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/fail_base_misplaced.carbon b/toolchain/check/testdata/class/fail_base_misplaced.carbon index 8b725380b709..383a4ae81b9f 100644 --- a/toolchain/check/testdata/class/fail_base_misplaced.carbon +++ b/toolchain/check/testdata/class/fail_base_misplaced.carbon @@ -42,8 +42,8 @@ class C { // CHECK:STDOUT: %F.type.b25: type = fn_type @F.1 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %F.type.675: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.2c9: %F.type.675 = struct_value () [template] +// CHECK:STDOUT: %F.type.c29: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.437: %F.type.c29 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,7 +76,7 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { -// CHECK:STDOUT: %F.decl: %F.type.675 = fn_decl @F.2 [template = constants.%F.2c9] {} {} +// CHECK:STDOUT: %F.decl: %F.type.c29 = fn_decl @F.2 [template = constants.%F.437] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/fail_compound_type_mismatch.carbon b/toolchain/check/testdata/class/fail_compound_type_mismatch.carbon index be58164fb261..a87ee5c588d0 100644 --- a/toolchain/check/testdata/class/fail_compound_type_mismatch.carbon +++ b/toolchain/check/testdata/class/fail_compound_type_mismatch.carbon @@ -34,19 +34,19 @@ fn AccessBInA(a: A) -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %i32 [template] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %i32} [template] -// CHECK:STDOUT: %complete_type.d62: = complete_type_witness %struct_type.b [template] +// CHECK:STDOUT: %complete_type.ba8: = complete_type_witness %struct_type.b [template] // CHECK:STDOUT: %AccessBInA.type: type = fn_type @AccessBInA [template] // CHECK:STDOUT: %AccessBInA: %AccessBInA.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -80,7 +80,7 @@ fn AccessBInA(a: A) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc12: %A.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -90,7 +90,7 @@ fn AccessBInA(a: A) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @B { // CHECK:STDOUT: %.loc16: %B.elem = field_decl b, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.b [template = constants.%complete_type.d62] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.b [template = constants.%complete_type.ba8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B diff --git a/toolchain/check/testdata/class/fail_derived_to_base.carbon b/toolchain/check/testdata/class/fail_derived_to_base.carbon index b6bfddfa849c..c510f749c7a1 100644 --- a/toolchain/check/testdata/class/fail_derived_to_base.carbon +++ b/toolchain/check/testdata/class/fail_derived_to_base.carbon @@ -48,14 +48,14 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; } // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A1.elem: type = unbound_element_type %A1, %i32 [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a [template] // CHECK:STDOUT: %A2: type = class_type @A2 [template] // CHECK:STDOUT: %A2.elem: type = unbound_element_type %A2, %i32 [template] // CHECK:STDOUT: %B2: type = class_type @B2 [template] // CHECK:STDOUT: %B2.elem.a92: type = unbound_element_type %B2, %A2 [template] -// CHECK:STDOUT: %B2.elem.9b9: type = unbound_element_type %B2, %i32 [template] -// CHECK:STDOUT: %struct_type.base.b.a12: type = struct_type {.base: %A2, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.304: = complete_type_witness %struct_type.base.b.a12 [template] +// CHECK:STDOUT: %B2.elem.4b2: type = unbound_element_type %B2, %i32 [template] +// CHECK:STDOUT: %struct_type.base.b.618: type = struct_type {.base: %A2, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.92f: = complete_type_witness %struct_type.base.b.618 [template] // CHECK:STDOUT: %ptr.afe: type = ptr_type %B2 [template] // CHECK:STDOUT: %ptr.678: type = ptr_type %A1 [template] // CHECK:STDOUT: %ConvertUnrelated.type: type = fn_type @ConvertUnrelated [template] @@ -69,8 +69,8 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -129,7 +129,7 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; } // CHECK:STDOUT: // CHECK:STDOUT: class @A1 { // CHECK:STDOUT: %.loc12: %A1.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A1 @@ -139,7 +139,7 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; } // CHECK:STDOUT: // CHECK:STDOUT: class @A2 { // CHECK:STDOUT: %.loc16: %A2.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A2 @@ -150,8 +150,8 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; } // CHECK:STDOUT: class @B2 { // CHECK:STDOUT: %A2.ref: type = name_ref A2, file.%A2.decl [template = constants.%A2] // CHECK:STDOUT: %.loc20: %B2.elem.a92 = base_decl %A2.ref, element0 [template] -// CHECK:STDOUT: %.loc21: %B2.elem.9b9 = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.b.a12 [template = constants.%complete_type.304] +// CHECK:STDOUT: %.loc21: %B2.elem.4b2 = field_decl b, element1 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.b.618 [template = constants.%complete_type.92f] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B2 diff --git a/toolchain/check/testdata/class/fail_field_modifiers.carbon b/toolchain/check/testdata/class/fail_field_modifiers.carbon index ed1de6fbd501..d3531fc1492f 100644 --- a/toolchain/check/testdata/class/fail_field_modifiers.carbon +++ b/toolchain/check/testdata/class/fail_field_modifiers.carbon @@ -42,25 +42,25 @@ class Class { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %struct_type.j.k: type = struct_type {.j: %i32, .k: %i32} [template] -// CHECK:STDOUT: %complete_type.f45: = complete_type_witness %struct_type.j.k [template] +// CHECK:STDOUT: %complete_type.cf7: = complete_type_witness %struct_type.j.k [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -79,22 +79,22 @@ class Class { // CHECK:STDOUT: %.loc17: %Class.elem = field_decl j, element0 [template] // CHECK:STDOUT: %.loc23: %Class.elem = field_decl k, element1 [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc29: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc29: = bound_method %int_0, %impl.elem0.loc29 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc29: = specific_function %Convert.bound.loc29, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc29: init %i32 = call %Convert.specific_fn.loc29(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc29_25.1: %i32 = value_of_initializer %int.convert_checked.loc29 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc29_25.2: %i32 = converted %int_0, %.loc29_25.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc29: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc29: = bound_method %int_0, %impl.elem0.loc29 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc29: = specific_function %Convert.bound.loc29, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc29: init %i32 = call %Convert.specific_fn.loc29(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc29_25.1: %i32 = value_of_initializer %int.convert_checked.loc29 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc29_25.2: %i32 = converted %int_0, %.loc29_25.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %l: %i32 = bind_name l, %.loc29_25.2 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc34: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc34: = bound_method %int_1, %impl.elem0.loc34 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc34: = specific_function %Convert.bound.loc34, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc34: init %i32 = call %Convert.specific_fn.loc34(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc34_23.1: %i32 = value_of_initializer %int.convert_checked.loc34 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc34_23.2: %i32 = converted %int_1, %.loc34_23.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc34: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc34: = bound_method %int_1, %impl.elem0.loc34 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc34: = specific_function %Convert.bound.loc34, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc34: init %i32 = call %Convert.specific_fn.loc34(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc34_23.1: %i32 = value_of_initializer %int.convert_checked.loc34 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc34_23.2: %i32 = converted %int_1, %.loc34_23.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %m: %i32 = bind_name m, %.loc34_23.2 -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.j.k [template = constants.%complete_type.f45] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.j.k [template = constants.%complete_type.cf7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class diff --git a/toolchain/check/testdata/class/fail_generic_method.carbon b/toolchain/check/testdata/class/fail_generic_method.carbon index 04b1df23c63f..d93a5b1487ef 100644 --- a/toolchain/check/testdata/class/fail_generic_method.carbon +++ b/toolchain/check/testdata/class/fail_generic_method.carbon @@ -39,23 +39,23 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T) [symbolic] // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T} [symbolic] -// CHECK:STDOUT: %complete_type.628: = complete_type_witness %struct_type.a [symbolic] +// CHECK:STDOUT: %complete_type.f1b: = complete_type_witness %struct_type.a [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %.type: type = fn_type @.1 [template] // CHECK:STDOUT: %.d85: %.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -85,7 +85,7 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc32_10.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc32_10.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc32_10.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc32_10.2 (constants.%N.51e)] // CHECK:STDOUT: %self.param: = value_param runtime_param0 // CHECK:STDOUT: %Self.ref: = name_ref Self, [template = ] // CHECK:STDOUT: %self: = bind_name self, %self.param @@ -100,13 +100,13 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %T.patt.loc11_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc11_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc11_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class), @Class.%T.loc11_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: @Class.%T.loc11_13.2 (%T)} [symbolic = %struct_type.a (constants.%struct_type.a)] -// CHECK:STDOUT: %complete_type.loc14_1.2: = complete_type_witness @Class.%struct_type.a (%struct_type.a) [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.628)] +// CHECK:STDOUT: %complete_type.loc14_1.2: = complete_type_witness @Class.%struct_type.a (%struct_type.a) [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.f1b)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %.loc12: @Class.%Class.elem (%Class.elem) = field_decl a, element0 [template] @@ -126,7 +126,7 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %n: @F.%T (%T) = bind_name n, %n.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type.loc14_1.1: = complete_type_witness %struct_type.a [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.628)] +// CHECK:STDOUT: %complete_type.loc14_1.1: = complete_type_witness %struct_type.a [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.f1b)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -144,8 +144,8 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.1(%N.loc32_10.1: %i32) { -// CHECK:STDOUT: %N.loc32_10.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc32_10.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc32_10.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc32_10.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt.8e2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -169,8 +169,8 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(%T.loc11_13.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc32_10.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt => constants.%N.3e4 +// CHECK:STDOUT: specific @.1(constants.%N.51e) { +// CHECK:STDOUT: %N.loc32_10.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_import_misuses.carbon b/toolchain/check/testdata/class/fail_import_misuses.carbon index 886fad833fc6..ff445ead74eb 100644 --- a/toolchain/check/testdata/class/fail_import_misuses.carbon +++ b/toolchain/check/testdata/class/fail_import_misuses.carbon @@ -91,8 +91,8 @@ var a: Incomplete; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.b50: type = import_ref Main//a, Empty, loaded [template = constants.%Empty] -// CHECK:STDOUT: %import_ref.81e: type = import_ref Main//a, Incomplete, loaded [template = constants.%Incomplete] +// CHECK:STDOUT: %import_ref.e6e: type = import_ref Main//a, Empty, loaded [template = constants.%Empty] +// CHECK:STDOUT: %import_ref.9b0: type = import_ref Main//a, Incomplete, loaded [template = constants.%Incomplete] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -103,8 +103,8 @@ var a: Incomplete; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Empty = imports.%import_ref.b50 -// CHECK:STDOUT: .Incomplete = imports.%import_ref.81e +// CHECK:STDOUT: .Empty = imports.%import_ref.e6e +// CHECK:STDOUT: .Incomplete = imports.%import_ref.9b0 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_incomplete.carbon b/toolchain/check/testdata/class/fail_incomplete.carbon index 4d8cf90eb360..5d6bb0f60714 100644 --- a/toolchain/check/testdata/class/fail_incomplete.carbon +++ b/toolchain/check/testdata/class/fail_incomplete.carbon @@ -214,7 +214,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_init.carbon b/toolchain/check/testdata/class/fail_init.carbon index 3ce725237fb1..65fa366c91af 100644 --- a/toolchain/check/testdata/class/fail_init.carbon +++ b/toolchain/check/testdata/class/fail_init.carbon @@ -38,28 +38,28 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: Core.IntLiteral} [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.c: type = struct_type {.a: Core.IntLiteral, .c: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral, .c: Core.IntLiteral} [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -79,7 +79,7 @@ fn F() { // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc12: %Class.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc13: %Class.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -100,14 +100,14 @@ fn F() { // CHECK:STDOUT: %int_2.loc26: Core.IntLiteral = int_value 2 [template = constants.%int_2] // CHECK:STDOUT: %.loc26_18.1: %struct_type.a.c = struct_literal (%int_1.loc26, %int_2.loc26) // CHECK:STDOUT: %Class.ref.loc26: type = name_ref Class, file.%Class.decl [template = constants.%Class] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.loc26, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1.loc26) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc26_18.2: init %i32 = converted %int_1.loc26, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1.loc26) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc26_18.2: init %i32 = converted %int_1.loc26, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc26_18.3: ref %Class = temporary_storage // CHECK:STDOUT: %.loc26_18.4: ref %i32 = class_element_access %.loc26_18.3, element0 -// CHECK:STDOUT: %.loc26_18.5: init %i32 = initialize_from %.loc26_18.2 to %.loc26_18.4 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc26_18.5: init %i32 = initialize_from %.loc26_18.2 to %.loc26_18.4 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc26_18.6: ref %Class = temporary %.loc26_18.3, // CHECK:STDOUT: %.loc26_20: ref %Class = converted %.loc26_18.1, %.loc26_18.6 // CHECK:STDOUT: %int_1.loc30: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] diff --git a/toolchain/check/testdata/class/fail_init_as_inplace.carbon b/toolchain/check/testdata/class/fail_init_as_inplace.carbon index a55346d219ce..98401d1eaf18 100644 --- a/toolchain/check/testdata/class/fail_init_as_inplace.carbon +++ b/toolchain/check/testdata/class/fail_init_as_inplace.carbon @@ -34,8 +34,8 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b.3de [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b.501 [template] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] @@ -44,23 +44,23 @@ fn F() { // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -92,7 +92,7 @@ fn F() { // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc12: %Class.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc13: %Class.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -111,21 +111,21 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc25_33.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [template = constants.%Class] -// CHECK:STDOUT: %impl.elem0.loc25_33.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc25_33.1: = bound_method %int_1, %impl.elem0.loc25_33.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc25_33.1: = specific_function %Convert.bound.loc25_33.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc25_33.1: init %i32 = call %Convert.specific_fn.loc25_33.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc25_33.2: init %i32 = converted %int_1, %int.convert_checked.loc25_33.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc25_33.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc25_33.1: = bound_method %int_1, %impl.elem0.loc25_33.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc25_33.1: = specific_function %Convert.bound.loc25_33.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc25_33.1: init %i32 = call %Convert.specific_fn.loc25_33.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc25_33.2: init %i32 = converted %int_1, %int.convert_checked.loc25_33.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc25_33.3: ref %Class = temporary_storage // CHECK:STDOUT: %.loc25_33.4: ref %i32 = class_element_access %.loc25_33.3, element0 -// CHECK:STDOUT: %.loc25_33.5: init %i32 = initialize_from %.loc25_33.2 to %.loc25_33.4 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc25_33.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc25_33.2: = bound_method %int_2, %impl.elem0.loc25_33.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc25_33.2: = specific_function %Convert.bound.loc25_33.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc25_33.2: init %i32 = call %Convert.specific_fn.loc25_33.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc25_33.6: init %i32 = converted %int_2, %int.convert_checked.loc25_33.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc25_33.5: init %i32 = initialize_from %.loc25_33.2 to %.loc25_33.4 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc25_33.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc25_33.2: = bound_method %int_2, %impl.elem0.loc25_33.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc25_33.2: = specific_function %Convert.bound.loc25_33.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc25_33.2: init %i32 = call %Convert.specific_fn.loc25_33.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc25_33.6: init %i32 = converted %int_2, %int.convert_checked.loc25_33.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc25_33.7: ref %i32 = class_element_access %.loc25_33.3, element1 -// CHECK:STDOUT: %.loc25_33.8: init %i32 = initialize_from %.loc25_33.6 to %.loc25_33.7 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc25_33.8: init %i32 = initialize_from %.loc25_33.6 to %.loc25_33.7 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc25_33.9: init %Class = class_init (%.loc25_33.5, %.loc25_33.8), %.loc25_33.3 [template = constants.%Class.val] // CHECK:STDOUT: %.loc25_33.10: ref %Class = temporary %.loc25_33.3, %.loc25_33.9 // CHECK:STDOUT: %.loc25_35.1: ref %Class = converted %.loc25_33.1, %.loc25_33.10 diff --git a/toolchain/check/testdata/class/fail_memaccess_category.carbon b/toolchain/check/testdata/class/fail_memaccess_category.carbon index cc296ec74441..c4ddb01f28e5 100644 --- a/toolchain/check/testdata/class/fail_memaccess_category.carbon +++ b/toolchain/check/testdata/class/fail_memaccess_category.carbon @@ -43,9 +43,9 @@ fn F(s: {.a: A}, b: B) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %A: type = class_type @A [template] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [template] -// CHECK:STDOUT: %F.type.76a: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.649: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.a9f: %F.type.76a = struct_value () [template] +// CHECK:STDOUT: %F.485: %F.type.649 = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %B: type = class_type @B [template] @@ -92,7 +92,7 @@ fn F(s: {.a: A}, b: B) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A { -// CHECK:STDOUT: %F.decl: %F.type.76a = fn_decl @F.1 [template = constants.%F.a9f] { +// CHECK:STDOUT: %F.decl: %F.type.649 = fn_decl @F.1 [template = constants.%F.485] { // CHECK:STDOUT: %self.patt: %ptr.6db = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.6db = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc12_8: auto = addr_pattern %self.param_patt @@ -128,14 +128,14 @@ fn F(s: {.a: A}, b: B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %s.ref: %struct_type.a.72c = name_ref s, %s // CHECK:STDOUT: %.loc28: %A = struct_access %s.ref, element0 -// CHECK:STDOUT: %F.ref.loc28: %F.type.76a = name_ref F, @A.%F.decl [template = constants.%F.a9f] +// CHECK:STDOUT: %F.ref.loc28: %F.type.649 = name_ref F, @A.%F.decl [template = constants.%F.485] // CHECK:STDOUT: %F.bound.loc28: = bound_method %.loc28, %F.ref.loc28 // CHECK:STDOUT: %F.call.loc28: init %empty_tuple.type = call %F.bound.loc28() // CHECK:STDOUT: %b.ref: %B = name_ref b, %b // CHECK:STDOUT: %a.ref: %B.elem = name_ref a, @B.%.loc16 [template = @B.%.loc16] // CHECK:STDOUT: %.loc38_4.1: ref %A = class_element_access %b.ref, element0 // CHECK:STDOUT: %.loc38_4.2: %A = bind_value %.loc38_4.1 -// CHECK:STDOUT: %F.ref.loc38: %F.type.76a = name_ref F, @A.%F.decl [template = constants.%F.a9f] +// CHECK:STDOUT: %F.ref.loc38: %F.type.649 = name_ref F, @A.%F.decl [template = constants.%F.485] // CHECK:STDOUT: %F.bound.loc38: = bound_method %.loc38_4.2, %F.ref.loc38 // CHECK:STDOUT: %F.call.loc38: init %empty_tuple.type = call %F.bound.loc38() // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/class/fail_member_of_let.carbon b/toolchain/check/testdata/class/fail_member_of_let.carbon index c307a5052b70..5d32c45bd29b 100644 --- a/toolchain/check/testdata/class/fail_member_of_let.carbon +++ b/toolchain/check/testdata/class/fail_member_of_let.carbon @@ -41,7 +41,7 @@ fn T.F() {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_method_modifiers.carbon b/toolchain/check/testdata/class/fail_method_modifiers.carbon index 91ed51ce5a29..c93093563dd7 100644 --- a/toolchain/check/testdata/class/fail_method_modifiers.carbon +++ b/toolchain/check/testdata/class/fail_method_modifiers.carbon @@ -59,8 +59,8 @@ base class BaseClass { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %FinalClass: type = class_type @FinalClass [template] -// CHECK:STDOUT: %Abstract.type.448: type = fn_type @Abstract.1 [template] -// CHECK:STDOUT: %Abstract.13d: %Abstract.type.448 = struct_value () [template] +// CHECK:STDOUT: %Abstract.type.c3e: type = fn_type @Abstract.1 [template] +// CHECK:STDOUT: %Abstract.d21: %Abstract.type.c3e = struct_value () [template] // CHECK:STDOUT: %Virtual.type: type = fn_type @Virtual [template] // CHECK:STDOUT: %Virtual: %Virtual.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] @@ -71,8 +71,8 @@ base class BaseClass { // CHECK:STDOUT: %Final.type: type = fn_type @Final [template] // CHECK:STDOUT: %Final: %Final.type = struct_value () [template] // CHECK:STDOUT: %BaseClass: type = class_type @BaseClass [template] -// CHECK:STDOUT: %Abstract.type.b0f: type = fn_type @Abstract.2 [template] -// CHECK:STDOUT: %Abstract.1de: %Abstract.type.b0f = struct_value () [template] +// CHECK:STDOUT: %Abstract.type.de1: type = fn_type @Abstract.2 [template] +// CHECK:STDOUT: %Abstract.af0: %Abstract.type.de1 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -96,7 +96,7 @@ base class BaseClass { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FinalClass { -// CHECK:STDOUT: %Abstract.decl: %Abstract.type.448 = fn_decl @Abstract.1 [template = constants.%Abstract.13d] { +// CHECK:STDOUT: %Abstract.decl: %Abstract.type.c3e = fn_decl @Abstract.1 [template = constants.%Abstract.d21] { // CHECK:STDOUT: %self.patt: %FinalClass = binding_pattern self // CHECK:STDOUT: %self.param_patt: %FinalClass = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -148,7 +148,7 @@ base class BaseClass { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @BaseClass { -// CHECK:STDOUT: %Abstract.decl: %Abstract.type.b0f = fn_decl @Abstract.2 [template = constants.%Abstract.1de] { +// CHECK:STDOUT: %Abstract.decl: %Abstract.type.de1 = fn_decl @Abstract.2 [template = constants.%Abstract.af0] { // CHECK:STDOUT: %self.patt: %BaseClass = binding_pattern self // CHECK:STDOUT: %self.param_patt: %BaseClass = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/class/fail_redeclaration_scope.carbon b/toolchain/check/testdata/class/fail_redeclaration_scope.carbon index 8990ad0004b2..266b8d6604e9 100644 --- a/toolchain/check/testdata/class/fail_redeclaration_scope.carbon +++ b/toolchain/check/testdata/class/fail_redeclaration_scope.carbon @@ -30,13 +30,13 @@ class Y { // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.466: type = class_type @A.1 [template] // CHECK:STDOUT: %X: type = class_type @X [template] -// CHECK:STDOUT: %A.44f: type = class_type @A.2 [template] -// CHECK:STDOUT: %B.4f0: type = class_type @B.1 [template] +// CHECK:STDOUT: %A.197: type = class_type @A.2 [template] +// CHECK:STDOUT: %B.d5b: type = class_type @B.1 [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %B.491: type = class_type @B.2 [template] +// CHECK:STDOUT: %B.29a: type = class_type @B.2 [template] // CHECK:STDOUT: %Y: type = class_type @Y [template] -// CHECK:STDOUT: %.c44: type = class_type @.1 [template] +// CHECK:STDOUT: %.65d: type = class_type @.1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -61,7 +61,7 @@ class Y { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A.1 { -// CHECK:STDOUT: %B.decl: type = class_decl @B.2 [template = constants.%B.491] {} {} +// CHECK:STDOUT: %B.decl: type = class_decl @B.2 [template = constants.%B.29a] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -71,8 +71,8 @@ class Y { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @X { -// CHECK:STDOUT: %A.decl: type = class_decl @A.2 [template = constants.%A.44f] {} {} -// CHECK:STDOUT: %B.decl: type = class_decl @B.1 [template = constants.%B.4f0] {} {} +// CHECK:STDOUT: %A.decl: type = class_decl @A.2 [template = constants.%A.197] {} {} +// CHECK:STDOUT: %B.decl: type = class_decl @B.1 [template = constants.%B.d5b] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -82,11 +82,11 @@ class Y { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A.2 { -// CHECK:STDOUT: %B.decl: type = class_decl @B.1 [template = constants.%B.4f0] {} {} +// CHECK:STDOUT: %B.decl: type = class_decl @B.1 [template = constants.%B.d5b] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%A.44f +// CHECK:STDOUT: .Self = constants.%A.197 // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } @@ -95,14 +95,14 @@ class Y { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%B.4f0 +// CHECK:STDOUT: .Self = constants.%B.d5b // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B.2; // CHECK:STDOUT: // CHECK:STDOUT: class @Y { -// CHECK:STDOUT: %.decl: type = class_decl @.1 [template = constants.%.c44] {} {} +// CHECK:STDOUT: %.decl: type = class_decl @.1 [template = constants.%.65d] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -114,7 +114,7 @@ class Y { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.c44 +// CHECK:STDOUT: .Self = constants.%.65d // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_redefinition.carbon b/toolchain/check/testdata/class/fail_redefinition.carbon index 6126201dfc1a..661f093e0ccd 100644 --- a/toolchain/check/testdata/class/fail_redefinition.carbon +++ b/toolchain/check/testdata/class/fail_redefinition.carbon @@ -48,21 +48,21 @@ fn Class.I() {} // CHECK:STDOUT: %Class: type = class_type @Class [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %H.type.ba6: type = fn_type @H.1 [template] -// CHECK:STDOUT: %H.9d5: %H.type.ba6 = struct_value () [template] -// CHECK:STDOUT: %I.type.92e: type = fn_type @I.1 [template] -// CHECK:STDOUT: %I.f31: %I.type.92e = struct_value () [template] +// CHECK:STDOUT: %H.type.91d: type = fn_type @H.1 [template] +// CHECK:STDOUT: %H.d38: %H.type.91d = struct_value () [template] +// CHECK:STDOUT: %I.type.2b6: type = fn_type @I.1 [template] +// CHECK:STDOUT: %I.c9a: %I.type.2b6 = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %.a95: type = class_type @.1 [template] -// CHECK:STDOUT: %G.type.aab: type = fn_type @G.1 [template] -// CHECK:STDOUT: %G.c83: %G.type.aab = struct_value () [template] -// CHECK:STDOUT: %H.type.607: type = fn_type @H.2 [template] -// CHECK:STDOUT: %H.f71: %H.type.607 = struct_value () [template] -// CHECK:STDOUT: %I.type.406: type = fn_type @I.2 [template] -// CHECK:STDOUT: %I.f46: %I.type.406 = struct_value () [template] -// CHECK:STDOUT: %G.type.bf5: type = fn_type @G.2 [template] -// CHECK:STDOUT: %G.5fa: %G.type.bf5 = struct_value () [template] +// CHECK:STDOUT: %G.type.bf6: type = fn_type @G.1 [template] +// CHECK:STDOUT: %G.e39: %G.type.bf6 = struct_value () [template] +// CHECK:STDOUT: %H.type.e2f: type = fn_type @H.2 [template] +// CHECK:STDOUT: %H.382: %H.type.e2f = struct_value () [template] +// CHECK:STDOUT: %I.type.b27: type = fn_type @I.2 [template] +// CHECK:STDOUT: %I.a7f: %I.type.b27 = struct_value () [template] +// CHECK:STDOUT: %G.type.621: type = fn_type @G.2 [template] +// CHECK:STDOUT: %G.f0c: %G.type.621 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -81,15 +81,15 @@ fn Class.I() {} // CHECK:STDOUT: %Class.decl: type = class_decl @Class [template = constants.%Class] {} {} // CHECK:STDOUT: %.decl: type = class_decl @.1 [template = constants.%.a95] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} -// CHECK:STDOUT: %G.decl: %G.type.bf5 = fn_decl @G.2 [template = constants.%G.5fa] {} {} -// CHECK:STDOUT: %H.decl: %H.type.ba6 = fn_decl @H.1 [template = constants.%H.9d5] {} {} -// CHECK:STDOUT: %I.decl: %I.type.92e = fn_decl @I.1 [template = constants.%I.f31] {} {} +// CHECK:STDOUT: %G.decl: %G.type.621 = fn_decl @G.2 [template = constants.%G.f0c] {} {} +// CHECK:STDOUT: %H.decl: %H.type.91d = fn_decl @H.1 [template = constants.%H.d38] {} {} +// CHECK:STDOUT: %I.decl: %I.type.2b6 = fn_decl @I.1 [template = constants.%I.c9a] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} -// CHECK:STDOUT: %H.decl: %H.type.ba6 = fn_decl @H.1 [template = constants.%H.9d5] {} {} -// CHECK:STDOUT: %I.decl: %I.type.92e = fn_decl @I.1 [template = constants.%I.f31] {} {} +// CHECK:STDOUT: %H.decl: %H.type.91d = fn_decl @H.1 [template = constants.%H.d38] {} {} +// CHECK:STDOUT: %I.decl: %I.type.2b6 = fn_decl @I.1 [template = constants.%I.c9a] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -102,9 +102,9 @@ fn Class.I() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.1 { -// CHECK:STDOUT: %G.decl: %G.type.aab = fn_decl @G.1 [template = constants.%G.c83] {} {} -// CHECK:STDOUT: %H.decl: %H.type.607 = fn_decl @H.2 [template = constants.%H.f71] {} {} -// CHECK:STDOUT: %I.decl: %I.type.406 = fn_decl @I.2 [template = constants.%I.f46] {} {} +// CHECK:STDOUT: %G.decl: %G.type.bf6 = fn_decl @G.1 [template = constants.%G.e39] {} {} +// CHECK:STDOUT: %H.decl: %H.type.e2f = fn_decl @H.2 [template = constants.%H.382] {} {} +// CHECK:STDOUT: %I.decl: %I.type.b27 = fn_decl @I.2 [template = constants.%I.a7f] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/fail_scope.carbon b/toolchain/check/testdata/class/fail_scope.carbon index 61c591a33533..1567dc72202c 100644 --- a/toolchain/check/testdata/class/fail_scope.carbon +++ b/toolchain/check/testdata/class/fail_scope.carbon @@ -32,21 +32,21 @@ fn G() -> i32 { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -92,12 +92,12 @@ fn G() -> i32 { // CHECK:STDOUT: fn @F() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_13.2: %i32 = converted %int_1, %.loc13_13.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_13.2: %i32 = converted %int_1, %.loc13_13.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc13_13.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_self.carbon b/toolchain/check/testdata/class/fail_self.carbon index db137de0d2e6..2d1b98da0ab7 100644 --- a/toolchain/check/testdata/class/fail_self.carbon +++ b/toolchain/check/testdata/class/fail_self.carbon @@ -59,23 +59,23 @@ fn CallWrongSelf(ws: WrongSelf) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [template] -// CHECK:STDOUT: %F.type.945: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.f1b: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.ffd: %F.type.945 = struct_value () [template] +// CHECK:STDOUT: %F.1f2: %F.type.f1b = struct_value () [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %WrongSelf: type = class_type @WrongSelf [template] -// CHECK:STDOUT: %F.type.bfd: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.283: %F.type.bfd = struct_value () [template] +// CHECK:STDOUT: %F.type.25f: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.3a3: %F.type.25f = struct_value () [template] // CHECK:STDOUT: %CallWrongSelf.type: type = fn_type @CallWrongSelf [template] // CHECK:STDOUT: %CallWrongSelf: %CallWrongSelf.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -90,7 +90,7 @@ fn CallWrongSelf(ws: WrongSelf) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [template = constants.%Class] {} {} -// CHECK:STDOUT: %F.decl: %F.type.945 = fn_decl @F.1 [template = constants.%F.ffd] { +// CHECK:STDOUT: %F.decl: %F.type.f1b = fn_decl @F.1 [template = constants.%F.1f2] { // CHECK:STDOUT: %self.patt: %Class = binding_pattern self // CHECK:STDOUT: %self.param_patt: %Class = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -118,7 +118,7 @@ fn CallWrongSelf(ws: WrongSelf) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { -// CHECK:STDOUT: %F.decl: %F.type.945 = fn_decl @F.1 [template = constants.%F.ffd] { +// CHECK:STDOUT: %F.decl: %F.type.f1b = fn_decl @F.1 [template = constants.%F.1f2] { // CHECK:STDOUT: %self.patt: %Class = binding_pattern self // CHECK:STDOUT: %self.param_patt: %Class = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -144,7 +144,7 @@ fn CallWrongSelf(ws: WrongSelf) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @WrongSelf { -// CHECK:STDOUT: %F.decl: %F.type.bfd = fn_decl @F.2 [template = constants.%F.283] { +// CHECK:STDOUT: %F.decl: %F.type.25f = fn_decl @F.2 [template = constants.%F.3a3] { // CHECK:STDOUT: %self.patt: %Class = binding_pattern self // CHECK:STDOUT: %self.param_patt: %Class = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -179,7 +179,7 @@ fn CallWrongSelf(ws: WrongSelf) { // CHECK:STDOUT: fn @CallWrongSelf(%ws.param_patt: %WrongSelf) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ws.ref: %WrongSelf = name_ref ws, %ws -// CHECK:STDOUT: %F.ref: %F.type.bfd = name_ref F, @WrongSelf.%F.decl [template = constants.%F.283] +// CHECK:STDOUT: %F.ref: %F.type.25f = name_ref F, @WrongSelf.%F.decl [template = constants.%F.3a3] // CHECK:STDOUT: %F.bound: = bound_method %ws.ref, %F.ref // CHECK:STDOUT: %.loc55: %Class = converted %ws.ref, [template = ] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.bound() diff --git a/toolchain/check/testdata/class/fail_todo_local_class.carbon b/toolchain/check/testdata/class/fail_todo_local_class.carbon index a6a875bb71c9..069cae960c22 100644 --- a/toolchain/check/testdata/class/fail_todo_local_class.carbon +++ b/toolchain/check/testdata/class/fail_todo_local_class.carbon @@ -41,24 +41,24 @@ class A { // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %i32 [template] -// CHECK:STDOUT: %struct_type.n.5cd: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n.5cd [template] +// CHECK:STDOUT: %struct_type.n.033: type = struct_type {.n: %i32} [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n.033 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.n.44a: type = struct_type {.n: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %B.val: %B = struct_value (%int_1.c60) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %B.val: %B = struct_value (%int_1.5d2) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -101,7 +101,7 @@ class A { // CHECK:STDOUT: %return: ref %B = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.loc19: %B.elem = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n.5cd [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n.033 [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B @@ -124,13 +124,13 @@ class A { // CHECK:STDOUT: %b: ref %B = bind_name b, %return // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_39.1: %struct_type.n.44a = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_39.2: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_39.2: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc15_39.3: ref %i32 = class_element_access %return, element0 -// CHECK:STDOUT: %.loc15_39.4: init %i32 = initialize_from %.loc15_39.2 to %.loc15_39.3 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc15_39.4: init %i32 = initialize_from %.loc15_39.2 to %.loc15_39.3 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc15_39.5: init %B = class_init (%.loc15_39.4), %return [template = constants.%B.val] // CHECK:STDOUT: %.loc15_40: init %B = converted %.loc15_39.1, %.loc15_39.5 [template = constants.%B.val] // CHECK:STDOUT: assign %return, %.loc15_40 diff --git a/toolchain/check/testdata/class/fail_unbound_field.carbon b/toolchain/check/testdata/class/fail_unbound_field.carbon index 2d73b3886084..066c6b8da169 100644 --- a/toolchain/check/testdata/class/fail_unbound_field.carbon +++ b/toolchain/check/testdata/class/fail_unbound_field.carbon @@ -36,14 +36,14 @@ fn G() -> i32 { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %struct_type.field: type = struct_type {.field: %i32} [template] -// CHECK:STDOUT: %complete_type.4e4: = complete_type_witness %struct_type.field [template] +// CHECK:STDOUT: %complete_type.d48: = complete_type_witness %struct_type.field [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -79,7 +79,7 @@ fn G() -> i32 { // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.field [template = constants.%complete_type.4e4] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.field [template = constants.%complete_type.d48] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class diff --git a/toolchain/check/testdata/class/fail_unknown_member.carbon b/toolchain/check/testdata/class/fail_unknown_member.carbon index 210798840161..9adf05b95c3b 100644 --- a/toolchain/check/testdata/class/fail_unknown_member.carbon +++ b/toolchain/check/testdata/class/fail_unknown_member.carbon @@ -28,14 +28,14 @@ fn G(c: Class) -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -67,7 +67,7 @@ fn G(c: Class) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc12: %Class.elem = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class diff --git a/toolchain/check/testdata/class/field_access.carbon b/toolchain/check/testdata/class/field_access.carbon index 1ba65a07573c..10e15f421482 100644 --- a/toolchain/check/testdata/class/field_access.carbon +++ b/toolchain/check/testdata/class/field_access.carbon @@ -29,27 +29,27 @@ fn Run() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %struct_type.j.k: type = struct_type {.j: %i32, .k: %i32} [template] -// CHECK:STDOUT: %complete_type.f45: = complete_type_witness %struct_type.j.k [template] +// CHECK:STDOUT: %complete_type.cf7: = complete_type_witness %struct_type.j.k [template] // CHECK:STDOUT: %Run.type: type = fn_type @Run [template] // CHECK:STDOUT: %Run: %Run.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -69,7 +69,7 @@ fn Run() { // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc12: %Class.elem = field_decl j, element0 [template] // CHECK:STDOUT: %.loc13: %Class.elem = field_decl k, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.j.k [template = constants.%complete_type.f45] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.j.k [template = constants.%complete_type.cf7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -86,21 +86,21 @@ fn Run() { // CHECK:STDOUT: %j.ref.loc18: %Class.elem = name_ref j, @Class.%.loc12 [template = @Class.%.loc12] // CHECK:STDOUT: %.loc18_4: ref %i32 = class_element_access %c.ref.loc18, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_1, %impl.elem0.loc18 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc18_7: init %i32 = converted %int_1, %int.convert_checked.loc18 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_1, %impl.elem0.loc18 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc18_7: init %i32 = converted %int_1, %int.convert_checked.loc18 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %.loc18_4, %.loc18_7 // CHECK:STDOUT: %c.ref.loc19: ref %Class = name_ref c, %c // CHECK:STDOUT: %k.ref.loc19: %Class.elem = name_ref k, @Class.%.loc13 [template = @Class.%.loc13] // CHECK:STDOUT: %.loc19_4: ref %i32 = class_element_access %c.ref.loc19, element1 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc19: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc19: = bound_method %int_2, %impl.elem0.loc19 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc19: = specific_function %Convert.bound.loc19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %Convert.specific_fn.loc19(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc19_7: init %i32 = converted %int_2, %int.convert_checked.loc19 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc19: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc19: = bound_method %int_2, %impl.elem0.loc19 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc19: = specific_function %Convert.bound.loc19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %Convert.specific_fn.loc19(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc19_7: init %i32 = converted %int_2, %int.convert_checked.loc19 [template = constants.%int_2.ef8] // CHECK:STDOUT: assign %.loc19_4, %.loc19_7 // CHECK:STDOUT: %cj.var: ref %i32 = var cj // CHECK:STDOUT: %cj: ref %i32 = bind_name cj, %cj.var diff --git a/toolchain/check/testdata/class/field_access_in_value.carbon b/toolchain/check/testdata/class/field_access_in_value.carbon index d4b25bfc47c6..19b8917bb10f 100644 --- a/toolchain/check/testdata/class/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field_access_in_value.carbon @@ -30,27 +30,27 @@ fn Test() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %struct_type.j.k: type = struct_type {.j: %i32, .k: %i32} [template] -// CHECK:STDOUT: %complete_type.f45: = complete_type_witness %struct_type.j.k [template] +// CHECK:STDOUT: %complete_type.cf7: = complete_type_witness %struct_type.j.k [template] // CHECK:STDOUT: %Test.type: type = fn_type @Test [template] // CHECK:STDOUT: %Test: %Test.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -70,7 +70,7 @@ fn Test() { // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc12: %Class.elem = field_decl j, element0 [template] // CHECK:STDOUT: %.loc13: %Class.elem = field_decl k, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.j.k [template = constants.%complete_type.f45] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.j.k [template = constants.%complete_type.cf7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -87,21 +87,21 @@ fn Test() { // CHECK:STDOUT: %j.ref.loc18: %Class.elem = name_ref j, @Class.%.loc12 [template = @Class.%.loc12] // CHECK:STDOUT: %.loc18_5: ref %i32 = class_element_access %cv.ref.loc18, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_1, %impl.elem0.loc18 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc18_8: init %i32 = converted %int_1, %int.convert_checked.loc18 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_1, %impl.elem0.loc18 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc18_8: init %i32 = converted %int_1, %int.convert_checked.loc18 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %.loc18_5, %.loc18_8 // CHECK:STDOUT: %cv.ref.loc19: ref %Class = name_ref cv, %cv // CHECK:STDOUT: %k.ref.loc19: %Class.elem = name_ref k, @Class.%.loc13 [template = @Class.%.loc13] // CHECK:STDOUT: %.loc19_5: ref %i32 = class_element_access %cv.ref.loc19, element1 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc19: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc19: = bound_method %int_2, %impl.elem0.loc19 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc19: = specific_function %Convert.bound.loc19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %Convert.specific_fn.loc19(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc19_8: init %i32 = converted %int_2, %int.convert_checked.loc19 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc19: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc19: = bound_method %int_2, %impl.elem0.loc19 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc19: = specific_function %Convert.bound.loc19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %Convert.specific_fn.loc19(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc19_8: init %i32 = converted %int_2, %int.convert_checked.loc19 [template = constants.%int_2.ef8] // CHECK:STDOUT: assign %.loc19_5, %.loc19_8 // CHECK:STDOUT: %cv.ref.loc20: ref %Class = name_ref cv, %cv // CHECK:STDOUT: %.loc20: %Class = bind_value %cv.ref.loc20 diff --git a/toolchain/check/testdata/class/generic/adapt.carbon b/toolchain/check/testdata/class/generic/adapt.carbon index a22c6a3691e4..a33eb73c29cd 100644 --- a/toolchain/check/testdata/class/generic/adapt.carbon +++ b/toolchain/check/testdata/class/generic/adapt.carbon @@ -127,27 +127,27 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %C.elem.5ab: type = unbound_element_type %C.37e, %T [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %C.elem.66c: type = unbound_element_type %C.f2e, %T [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x.2ac [symbolic] // CHECK:STDOUT: %Adapter: type = class_type @Adapter [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %C.268: type = class_type @C, @C(%i32) [template] +// CHECK:STDOUT: %C.98a: type = class_type @C, @C(%i32) [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %C.elem.dd4: type = unbound_element_type %C.268, %i32 [template] -// CHECK:STDOUT: %struct_type.x.b74: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x.b74 [template] +// CHECK:STDOUT: %C.elem.476: type = unbound_element_type %C.98a, %i32 [template] +// CHECK:STDOUT: %struct_type.x.ed6: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x.ed6 [template] // CHECK:STDOUT: %Access.type: type = fn_type @Access [template] // CHECK:STDOUT: %Access: %Access.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -190,18 +190,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_9.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T.loc4_9.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.2) [symbolic = %C (constants.%C.37e)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.37e), @C.%T.loc4_9.2 (%T) [symbolic = %C.elem (constants.%C.elem.5ab)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc4_9.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @C.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T.loc4_9.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.2) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.f2e), @C.%T.loc4_9.2 (%T) [symbolic = %C.elem (constants.%C.elem.66c)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc4_9.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @C.%struct_type.x (%struct_type.x.2ac) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.5ab) = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.710 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.66c) = field_decl x, element0 [template] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.2ac [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: } @@ -211,9 +211,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.268] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.98a] // CHECK:STDOUT: adapt_decl %C [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.b74 [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.ed6 [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Adapter @@ -226,10 +226,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.268] -// CHECK:STDOUT: %.loc13_13.1: %C.268 = as_compatible %a.ref -// CHECK:STDOUT: %.loc13_13.2: %C.268 = converted %a.ref, %.loc13_13.1 -// CHECK:STDOUT: %x.ref: %C.elem.dd4 = name_ref x, @C.%.loc5 [template = @C.%.loc5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.98a] +// CHECK:STDOUT: %.loc13_13.1: %C.98a = as_compatible %a.ref +// CHECK:STDOUT: %.loc13_13.2: %C.98a = converted %a.ref, %.loc13_13.1 +// CHECK:STDOUT: %x.ref: %C.elem.476 = name_ref x, @C.%.loc5 [template = @C.%.loc5] // CHECK:STDOUT: %.loc13_23.1: ref %i32 = class_element_access %.loc13_13.2, element0 // CHECK:STDOUT: %.loc13_23.2: %i32 = bind_value %.loc13_23.1 // CHECK:STDOUT: return %.loc13_23.2 @@ -248,10 +248,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.268 -// CHECK:STDOUT: %C.elem => constants.%C.elem.dd4 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.b74 -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.f6d +// CHECK:STDOUT: %C => constants.%C.98a +// CHECK:STDOUT: %C.elem => constants.%C.elem.476 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.ed6 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_adapt_specific_type.carbon @@ -263,43 +263,43 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] -// CHECK:STDOUT: %C.df4: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x.2ac [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %C.3f8: type = class_type @C, @C(%i32) [template] -// CHECK:STDOUT: %struct_type.x.6d6: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.555: = complete_type_witness %struct_type.x.6d6 [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %C.elem.0d5: type = unbound_element_type %C.df4, %T [symbolic] +// CHECK:STDOUT: %C.239: type = class_type @C, @C(%i32) [template] +// CHECK:STDOUT: %struct_type.x.767: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.c07: = complete_type_witness %struct_type.x.767 [template] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %C.elem.66c: type = unbound_element_type %C.f2e, %T [symbolic] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %C.elem.f99: type = unbound_element_type %C.3f8, %i32 [template] +// CHECK:STDOUT: %C.elem.ed6: type = unbound_element_type %C.239, %i32 [template] // CHECK:STDOUT: %ImportedAccess.type: type = fn_type @ImportedAccess [template] // CHECK:STDOUT: %ImportedAccess: %ImportedAccess.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.26e: %C.type = import_ref Main//adapt_specific_type, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.abc: type = import_ref Main//adapt_specific_type, Adapter, loaded [template = constants.%Adapter] -// CHECK:STDOUT: %import_ref.92d = import_ref Main//adapt_specific_type, Access, unloaded +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Main//adapt_specific_type, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.c01: type = import_ref Main//adapt_specific_type, Adapter, loaded [template = constants.%Adapter] +// CHECK:STDOUT: %import_ref.baa = import_ref Main//adapt_specific_type, Access, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 +// CHECK:STDOUT: .Int = %import_ref.2c8 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.3ee: = import_ref Main//adapt_specific_type, loc6_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.60a)] -// CHECK:STDOUT: %import_ref.495 = import_ref Main//adapt_specific_type, inst27 [no loc], unloaded -// CHECK:STDOUT: %import_ref.ec6: @C.%C.elem (%C.elem.0d5) = import_ref Main//adapt_specific_type, loc5_8, loaded [template = %.8d2] -// CHECK:STDOUT: %import_ref.377: = import_ref Main//adapt_specific_type, loc10_1, loaded [template = constants.%complete_type.555] +// CHECK:STDOUT: %import_ref.b5f: = import_ref Main//adapt_specific_type, loc6_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.433)] +// CHECK:STDOUT: %import_ref.4c0 = import_ref Main//adapt_specific_type, inst27 [no loc], unloaded +// CHECK:STDOUT: %import_ref.262: @C.%C.elem (%C.elem.66c) = import_ref Main//adapt_specific_type, loc5_8, loaded [template = %.22b] +// CHECK:STDOUT: %import_ref.709: = import_ref Main//adapt_specific_type, loc10_1, loaded [template = constants.%complete_type.c07] // CHECK:STDOUT: %import_ref.feb = import_ref Main//adapt_specific_type, inst42 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.26e -// CHECK:STDOUT: .Adapter = imports.%import_ref.abc -// CHECK:STDOUT: .Access = imports.%import_ref.92d +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .Adapter = imports.%import_ref.c01 +// CHECK:STDOUT: .Access = imports.%import_ref.baa // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .ImportedAccess = %ImportedAccess.decl // CHECK:STDOUT: } @@ -314,7 +314,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %int_32.loc6: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %a.param: %Adapter = value_param runtime_param0 -// CHECK:STDOUT: %Adapter.ref: type = name_ref Adapter, imports.%import_ref.abc [template = constants.%Adapter] +// CHECK:STDOUT: %Adapter.ref: type = name_ref Adapter, imports.%import_ref.c01 [template = constants.%Adapter] // CHECK:STDOUT: %a: %Adapter = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param @@ -324,7 +324,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: class @Adapter [from "adapt_specific_type.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.feb -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.377 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.709 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(constants.%T: type) [from "adapt_specific_type.carbon"] { @@ -332,30 +332,30 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.df4)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.df4), @C.%T (%T) [symbolic = %C.elem (constants.%C.elem.0d5)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type: = complete_type_witness @C.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.f2e), @C.%T (%T) [symbolic = %C.elem (constants.%C.elem.66c)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %complete_type: = complete_type_witness @C.%struct_type.x (%struct_type.x.2ac) [symbolic = %complete_type (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.495 -// CHECK:STDOUT: .x = imports.%import_ref.ec6 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.3ee +// CHECK:STDOUT: .Self = imports.%import_ref.4c0 +// CHECK:STDOUT: .x = imports.%import_ref.262 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.b5f // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ImportedAccess(%a.param_patt: %Adapter) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %Adapter = name_ref a, %a -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.26e [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.bb9 [template = constants.%C.generic] // CHECK:STDOUT: %int_32.loc7: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc7: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.3f8] -// CHECK:STDOUT: %.loc7_13.1: %C.3f8 = as_compatible %a.ref -// CHECK:STDOUT: %.loc7_13.2: %C.3f8 = converted %a.ref, %.loc7_13.1 -// CHECK:STDOUT: %x.ref: %C.elem.f99 = name_ref x, imports.%import_ref.ec6 [template = imports.%.8d2] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.239] +// CHECK:STDOUT: %.loc7_13.1: %C.239 = as_compatible %a.ref +// CHECK:STDOUT: %.loc7_13.2: %C.239 = converted %a.ref, %.loc7_13.1 +// CHECK:STDOUT: %x.ref: %C.elem.ed6 = name_ref x, imports.%import_ref.262 [template = imports.%.22b] // CHECK:STDOUT: %.loc7_23.1: ref %i32 = class_element_access %.loc7_13.2, element0 // CHECK:STDOUT: %.loc7_23.2: %i32 = bind_value %.loc7_23.1 // CHECK:STDOUT: return %.loc7_23.2 @@ -372,10 +372,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.3f8 -// CHECK:STDOUT: %C.elem => constants.%C.elem.f99 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.6d6 -// CHECK:STDOUT: %complete_type => constants.%complete_type.555 +// CHECK:STDOUT: %C => constants.%C.239 +// CHECK:STDOUT: %C.elem => constants.%C.elem.ed6 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.767 +// CHECK:STDOUT: %complete_type => constants.%complete_type.c07 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(%T) {} @@ -387,28 +387,28 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %C.elem.5ab: type = unbound_element_type %C.37e, %T [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %C.elem.66c: type = unbound_element_type %C.f2e, %T [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x.2ac [symbolic] // CHECK:STDOUT: %Adapter: type = class_type @Adapter [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %C.268: type = class_type @C, @C(%i32) [template] +// CHECK:STDOUT: %C.98a: type = class_type @C, @C(%i32) [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %C.elem.dd4: type = unbound_element_type %C.268, %i32 [template] -// CHECK:STDOUT: %struct_type.x.b74: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x.b74 [template] +// CHECK:STDOUT: %C.elem.476: type = unbound_element_type %C.98a, %i32 [template] +// CHECK:STDOUT: %struct_type.x.ed6: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x.ed6 [template] // CHECK:STDOUT: %Access.type: type = fn_type @Access [template] // CHECK:STDOUT: %Access: %Access.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -451,18 +451,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_9.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T.loc4_9.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.2) [symbolic = %C (constants.%C.37e)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.37e), @C.%T.loc4_9.2 (%T) [symbolic = %C.elem (constants.%C.elem.5ab)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc4_9.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @C.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T.loc4_9.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.2) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.f2e), @C.%T.loc4_9.2 (%T) [symbolic = %C.elem (constants.%C.elem.66c)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc4_9.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @C.%struct_type.x (%struct_type.x.2ac) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.5ab) = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.710 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.66c) = field_decl x, element0 [template] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.2ac [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: } @@ -472,9 +472,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.268] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.98a] // CHECK:STDOUT: adapt_decl %C [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.b74 [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.ed6 [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Adapter @@ -485,8 +485,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: fn @Access(%a.param_patt: %Adapter) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %Adapter = name_ref a, %a -// CHECK:STDOUT: %x.ref: %C.elem.dd4 = name_ref x, @C.%.loc5 [template = @C.%.loc5] -// CHECK:STDOUT: %.loc21_11.1: %C.268 = converted %a.ref, [template = ] +// CHECK:STDOUT: %x.ref: %C.elem.476 = name_ref x, @C.%.loc5 [template = @C.%.loc5] +// CHECK:STDOUT: %.loc21_11.1: %C.98a = converted %a.ref, [template = ] // CHECK:STDOUT: %.loc21_11.2: %i32 = class_element_access , element0 [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -504,10 +504,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.268 -// CHECK:STDOUT: %C.elem => constants.%C.elem.dd4 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.b74 -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.f6d +// CHECK:STDOUT: %C => constants.%C.98a +// CHECK:STDOUT: %C.elem => constants.%C.elem.476 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.ed6 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- extend_adapt_specific_type_library.carbon @@ -517,25 +517,25 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %C.elem.5ab: type = unbound_element_type %C.37e, %T [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %C.elem.66c: type = unbound_element_type %C.f2e, %T [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x.2ac [symbolic] // CHECK:STDOUT: %Adapter: type = class_type @Adapter [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %C.268: type = class_type @C, @C(%i32) [template] +// CHECK:STDOUT: %C.98a: type = class_type @C, @C(%i32) [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %C.elem.dd4: type = unbound_element_type %C.268, %i32 [template] -// CHECK:STDOUT: %struct_type.x.b74: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x.b74 [template] +// CHECK:STDOUT: %C.elem.476: type = unbound_element_type %C.98a, %i32 [template] +// CHECK:STDOUT: %struct_type.x.ed6: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x.ed6 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -563,18 +563,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt.loc7_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_9.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T.loc7_9.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc7_9.2) [symbolic = %C (constants.%C.37e)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.37e), @C.%T.loc7_9.2 (%T) [symbolic = %C.elem (constants.%C.elem.5ab)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc7_9.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type.loc9_1.2: = complete_type_witness @C.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type.loc9_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T.loc7_9.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc7_9.2) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.f2e), @C.%T.loc7_9.2 (%T) [symbolic = %C.elem (constants.%C.elem.66c)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc7_9.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %complete_type.loc9_1.2: = complete_type_witness @C.%struct_type.x (%struct_type.x.2ac) [symbolic = %complete_type.loc9_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc8: @C.%C.elem (%C.elem.5ab) = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type.loc9_1.1: = complete_type_witness %struct_type.x.710 [symbolic = %complete_type.loc9_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %.loc8: @C.%C.elem (%C.elem.66c) = field_decl x, element0 [template] +// CHECK:STDOUT: %complete_type.loc9_1.1: = complete_type_witness %struct_type.x.2ac [symbolic = %complete_type.loc9_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: .x = %.loc8 // CHECK:STDOUT: complete_type_witness = %complete_type.loc9_1.1 // CHECK:STDOUT: } @@ -584,9 +584,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.268] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.98a] // CHECK:STDOUT: adapt_decl %C [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.b74 [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.ed6 [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Adapter @@ -607,10 +607,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.268 -// CHECK:STDOUT: %C.elem => constants.%C.elem.dd4 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.b74 -// CHECK:STDOUT: %complete_type.loc9_1.2 => constants.%complete_type.f6d +// CHECK:STDOUT: %C => constants.%C.98a +// CHECK:STDOUT: %C.elem => constants.%C.elem.476 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.ed6 +// CHECK:STDOUT: %complete_type.loc9_1.2 => constants.%complete_type.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_import_extend_adapt_specific_type.carbon @@ -620,43 +620,43 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] -// CHECK:STDOUT: %C.df4: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x.2ac [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %C.3f8: type = class_type @C, @C(%i32) [template] -// CHECK:STDOUT: %struct_type.x.6d6: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.555: = complete_type_witness %struct_type.x.6d6 [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %C.elem.0d5: type = unbound_element_type %C.df4, %T [symbolic] +// CHECK:STDOUT: %C.239: type = class_type @C, @C(%i32) [template] +// CHECK:STDOUT: %struct_type.x.767: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.c07: = complete_type_witness %struct_type.x.767 [template] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %C.elem.66c: type = unbound_element_type %C.f2e, %T [symbolic] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %C.elem.f99: type = unbound_element_type %C.3f8, %i32 [template] +// CHECK:STDOUT: %C.elem.ed6: type = unbound_element_type %C.239, %i32 [template] // CHECK:STDOUT: %ImportedAccess.type: type = fn_type @ImportedAccess [template] // CHECK:STDOUT: %ImportedAccess: %ImportedAccess.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.2081 = import_ref Main//extend_adapt_specific_type_library, C, unloaded -// CHECK:STDOUT: %import_ref.abc: type = import_ref Main//extend_adapt_specific_type_library, Adapter, loaded [template = constants.%Adapter] +// CHECK:STDOUT: %import_ref.148 = import_ref Main//extend_adapt_specific_type_library, C, unloaded +// CHECK:STDOUT: %import_ref.c01: type = import_ref Main//extend_adapt_specific_type_library, Adapter, loaded [template = constants.%Adapter] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.2c8 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.3ee: = import_ref Main//extend_adapt_specific_type_library, loc9_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.60a)] -// CHECK:STDOUT: %import_ref.495 = import_ref Main//extend_adapt_specific_type_library, inst27 [no loc], unloaded -// CHECK:STDOUT: %import_ref.ec6: @C.%C.elem (%C.elem.0d5) = import_ref Main//extend_adapt_specific_type_library, loc8_8, loaded [template = %.8d2] -// CHECK:STDOUT: %import_ref.377: = import_ref Main//extend_adapt_specific_type_library, loc13_1, loaded [template = constants.%complete_type.555] +// CHECK:STDOUT: %import_ref.b5f: = import_ref Main//extend_adapt_specific_type_library, loc9_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.433)] +// CHECK:STDOUT: %import_ref.4c0 = import_ref Main//extend_adapt_specific_type_library, inst27 [no loc], unloaded +// CHECK:STDOUT: %import_ref.262: @C.%C.elem (%C.elem.66c) = import_ref Main//extend_adapt_specific_type_library, loc8_8, loaded [template = %.22b] +// CHECK:STDOUT: %import_ref.709: = import_ref Main//extend_adapt_specific_type_library, loc13_1, loaded [template = constants.%complete_type.c07] // CHECK:STDOUT: %import_ref.feb = import_ref Main//extend_adapt_specific_type_library, inst42 [no loc], unloaded -// CHECK:STDOUT: %import_ref.f9d349.2: type = import_ref Main//extend_adapt_specific_type_library, loc12_21, loaded [template = constants.%C.3f8] +// CHECK:STDOUT: %import_ref.19d12e.2: type = import_ref Main//extend_adapt_specific_type_library, loc12_21, loaded [template = constants.%C.239] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.2081 -// CHECK:STDOUT: .Adapter = imports.%import_ref.abc +// CHECK:STDOUT: .C = imports.%import_ref.148 +// CHECK:STDOUT: .Adapter = imports.%import_ref.c01 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .ImportedAccess = %ImportedAccess.decl // CHECK:STDOUT: } @@ -671,7 +671,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %a.param: %Adapter = value_param runtime_param0 -// CHECK:STDOUT: %Adapter.ref: type = name_ref Adapter, imports.%import_ref.abc [template = constants.%Adapter] +// CHECK:STDOUT: %Adapter.ref: type = name_ref Adapter, imports.%import_ref.c01 [template = constants.%Adapter] // CHECK:STDOUT: %a: %Adapter = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param @@ -681,8 +681,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: class @Adapter [from "extend_adapt_specific_type_library.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.feb -// CHECK:STDOUT: extend imports.%import_ref.f9d349.2 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.377 +// CHECK:STDOUT: extend imports.%import_ref.19d12e.2 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.709 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(constants.%T: type) [from "extend_adapt_specific_type_library.carbon"] { @@ -690,25 +690,25 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.df4)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.df4), @C.%T (%T) [symbolic = %C.elem (constants.%C.elem.0d5)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type: = complete_type_witness @C.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @C.%T (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.f2e), @C.%T (%T) [symbolic = %C.elem (constants.%C.elem.66c)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %complete_type: = complete_type_witness @C.%struct_type.x (%struct_type.x.2ac) [symbolic = %complete_type (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.495 -// CHECK:STDOUT: .x = imports.%import_ref.ec6 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.3ee +// CHECK:STDOUT: .Self = imports.%import_ref.4c0 +// CHECK:STDOUT: .x = imports.%import_ref.262 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.b5f // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ImportedAccess(%a.param_patt: %Adapter) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %Adapter = name_ref a, %a -// CHECK:STDOUT: %x.ref: %C.elem.f99 = name_ref x, imports.%import_ref.ec6 [template = imports.%.8d2] -// CHECK:STDOUT: %.loc14_11.1: %C.3f8 = converted %a.ref, [template = ] +// CHECK:STDOUT: %x.ref: %C.elem.ed6 = name_ref x, imports.%import_ref.262 [template = imports.%.22b] +// CHECK:STDOUT: %.loc14_11.1: %C.239 = converted %a.ref, [template = ] // CHECK:STDOUT: %.loc14_11.2: %i32 = class_element_access , element0 [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -724,10 +724,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.3f8 -// CHECK:STDOUT: %C.elem => constants.%C.elem.f99 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.6d6 -// CHECK:STDOUT: %complete_type => constants.%complete_type.555 +// CHECK:STDOUT: %C => constants.%C.239 +// CHECK:STDOUT: %C.elem => constants.%C.elem.ed6 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.767 +// CHECK:STDOUT: %complete_type => constants.%complete_type.c07 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(%T) {} @@ -739,22 +739,22 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Adapter.type: type = generic_class_type @Adapter [template] // CHECK:STDOUT: %Adapter.generic: %Adapter.type = struct_value () [template] -// CHECK:STDOUT: %Adapter.f46: type = class_type @Adapter, @Adapter(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %complete_type.27d: = complete_type_witness %T [symbolic] +// CHECK:STDOUT: %Adapter.0e3: type = class_type @Adapter, @Adapter(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %complete_type.f87: = complete_type_witness %T [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Adapter.1d5: type = class_type @Adapter, @Adapter(%i32) [template] +// CHECK:STDOUT: %Adapter.e4c: type = class_type @Adapter, @Adapter(%i32) [template] // CHECK:STDOUT: %Convert.type: type = fn_type @Convert [template] // CHECK:STDOUT: %Convert: %Convert.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %complete_type.d0d: = complete_type_witness %i32 [template] +// CHECK:STDOUT: %complete_type.1eb: = complete_type_witness %i32 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -775,21 +775,21 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Convert.decl: %Convert.type = fn_decl @Convert [template = constants.%Convert] { -// CHECK:STDOUT: %a.patt: %Adapter.1d5 = binding_pattern a -// CHECK:STDOUT: %a.param_patt: %Adapter.1d5 = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: %Adapter.e4c = binding_pattern a +// CHECK:STDOUT: %a.param_patt: %Adapter.e4c = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc8_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc8_32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %a.param: %Adapter.1d5 = value_param runtime_param0 -// CHECK:STDOUT: %.loc8: type = splice_block %Adapter [template = constants.%Adapter.1d5] { +// CHECK:STDOUT: %a.param: %Adapter.e4c = value_param runtime_param0 +// CHECK:STDOUT: %.loc8: type = splice_block %Adapter [template = constants.%Adapter.e4c] { // CHECK:STDOUT: %Adapter.ref: %Adapter.type = name_ref Adapter, file.%Adapter.decl [template = constants.%Adapter.generic] // CHECK:STDOUT: %int_32.loc8_23: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc8_23: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%i32) [template = constants.%Adapter.1d5] +// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%i32) [template = constants.%Adapter.e4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %Adapter.1d5 = bind_name a, %a.param +// CHECK:STDOUT: %a: %Adapter.e4c = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -800,23 +800,23 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_15.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_15.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Adapter.%T.loc4_15.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Adapter.%T.loc4_15.2 (%T) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.27d)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Adapter.%T.loc4_15.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Adapter.%T.loc4_15.2 (%T) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: adapt_decl %T.ref [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %T [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.27d)] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %T [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Adapter.f46 +// CHECK:STDOUT: .Self = constants.%Adapter.0e3 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert(%a.param_patt: %Adapter.1d5) -> %i32 { +// CHECK:STDOUT: fn @Convert(%a.param_patt: %Adapter.e4c) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %Adapter.1d5 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %Adapter.e4c = name_ref a, %a // CHECK:STDOUT: %int_32.loc9: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc9: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc9_12.1: %i32 = as_compatible %a.ref @@ -835,7 +835,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.d0d +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.1eb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_adapt_generic_type.carbon @@ -844,43 +844,43 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Adapter.type: type = generic_class_type @Adapter [template] // CHECK:STDOUT: %Adapter.generic: %Adapter.type = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %complete_type.27d: = complete_type_witness %T [symbolic] +// CHECK:STDOUT: %complete_type.f87: = complete_type_witness %T [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Adapter.070: type = class_type @Adapter, @Adapter(%i32) [template] +// CHECK:STDOUT: %Adapter.e4c: type = class_type @Adapter, @Adapter(%i32) [template] // CHECK:STDOUT: %ImportedConvert.type: type = fn_type @ImportedConvert [template] // CHECK:STDOUT: %ImportedConvert: %ImportedConvert.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %complete_type.d0d: = complete_type_witness %i32 [template] +// CHECK:STDOUT: %complete_type.1eb: = complete_type_witness %i32 [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] -// CHECK:STDOUT: %Adapter.e9c: type = class_type @Adapter, @Adapter(%C) [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %Adapter.58f: type = class_type @Adapter, @Adapter(%C) [template] // CHECK:STDOUT: %ImportedConvertLocal.type: type = fn_type @ImportedConvertLocal [template] // CHECK:STDOUT: %ImportedConvertLocal: %ImportedConvertLocal.type = struct_value () [template] // CHECK:STDOUT: %complete_type.af2: = complete_type_witness %C [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.ff3: %Adapter.type = import_ref Main//adapt_generic_type, Adapter, loaded [template = constants.%Adapter.generic] -// CHECK:STDOUT: %import_ref.00e = import_ref Main//adapt_generic_type, Convert, unloaded +// CHECK:STDOUT: %import_ref.bb5: %Adapter.type = import_ref Main//adapt_generic_type, Adapter, loaded [template = constants.%Adapter.generic] +// CHECK:STDOUT: %import_ref.339 = import_ref Main//adapt_generic_type, Convert, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.115: = import_ref Main//adapt_generic_type, loc6_1, loaded [symbolic = @Adapter.%complete_type (constants.%complete_type.27d)] -// CHECK:STDOUT: %import_ref.a89 = import_ref Main//adapt_generic_type, inst27 [no loc], unloaded +// CHECK:STDOUT: %import_ref.fb3: = import_ref Main//adapt_generic_type, loc6_1, loaded [symbolic = @Adapter.%complete_type (constants.%complete_type.f87)] +// CHECK:STDOUT: %import_ref.9a3 = import_ref Main//adapt_generic_type, inst27 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Adapter = imports.%import_ref.ff3 -// CHECK:STDOUT: .Convert = imports.%import_ref.00e +// CHECK:STDOUT: .Adapter = imports.%import_ref.bb5 +// CHECK:STDOUT: .Convert = imports.%import_ref.339 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .ImportedConvert = %ImportedConvert.decl // CHECK:STDOUT: .C = %C.decl @@ -889,40 +889,40 @@ 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 [template = constants.%ImportedConvert] { -// CHECK:STDOUT: %a.patt: %Adapter.070 = binding_pattern a -// CHECK:STDOUT: %a.param_patt: %Adapter.070 = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: %Adapter.e4c = binding_pattern a +// CHECK:STDOUT: %a.param_patt: %Adapter.e4c = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc6_40: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_40: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %a.param: %Adapter.070 = value_param runtime_param0 -// CHECK:STDOUT: %.loc6: type = splice_block %Adapter [template = constants.%Adapter.070] { -// CHECK:STDOUT: %Adapter.ref: %Adapter.type = name_ref Adapter, imports.%import_ref.ff3 [template = constants.%Adapter.generic] +// CHECK:STDOUT: %a.param: %Adapter.e4c = value_param runtime_param0 +// CHECK:STDOUT: %.loc6: type = splice_block %Adapter [template = constants.%Adapter.e4c] { +// CHECK:STDOUT: %Adapter.ref: %Adapter.type = name_ref Adapter, imports.%import_ref.bb5 [template = constants.%Adapter.generic] // CHECK:STDOUT: %int_32.loc6_31: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_31: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%i32) [template = constants.%Adapter.070] +// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%i32) [template = constants.%Adapter.e4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %Adapter.070 = bind_name a, %a.param +// CHECK:STDOUT: %a: %Adapter.e4c = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %ImportedConvertLocal.decl: %ImportedConvertLocal.type = fn_decl @ImportedConvertLocal [template = constants.%ImportedConvertLocal] { -// CHECK:STDOUT: %a.patt: %Adapter.e9c = binding_pattern a -// CHECK:STDOUT: %a.param_patt: %Adapter.e9c = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: %Adapter.58f = binding_pattern a +// CHECK:STDOUT: %a.param_patt: %Adapter.58f = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %a.param: %Adapter.e9c = value_param runtime_param0 -// CHECK:STDOUT: %.loc14: type = splice_block %Adapter [template = constants.%Adapter.e9c] { -// CHECK:STDOUT: %Adapter.ref: %Adapter.type = name_ref Adapter, imports.%import_ref.ff3 [template = constants.%Adapter.generic] +// CHECK:STDOUT: %a.param: %Adapter.58f = value_param runtime_param0 +// CHECK:STDOUT: %.loc14: type = splice_block %Adapter [template = constants.%Adapter.58f] { +// CHECK:STDOUT: %Adapter.ref: %Adapter.type = name_ref Adapter, imports.%import_ref.bb5 [template = constants.%Adapter.generic] // CHECK:STDOUT: %C.ref.loc14: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%C) [template = constants.%Adapter.e9c] +// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%C) [template = constants.%Adapter.58f] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %Adapter.e9c = bind_name a, %a.param +// CHECK:STDOUT: %a: %Adapter.58f = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -933,19 +933,19 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Adapter.%T (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %complete_type: = complete_type_witness @Adapter.%T (%T) [symbolic = %complete_type (constants.%complete_type.27d)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Adapter.%T (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %complete_type: = complete_type_witness @Adapter.%T (%T) [symbolic = %complete_type (constants.%complete_type.f87)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.a89 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.115 +// CHECK:STDOUT: .Self = imports.%import_ref.9a3 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.fb3 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc11: %C.elem = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C @@ -953,9 +953,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ImportedConvert(%a.param_patt: %Adapter.070) -> %i32 { +// CHECK:STDOUT: fn @ImportedConvert(%a.param_patt: %Adapter.e4c) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %Adapter.070 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %Adapter.e4c = name_ref a, %a // CHECK:STDOUT: %int_32.loc7: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc7: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc7_12.1: %i32 = as_compatible %a.ref @@ -963,9 +963,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: return %.loc7_12.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ImportedConvertLocal(%a.param_patt: %Adapter.e9c) -> %i32 { +// CHECK:STDOUT: fn @ImportedConvertLocal(%a.param_patt: %Adapter.58f) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %Adapter.e9c = name_ref a, %a +// CHECK:STDOUT: %a.ref: %Adapter.58f = name_ref a, %a // CHECK:STDOUT: %C.ref.loc15: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %.loc15_13.1: %C = as_compatible %a.ref // CHECK:STDOUT: %.loc15_13.2: %C = converted %a.ref, %.loc15_13.1 @@ -986,7 +986,7 @@ 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.d0d +// CHECK:STDOUT: %complete_type => constants.%complete_type.1eb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Adapter(constants.%C) { @@ -994,7 +994,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.patt => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.9b7 +// CHECK:STDOUT: %require_complete => constants.%complete_type.54b // CHECK:STDOUT: %complete_type => constants.%complete_type.af2 // 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 9ee125ebd855..2b04b265de66 100644 --- a/toolchain/check/testdata/class/generic/base_is_generic.carbon +++ b/toolchain/check/testdata/class/generic/base_is_generic.carbon @@ -91,32 +91,32 @@ fn H() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Base.type: type = generic_class_type @Base [template] // CHECK:STDOUT: %Base.generic: %Base.type = struct_value () [template] -// CHECK:STDOUT: %Base.0cc: type = class_type @Base, @Base(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Base.elem.bb6: type = unbound_element_type %Base.0cc, %T [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] +// CHECK:STDOUT: %Base.370: type = class_type @Base, @Base(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Base.elem.9af: type = unbound_element_type %Base.370, %T [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x.2ac [symbolic] // CHECK:STDOUT: %Param: type = class_type @Param [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Param.elem: type = unbound_element_type %Param, %i32 [template] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %i32} [template] -// CHECK:STDOUT: %complete_type.5e2: = complete_type_witness %struct_type.y [template] +// CHECK:STDOUT: %complete_type.0f9: = complete_type_witness %struct_type.y [template] // CHECK:STDOUT: %Derived: type = class_type @Derived [template] -// CHECK:STDOUT: %Base.cc4: type = class_type @Base, @Base(%Param) [template] -// CHECK:STDOUT: %Base.elem.8c2: type = unbound_element_type %Base.cc4, %Param [template] +// CHECK:STDOUT: %Base.7a8: type = class_type @Base, @Base(%Param) [template] +// CHECK:STDOUT: %Base.elem.d1f: type = unbound_element_type %Base.7a8, %Param [template] // CHECK:STDOUT: %struct_type.x.975: type = struct_type {.x: %Param} [template] // CHECK:STDOUT: %complete_type.db3: = complete_type_witness %struct_type.x.975 [template] -// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.cc4 [template] -// CHECK:STDOUT: %struct_type.base.d47: type = struct_type {.base: %Base.cc4} [template] -// CHECK:STDOUT: %complete_type.08e: = complete_type_witness %struct_type.base.d47 [template] +// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.7a8 [template] +// CHECK:STDOUT: %struct_type.base.8bc: type = struct_type {.base: %Base.7a8} [template] +// CHECK:STDOUT: %complete_type.b07: = complete_type_witness %struct_type.base.8bc [template] // CHECK:STDOUT: %DoubleFieldAccess.type: type = fn_type @DoubleFieldAccess [template] // CHECK:STDOUT: %DoubleFieldAccess: %DoubleFieldAccess.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -161,18 +161,18 @@ fn H() { // CHECK:STDOUT: %T.patt.loc4_17.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_17.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Base.%T.loc4_17.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.0cc)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type @Base.%Base (%Base.0cc), @Base.%T.loc4_17.2 (%T) [symbolic = %Base.elem (constants.%Base.elem.bb6)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Base.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Base.%T.loc4_17.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type @Base.%Base (%Base.370), @Base.%T.loc4_17.2 (%T) [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Base.%struct_type.x (%struct_type.x.2ac) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.bb6) = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.710 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.9af) = field_decl x, element0 [template] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.2ac [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Base.0cc +// CHECK:STDOUT: .Self = constants.%Base.370 // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: } @@ -180,7 +180,7 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: class @Param { // CHECK:STDOUT: %.loc9: %Param.elem = field_decl y, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.y [template = constants.%complete_type.5e2] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.y [template = constants.%complete_type.0f9] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Param @@ -191,9 +191,9 @@ fn H() { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [template = constants.%Base.generic] // CHECK:STDOUT: %Param.ref: type = name_ref Param, file.%Param.decl [template = constants.%Param] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%Param) [template = constants.%Base.cc4] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%Param) [template = constants.%Base.7a8] // CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %Base, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.d47 [template = constants.%complete_type.08e] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.8bc [template = constants.%complete_type.b07] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Derived @@ -205,9 +205,9 @@ fn H() { // CHECK:STDOUT: fn @DoubleFieldAccess(%d.param_patt: %Derived) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref: %Derived = name_ref d, %d -// CHECK:STDOUT: %x.ref: %Base.elem.8c2 = name_ref x, @Base.%.loc5 [template = @Base.%.loc5] -// CHECK:STDOUT: %.loc17_11.1: ref %Base.cc4 = class_element_access %d.ref, element0 -// CHECK:STDOUT: %.loc17_11.2: ref %Base.cc4 = converted %d.ref, %.loc17_11.1 +// CHECK:STDOUT: %x.ref: %Base.elem.d1f = name_ref x, @Base.%.loc5 [template = @Base.%.loc5] +// CHECK:STDOUT: %.loc17_11.1: ref %Base.7a8 = class_element_access %d.ref, element0 +// CHECK:STDOUT: %.loc17_11.2: ref %Base.7a8 = 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 [template = @Param.%.loc9] // CHECK:STDOUT: %.loc17_13.1: ref %i32 = class_element_access %.loc17_11.3, element0 @@ -227,9 +227,9 @@ fn H() { // CHECK:STDOUT: %T.patt.loc4_17.2 => constants.%Param // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.5e2 -// CHECK:STDOUT: %Base => constants.%Base.cc4 -// CHECK:STDOUT: %Base.elem => constants.%Base.elem.8c2 +// CHECK:STDOUT: %require_complete => constants.%complete_type.0f9 +// CHECK:STDOUT: %Base => constants.%Base.7a8 +// CHECK:STDOUT: %Base.elem => constants.%Base.elem.d1f // CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.975 // CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.db3 // CHECK:STDOUT: } @@ -242,18 +242,18 @@ fn H() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %i32} [template] -// CHECK:STDOUT: %complete_type.a2b: = complete_type_witness %struct_type.y [template] +// CHECK:STDOUT: %complete_type.09d: = complete_type_witness %struct_type.y [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] -// CHECK:STDOUT: %Base.5e4: type = class_type @Base, @Base(%T) [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x.2ac [symbolic] +// CHECK:STDOUT: %Base.370: type = class_type @Base, @Base(%T) [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Base.802: type = class_type @Base, @Base(%Param) [template] -// CHECK:STDOUT: %struct_type.base.875: type = struct_type {.base: %Base.802} [template] -// CHECK:STDOUT: %complete_type.868: = complete_type_witness %struct_type.base.875 [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Base.elem.ace: type = unbound_element_type %Base.5e4, %T [symbolic] -// CHECK:STDOUT: %Base.elem.815: type = unbound_element_type %Base.802, %Param [template] +// CHECK:STDOUT: %Base.7a8: type = class_type @Base, @Base(%Param) [template] +// CHECK:STDOUT: %struct_type.base.8bc: type = struct_type {.base: %Base.7a8} [template] +// CHECK:STDOUT: %complete_type.b07: = complete_type_witness %struct_type.base.8bc [template] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Base.elem.9af: type = unbound_element_type %Base.370, %T [symbolic] +// CHECK:STDOUT: %Base.elem.d1f: type = unbound_element_type %Base.7a8, %Param [template] // CHECK:STDOUT: %struct_type.x.975: type = struct_type {.x: %Param} [template] // CHECK:STDOUT: %complete_type.db3: = complete_type_witness %struct_type.x.975 [template] // CHECK:STDOUT: %ImportedDoubleFieldAccess.type: type = fn_type @ImportedDoubleFieldAccess [template] @@ -262,33 +262,33 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.210 = import_ref Main//extend_generic_base, Base, unloaded -// CHECK:STDOUT: %import_ref.877 = import_ref Main//extend_generic_base, Param, unloaded -// CHECK:STDOUT: %import_ref.502: type = import_ref Main//extend_generic_base, Derived, loaded [template = constants.%Derived] -// CHECK:STDOUT: %import_ref.ac8 = import_ref Main//extend_generic_base, DoubleFieldAccess, unloaded +// CHECK:STDOUT: %import_ref.97d = import_ref Main//extend_generic_base, Base, unloaded +// CHECK:STDOUT: %import_ref.3fa = import_ref Main//extend_generic_base, Param, unloaded +// CHECK:STDOUT: %import_ref.58f: type = import_ref Main//extend_generic_base, Derived, loaded [template = constants.%Derived] +// CHECK:STDOUT: %import_ref.ec1 = import_ref Main//extend_generic_base, DoubleFieldAccess, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 +// CHECK:STDOUT: .Int = %import_ref.2c8 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.f46: = import_ref Main//extend_generic_base, loc10_1, loaded [template = constants.%complete_type.a2b] +// CHECK:STDOUT: %import_ref.e8d: = import_ref Main//extend_generic_base, loc10_1, loaded [template = constants.%complete_type.09d] // CHECK:STDOUT: %import_ref.446 = import_ref Main//extend_generic_base, inst42 [no loc], unloaded -// CHECK:STDOUT: %import_ref.c4e: %Param.elem = import_ref Main//extend_generic_base, loc9_8, loaded [template = %.7d9] -// CHECK:STDOUT: %import_ref.3ee: = import_ref Main//extend_generic_base, loc6_1, loaded [symbolic = @Base.%complete_type (constants.%complete_type.60a)] -// CHECK:STDOUT: %import_ref.a6b = import_ref Main//extend_generic_base, inst27 [no loc], unloaded -// CHECK:STDOUT: %import_ref.8be: @Base.%Base.elem (%Base.elem.ace) = import_ref Main//extend_generic_base, loc5_8, loaded [template = %.9ad] -// CHECK:STDOUT: %import_ref.696: = import_ref Main//extend_generic_base, loc14_1, loaded [template = constants.%complete_type.868] +// CHECK:STDOUT: %import_ref.a92: %Param.elem = import_ref Main//extend_generic_base, loc9_8, loaded [template = %.be7] +// CHECK:STDOUT: %import_ref.b5f: = import_ref Main//extend_generic_base, loc6_1, loaded [symbolic = @Base.%complete_type (constants.%complete_type.433)] +// CHECK:STDOUT: %import_ref.8e0 = import_ref Main//extend_generic_base, inst27 [no loc], unloaded +// CHECK:STDOUT: %import_ref.7f7: @Base.%Base.elem (%Base.elem.9af) = import_ref Main//extend_generic_base, loc5_8, loaded [template = %.e66] +// CHECK:STDOUT: %import_ref.bd0: = import_ref Main//extend_generic_base, loc14_1, loaded [template = constants.%complete_type.b07] // CHECK:STDOUT: %import_ref.f6c = import_ref Main//extend_generic_base, inst76 [no loc], unloaded -// CHECK:STDOUT: %import_ref.626 = import_ref Main//extend_generic_base, loc13_27, unloaded -// CHECK:STDOUT: %import_ref.6c6788.2: type = import_ref Main//extend_generic_base, loc13_26, loaded [template = constants.%Base.802] +// CHECK:STDOUT: %import_ref.d24 = import_ref Main//extend_generic_base, loc13_27, unloaded +// CHECK:STDOUT: %import_ref.77a301.2: type = import_ref Main//extend_generic_base, loc13_26, loaded [template = constants.%Base.7a8] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Base = imports.%import_ref.210 -// CHECK:STDOUT: .Param = imports.%import_ref.877 -// CHECK:STDOUT: .Derived = imports.%import_ref.502 -// CHECK:STDOUT: .DoubleFieldAccess = imports.%import_ref.ac8 +// CHECK:STDOUT: .Base = imports.%import_ref.97d +// CHECK:STDOUT: .Param = imports.%import_ref.3fa +// CHECK:STDOUT: .Derived = imports.%import_ref.58f +// CHECK:STDOUT: .DoubleFieldAccess = imports.%import_ref.ec1 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .ImportedDoubleFieldAccess = %ImportedDoubleFieldAccess.decl // CHECK:STDOUT: } @@ -303,7 +303,7 @@ fn H() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %d.param: %Derived = value_param runtime_param0 -// CHECK:STDOUT: %Derived.ref: type = name_ref Derived, imports.%import_ref.502 [template = constants.%Derived] +// CHECK:STDOUT: %Derived.ref: type = name_ref Derived, imports.%import_ref.58f [template = constants.%Derived] // CHECK:STDOUT: %d: %Derived = bind_name d, %d.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param @@ -313,16 +313,16 @@ fn H() { // CHECK:STDOUT: class @Derived [from "extend_generic_base.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.f6c -// CHECK:STDOUT: .base = imports.%import_ref.626 -// CHECK:STDOUT: extend imports.%import_ref.6c6788.2 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.696 +// CHECK:STDOUT: .base = imports.%import_ref.d24 +// CHECK:STDOUT: extend imports.%import_ref.77a301.2 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.bd0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Param [from "extend_generic_base.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.446 -// CHECK:STDOUT: .y = imports.%import_ref.c4e -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.f46 +// CHECK:STDOUT: .y = imports.%import_ref.a92 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.e8d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Base(constants.%T: type) [from "extend_generic_base.carbon"] { @@ -330,28 +330,28 @@ fn H() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Base.%T (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.5e4)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type @Base.%Base (%Base.5e4), @Base.%T (%T) [symbolic = %Base.elem (constants.%Base.elem.ace)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Base.%T (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type: = complete_type_witness @Base.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Base.%T (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type @Base.%Base (%Base.370), @Base.%T (%T) [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Base.%T (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %complete_type: = complete_type_witness @Base.%struct_type.x (%struct_type.x.2ac) [symbolic = %complete_type (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.a6b -// CHECK:STDOUT: .x = imports.%import_ref.8be -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.3ee +// CHECK:STDOUT: .Self = imports.%import_ref.8e0 +// CHECK:STDOUT: .x = imports.%import_ref.7f7 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.b5f // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ImportedDoubleFieldAccess(%d.param_patt: %Derived) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref: %Derived = name_ref d, %d -// CHECK:STDOUT: %x.ref: %Base.elem.815 = name_ref x, imports.%import_ref.8be [template = imports.%.9ad] -// CHECK:STDOUT: %.loc7_11.1: ref %Base.802 = class_element_access %d.ref, element0 -// CHECK:STDOUT: %.loc7_11.2: ref %Base.802 = converted %d.ref, %.loc7_11.1 +// CHECK:STDOUT: %x.ref: %Base.elem.d1f = name_ref x, imports.%import_ref.7f7 [template = imports.%.e66] +// CHECK:STDOUT: %.loc7_11.1: ref %Base.7a8 = class_element_access %d.ref, element0 +// CHECK:STDOUT: %.loc7_11.2: ref %Base.7a8 = 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.%import_ref.c4e [template = imports.%.7d9] +// CHECK:STDOUT: %y.ref: %Param.elem = name_ref y, imports.%import_ref.a92 [template = imports.%.be7] // CHECK:STDOUT: %.loc7_13.1: ref %i32 = class_element_access %.loc7_11.3, element0 // CHECK:STDOUT: %.loc7_13.2: %i32 = bind_value %.loc7_13.1 // CHECK:STDOUT: return %.loc7_13.2 @@ -367,9 +367,9 @@ fn H() { // CHECK:STDOUT: %T.patt => constants.%Param // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.a2b -// CHECK:STDOUT: %Base => constants.%Base.802 -// CHECK:STDOUT: %Base.elem => constants.%Base.elem.815 +// CHECK:STDOUT: %require_complete => constants.%complete_type.09d +// CHECK:STDOUT: %Base => constants.%Base.7a8 +// CHECK:STDOUT: %Base.elem => constants.%Base.elem.d1f // CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.975 // CHECK:STDOUT: %complete_type => constants.%complete_type.db3 // CHECK:STDOUT: } @@ -383,7 +383,7 @@ fn H() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] // CHECK:STDOUT: %X: type = class_type @X [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] @@ -392,7 +392,7 @@ fn H() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %C.f9e: type = class_type @C, @C(%X) [template] +// CHECK:STDOUT: %C.fac: type = class_type @C, @C(%X) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -434,7 +434,7 @@ fn H() { // CHECK:STDOUT: %complete_type: = complete_type_witness [template = ] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: .base = %.loc8 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type @@ -460,7 +460,7 @@ fn H() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [template = constants.%C.f9e] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [template = constants.%C.fac] // CHECK:STDOUT: %G.ref: = name_ref G, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -485,44 +485,44 @@ fn H() { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] // CHECK:STDOUT: %X.type: type = generic_class_type @X [template] // CHECK:STDOUT: %X.generic: %X.type = struct_value () [template] -// CHECK:STDOUT: %X.847: type = class_type @X, @X(%U) [symbolic] -// CHECK:STDOUT: %G.type.9e7: type = fn_type @G, @X(%U) [symbolic] -// CHECK:STDOUT: %G.ca3: %G.type.9e7 = struct_value () [symbolic] +// CHECK:STDOUT: %X.75b6d8.1: type = class_type @X, @X(%U) [symbolic] +// CHECK:STDOUT: %G.type.56f312.1: type = fn_type @G, @X(%U) [symbolic] +// CHECK:STDOUT: %G.b504c4.1: %G.type.56f312.1 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %G.specific_fn.a95: = specific_function %G.ca3, @G(%U) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %G.specific_fn.169: = specific_function %G.b504c4.1, @G(%U) [symbolic] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %X.643: type = class_type @X, @X(%T) [symbolic] -// CHECK:STDOUT: %G.type.709: type = fn_type @G, @X(%T) [symbolic] -// CHECK:STDOUT: %G.0f4: %G.type.709 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.c56: = require_complete_type %X.643 [symbolic] -// CHECK:STDOUT: %C.elem.513: type = unbound_element_type %C.37e, %X.643 [symbolic] -// CHECK:STDOUT: %struct_type.base.8ef: type = struct_type {.base: %X.643} [symbolic] -// CHECK:STDOUT: %complete_type.bbc: = complete_type_witness %struct_type.base.8ef [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %X.75b6d8.2: type = class_type @X, @X(%T) [symbolic] +// CHECK:STDOUT: %G.type.56f312.2: type = fn_type @G, @X(%T) [symbolic] +// CHECK:STDOUT: %G.b504c4.2: %G.type.56f312.2 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.441: = require_complete_type %X.75b6d8.2 [symbolic] +// CHECK:STDOUT: %C.elem.3f4: type = unbound_element_type %C.f2e, %X.75b6d8.2 [symbolic] +// CHECK:STDOUT: %struct_type.base.f5f: type = struct_type {.base: %X.75b6d8.2} [symbolic] +// CHECK:STDOUT: %complete_type.768: = complete_type_witness %struct_type.base.f5f [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %C.268: type = class_type @C, @C(%i32) [template] -// CHECK:STDOUT: %X.05f: type = class_type @X, @X(%i32) [template] -// CHECK:STDOUT: %G.type.d5e: type = fn_type @G, @X(%i32) [template] -// CHECK:STDOUT: %G.842: %G.type.d5e = struct_value () [template] -// CHECK:STDOUT: %C.elem.610: type = unbound_element_type %C.268, %X.05f [template] -// CHECK:STDOUT: %struct_type.base.00d: type = struct_type {.base: %X.05f} [template] -// CHECK:STDOUT: %complete_type.b69: = complete_type_witness %struct_type.base.00d [template] -// CHECK:STDOUT: %G.specific_fn.af5: = specific_function %G.842, @G(%i32) [template] +// CHECK:STDOUT: %C.98a: type = class_type @C, @C(%i32) [template] +// CHECK:STDOUT: %X.448: type = class_type @X, @X(%i32) [template] +// CHECK:STDOUT: %G.type.862: type = fn_type @G, @X(%i32) [template] +// CHECK:STDOUT: %G.d5e: %G.type.862 = struct_value () [template] +// CHECK:STDOUT: %C.elem.494: type = unbound_element_type %C.98a, %X.448 [template] +// CHECK:STDOUT: %struct_type.base.d41: type = struct_type {.base: %X.448} [template] +// CHECK:STDOUT: %complete_type.146: = complete_type_witness %struct_type.base.d41 [template] +// CHECK:STDOUT: %G.specific_fn.7a3: = specific_function %G.d5e, @G(%i32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -558,11 +558,11 @@ fn H() { // CHECK:STDOUT: %U.patt.loc4_14.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc4_14.2 (constants.%U.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U.loc4_14.2) [symbolic = %G.type (constants.%G.type.9e7)] -// CHECK:STDOUT: %G: @X.%G.type (%G.type.9e7) = struct_value () [symbolic = %G (constants.%G.ca3)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U.loc4_14.2) [symbolic = %G.type (constants.%G.type.56f312.1)] +// CHECK:STDOUT: %G: @X.%G.type (%G.type.56f312.1) = struct_value () [symbolic = %G (constants.%G.b504c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %G.decl: @X.%G.type (%G.type.9e7) = fn_decl @G [symbolic = @X.%G (constants.%G.ca3)] { +// CHECK:STDOUT: %G.decl: @X.%G.type (%G.type.56f312.1) = fn_decl @G [symbolic = @X.%G (constants.%G.b504c4.1)] { // CHECK:STDOUT: %return.patt: @G.%U (%U) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @G.%U (%U) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -573,7 +573,7 @@ fn H() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%X.847 +// CHECK:STDOUT: .Self = constants.%X.75b6d8.1 // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } @@ -584,22 +584,22 @@ fn H() { // CHECK:STDOUT: %T.patt.loc8_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_9.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.loc9_19.2: type = class_type @X, @X(%T.loc8_9.2) [symbolic = %X.loc9_19.2 (constants.%X.643)] -// CHECK:STDOUT: %require_complete: = require_complete_type @C.%X.loc9_19.2 (%X.643) [symbolic = %require_complete (constants.%require_complete.c56)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc8_9.2) [symbolic = %C (constants.%C.37e)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.37e), @C.%X.loc9_19.2 (%X.643) [symbolic = %C.elem (constants.%C.elem.513)] -// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: @C.%X.loc9_19.2 (%X.643)} [symbolic = %struct_type.base (constants.%struct_type.base.8ef)] -// CHECK:STDOUT: %complete_type.loc10_1.2: = complete_type_witness @C.%struct_type.base (%struct_type.base.8ef) [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.bbc)] +// CHECK:STDOUT: %X.loc9_19.2: type = class_type @X, @X(%T.loc8_9.2) [symbolic = %X.loc9_19.2 (constants.%X.75b6d8.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @C.%X.loc9_19.2 (%X.75b6d8.2) [symbolic = %require_complete (constants.%require_complete.441)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc8_9.2) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.f2e), @C.%X.loc9_19.2 (%X.75b6d8.2) [symbolic = %C.elem (constants.%C.elem.3f4)] +// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: @C.%X.loc9_19.2 (%X.75b6d8.2)} [symbolic = %struct_type.base (constants.%struct_type.base.f5f)] +// CHECK:STDOUT: %complete_type.loc10_1.2: = complete_type_witness @C.%struct_type.base (%struct_type.base.f5f) [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.768)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %X.ref: %X.type = name_ref X, file.%X.decl [template = constants.%X.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_9.1 [symbolic = %T.loc8_9.2 (constants.%T)] -// CHECK:STDOUT: %X.loc9_19.1: type = class_type @X, @X(constants.%T) [symbolic = %X.loc9_19.2 (constants.%X.643)] -// CHECK:STDOUT: %.loc9: @C.%C.elem (%C.elem.513) = base_decl %X.loc9_19.1, element0 [template] -// CHECK:STDOUT: %complete_type.loc10_1.1: = complete_type_witness %struct_type.base.8ef [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.bbc)] +// CHECK:STDOUT: %X.loc9_19.1: type = class_type @X, @X(constants.%T) [symbolic = %X.loc9_19.2 (constants.%X.75b6d8.2)] +// CHECK:STDOUT: %.loc9: @C.%C.elem (%C.elem.3f4) = base_decl %X.loc9_19.1, element0 [template] +// CHECK:STDOUT: %complete_type.loc10_1.1: = complete_type_witness %struct_type.base.f5f [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.768)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: .base = %.loc9 // CHECK:STDOUT: extend %X.loc9_19.1 // CHECK:STDOUT: complete_type_witness = %complete_type.loc10_1.1 @@ -610,16 +610,16 @@ fn H() { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @G.%U (%U) [symbolic = %require_complete (constants.%require_complete.427)] -// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U) [symbolic = %G.type (constants.%G.type.9e7)] -// CHECK:STDOUT: %G: @G.%G.type (%G.type.9e7) = struct_value () [symbolic = %G (constants.%G.ca3)] -// CHECK:STDOUT: %G.specific_fn.loc5_24.2: = specific_function %G, @G(%U) [symbolic = %G.specific_fn.loc5_24.2 (constants.%G.specific_fn.a95)] +// CHECK:STDOUT: %require_complete: = require_complete_type @G.%U (%U) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U) [symbolic = %G.type (constants.%G.type.56f312.1)] +// CHECK:STDOUT: %G: @G.%G.type (%G.type.56f312.1) = struct_value () [symbolic = %G (constants.%G.b504c4.1)] +// CHECK:STDOUT: %G.specific_fn.loc5_24.2: = specific_function %G, @G(%U) [symbolic = %G.specific_fn.loc5_24.2 (constants.%G.specific_fn.169)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @G.%U (%U) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc5_24: @G.%G.type (%G.type.9e7) = specific_constant @X.%G.decl, @X(constants.%U) [symbolic = %G (constants.%G.ca3)] -// CHECK:STDOUT: %G.ref: @G.%G.type (%G.type.9e7) = name_ref G, %.loc5_24 [symbolic = %G (constants.%G.ca3)] -// CHECK:STDOUT: %G.specific_fn.loc5_24.1: = specific_function %G.ref, @G(constants.%U) [symbolic = %G.specific_fn.loc5_24.2 (constants.%G.specific_fn.a95)] +// CHECK:STDOUT: %.loc5_24: @G.%G.type (%G.type.56f312.1) = specific_constant @X.%G.decl, @X(constants.%U) [symbolic = %G (constants.%G.b504c4.1)] +// CHECK:STDOUT: %G.ref: @G.%G.type (%G.type.56f312.1) = name_ref G, %.loc5_24 [symbolic = %G (constants.%G.b504c4.1)] +// CHECK:STDOUT: %G.specific_fn.loc5_24.1: = specific_function %G.ref, @G(constants.%U) [symbolic = %G.specific_fn.loc5_24.2 (constants.%G.specific_fn.169)] // CHECK:STDOUT: %G.call: init @G.%U (%U) = call %G.specific_fn.loc5_24.1() // CHECK:STDOUT: %.loc5_27.1: @G.%U (%U) = value_of_initializer %G.call // CHECK:STDOUT: %.loc5_27.2: @G.%U (%U) = converted %G.call, %.loc5_27.1 @@ -632,10 +632,10 @@ fn H() { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.268] -// CHECK:STDOUT: %.loc13_22: %G.type.d5e = specific_constant @X.%G.decl, @X(constants.%i32) [template = constants.%G.842] -// CHECK:STDOUT: %G.ref: %G.type.d5e = name_ref G, %.loc13_22 [template = constants.%G.842] -// CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%i32) [template = constants.%G.specific_fn.af5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.98a] +// CHECK:STDOUT: %.loc13_22: %G.type.862 = specific_constant @X.%G.decl, @X(constants.%i32) [template = constants.%G.d5e] +// CHECK:STDOUT: %G.ref: %G.type.862 = name_ref G, %.loc13_22 [template = constants.%G.d5e] +// CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%i32) [template = constants.%G.specific_fn.7a3] // CHECK:STDOUT: %G.call: init %i32 = call %G.specific_fn() // CHECK:STDOUT: %.loc13_26.1: %i32 = value_of_initializer %G.call // CHECK:STDOUT: %.loc13_26.2: %i32 = converted %G.call, %.loc13_26.1 @@ -648,18 +648,18 @@ fn H() { // CHECK:STDOUT: %U.patt.loc4_14.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type => constants.%G.type.9e7 -// CHECK:STDOUT: %G => constants.%G.ca3 +// CHECK:STDOUT: %G.type => constants.%G.type.56f312.1 +// CHECK:STDOUT: %G => constants.%G.b504c4.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%U) { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.427 -// CHECK:STDOUT: %G.type => constants.%G.type.9e7 -// CHECK:STDOUT: %G => constants.%G.ca3 -// CHECK:STDOUT: %G.specific_fn.loc5_24.2 => constants.%G.specific_fn.a95 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %G.type => constants.%G.type.56f312.1 +// CHECK:STDOUT: %G => constants.%G.b504c4.1 +// CHECK:STDOUT: %G.specific_fn.loc5_24.2 => constants.%G.specific_fn.169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(%U.loc4_14.2) {} @@ -678,8 +678,8 @@ fn H() { // CHECK:STDOUT: %U.patt.loc4_14.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type => constants.%G.type.709 -// CHECK:STDOUT: %G => constants.%G.0f4 +// CHECK:STDOUT: %G.type => constants.%G.type.56f312.2 +// CHECK:STDOUT: %G => constants.%G.b504c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(@C.%T.loc8_9.2) {} @@ -691,12 +691,12 @@ fn H() { // CHECK:STDOUT: %T.patt.loc8_9.2 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.loc9_19.2 => constants.%X.05f +// CHECK:STDOUT: %X.loc9_19.2 => constants.%X.448 // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %C => constants.%C.268 -// CHECK:STDOUT: %C.elem => constants.%C.elem.610 -// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.00d -// CHECK:STDOUT: %complete_type.loc10_1.2 => constants.%complete_type.b69 +// CHECK:STDOUT: %C => constants.%C.98a +// CHECK:STDOUT: %C.elem => constants.%C.elem.494 +// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.d41 +// CHECK:STDOUT: %complete_type.loc10_1.2 => constants.%complete_type.146 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%i32) { @@ -704,8 +704,8 @@ fn H() { // CHECK:STDOUT: %U.patt.loc4_14.2 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type => constants.%G.type.d5e -// CHECK:STDOUT: %G => constants.%G.842 +// CHECK:STDOUT: %G.type => constants.%G.type.862 +// CHECK:STDOUT: %G => constants.%G.d5e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%i32) { @@ -713,9 +713,9 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %G.type => constants.%G.type.d5e -// CHECK:STDOUT: %G => constants.%G.842 -// CHECK:STDOUT: %G.specific_fn.loc5_24.2 => constants.%G.specific_fn.af5 +// CHECK:STDOUT: %G.type => constants.%G.type.862 +// CHECK:STDOUT: %G => constants.%G.d5e +// CHECK:STDOUT: %G.specific_fn.loc5_24.2 => constants.%G.specific_fn.7a3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_extend_generic_symbolic_base.carbon @@ -734,52 +734,52 @@ fn H() { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] -// CHECK:STDOUT: %X.ab1: type = class_type @X, @X(%T) [symbolic] -// CHECK:STDOUT: %C.df4: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %C.elem.b01: type = unbound_element_type %C.df4, %X.ab1 [symbolic] -// CHECK:STDOUT: %struct_type.base.404: type = struct_type {.base: %X.ab1} [symbolic] -// CHECK:STDOUT: %complete_type.fe7: = complete_type_witness %struct_type.base.404 [symbolic] +// CHECK:STDOUT: %X.75b6d8.2: type = class_type @X, @X(%T) [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.elem.3f4: type = unbound_element_type %C.f2e, %X.75b6d8.2 [symbolic] +// CHECK:STDOUT: %struct_type.base.f5f: type = struct_type {.base: %X.75b6d8.2} [symbolic] +// CHECK:STDOUT: %complete_type.768: = complete_type_witness %struct_type.base.f5f [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %G.type.804: type = fn_type @G, @X(%U) [symbolic] -// CHECK:STDOUT: %G.ed3: %G.type.804 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.8e8: = require_complete_type %X.ab1 [symbolic] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %G.specific_fn.3dd: = specific_function %G.ed3, @G(%U) [symbolic] -// CHECK:STDOUT: %G.type.aaf: type = fn_type @G, @X(%T) [symbolic] -// CHECK:STDOUT: %G.ec7: %G.type.aaf = struct_value () [symbolic] -// CHECK:STDOUT: %C.733: type = class_type @C, @C(%i32) [template] -// CHECK:STDOUT: %X.3bf: type = class_type @X, @X(%i32) [template] -// CHECK:STDOUT: %G.type.aac: type = fn_type @G, @X(%i32) [template] -// CHECK:STDOUT: %G.08f: %G.type.aac = struct_value () [template] -// CHECK:STDOUT: %C.elem.123: type = unbound_element_type %C.733, %X.3bf [template] -// CHECK:STDOUT: %struct_type.base.1d9: type = struct_type {.base: %X.3bf} [template] -// CHECK:STDOUT: %complete_type.82b: = complete_type_witness %struct_type.base.1d9 [template] -// CHECK:STDOUT: %G.specific_fn.e4a: = specific_function %G.08f, @G(%i32) [template] +// CHECK:STDOUT: %G.type.56f312.1: type = fn_type @G, @X(%U) [symbolic] +// CHECK:STDOUT: %G.b504c4.1: %G.type.56f312.1 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.441: = require_complete_type %X.75b6d8.2 [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %G.specific_fn.169: = specific_function %G.b504c4.1, @G(%U) [symbolic] +// CHECK:STDOUT: %G.type.56f312.2: type = fn_type @G, @X(%T) [symbolic] +// CHECK:STDOUT: %G.b504c4.2: %G.type.56f312.2 = struct_value () [symbolic] +// CHECK:STDOUT: %C.98a: type = class_type @C, @C(%i32) [template] +// CHECK:STDOUT: %X.448: type = class_type @X, @X(%i32) [template] +// CHECK:STDOUT: %G.type.862: type = fn_type @G, @X(%i32) [template] +// CHECK:STDOUT: %G.d5e: %G.type.862 = struct_value () [template] +// CHECK:STDOUT: %C.elem.494: type = unbound_element_type %C.98a, %X.448 [template] +// CHECK:STDOUT: %struct_type.base.d41: type = struct_type {.base: %X.448} [template] +// CHECK:STDOUT: %complete_type.146: = complete_type_witness %struct_type.base.d41 [template] +// CHECK:STDOUT: %G.specific_fn.7a3: = specific_function %G.d5e, @G(%i32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4de = import_ref Main//extend_generic_symbolic_base, X, unloaded -// CHECK:STDOUT: %import_ref.26e: %C.type = import_ref Main//extend_generic_symbolic_base, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.b07 = import_ref Main//extend_generic_symbolic_base, F, unloaded +// CHECK:STDOUT: %import_ref.687 = import_ref Main//extend_generic_symbolic_base, X, unloaded +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Main//extend_generic_symbolic_base, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.bde = import_ref Main//extend_generic_symbolic_base, F, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//extend_generic_symbolic_base, loc6_1, loaded [template = constants.%complete_type.357] -// CHECK:STDOUT: %import_ref.839 = import_ref Main//extend_generic_symbolic_base, inst27 [no loc], unloaded -// CHECK:STDOUT: %import_ref.ba8: @X.%G.type (%G.type.804) = import_ref Main//extend_generic_symbolic_base, loc5_15, loaded [symbolic = @X.%G (constants.%G.ed3)] -// CHECK:STDOUT: %import_ref.bb2: = import_ref Main//extend_generic_symbolic_base, loc10_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.fe7)] -// CHECK:STDOUT: %import_ref.495 = import_ref Main//extend_generic_symbolic_base, inst68 [no loc], unloaded -// CHECK:STDOUT: %import_ref.004 = import_ref Main//extend_generic_symbolic_base, loc9_20, unloaded -// CHECK:STDOUT: %import_ref.b59216.2: type = import_ref Main//extend_generic_symbolic_base, loc9_19, loaded [symbolic = @C.%X (constants.%X.ab1)] +// CHECK:STDOUT: %import_ref.e8e = import_ref Main//extend_generic_symbolic_base, inst27 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b8a: @X.%G.type (%G.type.56f312.1) = import_ref Main//extend_generic_symbolic_base, loc5_15, loaded [symbolic = @X.%G (constants.%G.b504c4.1)] +// CHECK:STDOUT: %import_ref.93f: = import_ref Main//extend_generic_symbolic_base, loc10_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.768)] +// CHECK:STDOUT: %import_ref.4c0 = import_ref Main//extend_generic_symbolic_base, inst68 [no loc], unloaded +// CHECK:STDOUT: %import_ref.65d = import_ref Main//extend_generic_symbolic_base, loc9_20, unloaded +// CHECK:STDOUT: %import_ref.561eb2.2: type = import_ref Main//extend_generic_symbolic_base, loc9_19, loaded [symbolic = @C.%X (constants.%X.75b6d8.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .X = imports.%import_ref.4de -// CHECK:STDOUT: .C = imports.%import_ref.26e -// CHECK:STDOUT: .F = imports.%import_ref.b07 +// CHECK:STDOUT: .X = imports.%import_ref.687 +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .F = imports.%import_ref.bde // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: } @@ -793,19 +793,19 @@ fn H() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X: type = class_type @X, @X(%T) [symbolic = %X (constants.%X.ab1)] -// CHECK:STDOUT: %require_complete: = require_complete_type @C.%X (%X.ab1) [symbolic = %require_complete (constants.%require_complete.8e8)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.df4)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.df4), @C.%X (%X.ab1) [symbolic = %C.elem (constants.%C.elem.b01)] -// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: @C.%X (%X.ab1)} [symbolic = %struct_type.base (constants.%struct_type.base.404)] -// CHECK:STDOUT: %complete_type: = complete_type_witness @C.%struct_type.base (%struct_type.base.404) [symbolic = %complete_type (constants.%complete_type.fe7)] +// CHECK:STDOUT: %X: type = class_type @X, @X(%T) [symbolic = %X (constants.%X.75b6d8.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @C.%X (%X.75b6d8.2) [symbolic = %require_complete (constants.%require_complete.441)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type @C.%C (%C.f2e), @C.%X (%X.75b6d8.2) [symbolic = %C.elem (constants.%C.elem.3f4)] +// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: @C.%X (%X.75b6d8.2)} [symbolic = %struct_type.base (constants.%struct_type.base.f5f)] +// CHECK:STDOUT: %complete_type: = complete_type_witness @C.%struct_type.base (%struct_type.base.f5f) [symbolic = %complete_type (constants.%complete_type.768)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.495 -// CHECK:STDOUT: .base = imports.%import_ref.004 -// CHECK:STDOUT: extend imports.%import_ref.b59216.2 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.bb2 +// CHECK:STDOUT: .Self = imports.%import_ref.4c0 +// CHECK:STDOUT: .base = imports.%import_ref.65d +// CHECK:STDOUT: extend imports.%import_ref.561eb2.2 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.93f // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -814,26 +814,26 @@ fn H() { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt (constants.%U.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U) [symbolic = %G.type (constants.%G.type.804)] -// CHECK:STDOUT: %G: @X.%G.type (%G.type.804) = struct_value () [symbolic = %G (constants.%G.ed3)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U) [symbolic = %G.type (constants.%G.type.56f312.1)] +// CHECK:STDOUT: %G: @X.%G.type (%G.type.56f312.1) = struct_value () [symbolic = %G (constants.%G.b504c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.839 -// CHECK:STDOUT: .G = imports.%import_ref.ba8 +// CHECK:STDOUT: .Self = imports.%import_ref.e8e +// CHECK:STDOUT: .G = imports.%import_ref.b8a // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.26e [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.bb9 [template = constants.%C.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.733] -// CHECK:STDOUT: %.loc7_22: %G.type.aac = specific_constant imports.%import_ref.ba8, @X(constants.%i32) [template = constants.%G.08f] -// CHECK:STDOUT: %G.ref: %G.type.aac = name_ref G, %.loc7_22 [template = constants.%G.08f] -// CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%i32) [template = constants.%G.specific_fn.e4a] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [template = constants.%C.98a] +// CHECK:STDOUT: %.loc7_22: %G.type.862 = specific_constant imports.%import_ref.b8a, @X(constants.%i32) [template = constants.%G.d5e] +// CHECK:STDOUT: %G.ref: %G.type.862 = name_ref G, %.loc7_22 [template = constants.%G.d5e] +// CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%i32) [template = constants.%G.specific_fn.7a3] // CHECK:STDOUT: %G.call: init %i32 = call %G.specific_fn() // CHECK:STDOUT: %.loc7_26.1: %i32 = value_of_initializer %G.call // CHECK:STDOUT: %.loc7_26.2: %i32 = converted %G.call, %.loc7_26.1 @@ -845,10 +845,10 @@ fn H() { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @G.%U (%U) [symbolic = %require_complete (constants.%require_complete.427)] -// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U) [symbolic = %G.type (constants.%G.type.804)] -// CHECK:STDOUT: %G: @G.%G.type (%G.type.804) = struct_value () [symbolic = %G (constants.%G.ed3)] -// CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%U) [symbolic = %G.specific_fn (constants.%G.specific_fn.3dd)] +// CHECK:STDOUT: %require_complete: = require_complete_type @G.%U (%U) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U) [symbolic = %G.type (constants.%G.type.56f312.1)] +// CHECK:STDOUT: %G: @G.%G.type (%G.type.56f312.1) = struct_value () [symbolic = %G (constants.%G.b504c4.1)] +// CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%U) [symbolic = %G.specific_fn (constants.%G.specific_fn.169)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @G.%U (%U); // CHECK:STDOUT: } @@ -858,8 +858,8 @@ fn H() { // CHECK:STDOUT: %U.patt => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type => constants.%G.type.804 -// CHECK:STDOUT: %G => constants.%G.ed3 +// CHECK:STDOUT: %G.type => constants.%G.type.56f312.1 +// CHECK:STDOUT: %G => constants.%G.b504c4.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%T) { @@ -867,8 +867,8 @@ fn H() { // CHECK:STDOUT: %U.patt => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type => constants.%G.type.aaf -// CHECK:STDOUT: %G => constants.%G.ec7 +// CHECK:STDOUT: %G.type => constants.%G.type.56f312.2 +// CHECK:STDOUT: %G => constants.%G.b504c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -886,10 +886,10 @@ fn H() { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.427 -// CHECK:STDOUT: %G.type => constants.%G.type.804 -// CHECK:STDOUT: %G => constants.%G.ed3 -// CHECK:STDOUT: %G.specific_fn => constants.%G.specific_fn.3dd +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %G.type => constants.%G.type.56f312.1 +// CHECK:STDOUT: %G => constants.%G.b504c4.1 +// CHECK:STDOUT: %G.specific_fn => constants.%G.specific_fn.169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(@G.%U) {} @@ -901,12 +901,12 @@ fn H() { // CHECK:STDOUT: %T.patt => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X => constants.%X.3bf +// CHECK:STDOUT: %X => constants.%X.448 // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %C => constants.%C.733 -// CHECK:STDOUT: %C.elem => constants.%C.elem.123 -// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.1d9 -// CHECK:STDOUT: %complete_type => constants.%complete_type.82b +// CHECK:STDOUT: %C => constants.%C.98a +// CHECK:STDOUT: %C.elem => constants.%C.elem.494 +// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.d41 +// CHECK:STDOUT: %complete_type => constants.%complete_type.146 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%i32) { @@ -914,8 +914,8 @@ fn H() { // CHECK:STDOUT: %U.patt => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type => constants.%G.type.aac -// CHECK:STDOUT: %G => constants.%G.08f +// CHECK:STDOUT: %G.type => constants.%G.type.862 +// CHECK:STDOUT: %G => constants.%G.d5e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%i32) { @@ -923,8 +923,8 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %G.type => constants.%G.type.aac -// CHECK:STDOUT: %G => constants.%G.08f -// CHECK:STDOUT: %G.specific_fn => constants.%G.specific_fn.e4a +// CHECK:STDOUT: %G.type => constants.%G.type.862 +// CHECK:STDOUT: %G => constants.%G.d5e +// CHECK:STDOUT: %G.specific_fn => constants.%G.specific_fn.7a3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index d3c93ee7423d..377134400632 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -31,19 +31,19 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %ptr.53c: type = ptr_type %Class [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.955: type = ptr_type %Class [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T) [symbolic] // CHECK:STDOUT: %GetAddr: %GetAddr.type = struct_value () [symbolic] // CHECK:STDOUT: %GetValue.type: type = fn_type @GetValue, @Class(%T) [symbolic] // CHECK:STDOUT: %GetValue: %GetValue.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic] // CHECK:STDOUT: %struct_type.k: type = struct_type {.k: %T} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k [symbolic] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %require_complete.6c6: = require_complete_type %ptr.53c [symbolic] -// CHECK:STDOUT: %require_complete.723: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %require_complete.2ae: = require_complete_type %ptr.955 [symbolic] +// CHECK:STDOUT: %require_complete.4f8: = require_complete_type %Class [symbolic] // CHECK:STDOUT: %Declaration.type: type = generic_class_type @Declaration [template] // CHECK:STDOUT: %Declaration.generic: %Declaration.type = struct_value () [template] // CHECK:STDOUT: } @@ -87,7 +87,7 @@ class Declaration(T:! type); // CHECK:STDOUT: %GetAddr: @Class.%GetAddr.type (%GetAddr.type) = struct_value () [symbolic = %GetAddr (constants.%GetAddr)] // CHECK:STDOUT: %GetValue.type: type = fn_type @GetValue, @Class(%T.loc11_13.2) [symbolic = %GetValue.type (constants.%GetValue.type)] // CHECK:STDOUT: %GetValue: @Class.%GetValue.type (%GetValue.type) = struct_value () [symbolic = %GetValue (constants.%GetValue)] -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc11_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc11_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class), @Class.%T.loc11_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @Class.%T.loc11_13.2 (%T)} [symbolic = %struct_type.k (constants.%struct_type.k)] @@ -95,23 +95,23 @@ class Declaration(T:! type); // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %GetAddr.decl: @Class.%GetAddr.type (%GetAddr.type) = fn_decl @GetAddr [symbolic = @Class.%GetAddr (constants.%GetAddr)] { -// CHECK:STDOUT: %self.patt: @GetAddr.%ptr.loc12_29.1 (%ptr.53c) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @GetAddr.%ptr.loc12_29.1 (%ptr.53c) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %self.patt: @GetAddr.%ptr.loc12_29.1 (%ptr.955) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @GetAddr.%ptr.loc12_29.1 (%ptr.955) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc12_14: auto = addr_pattern %self.param_patt -// CHECK:STDOUT: %return.patt: @GetAddr.%ptr.loc12_38.1 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @GetAddr.%ptr.loc12_38.1 (%ptr.251) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: @GetAddr.%ptr.loc12_38.1 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @GetAddr.%ptr.loc12_38.1 (%ptr.79f) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_38.2: type = ptr_type %T [symbolic = %ptr.loc12_38.1 (constants.%ptr.251)] -// CHECK:STDOUT: %self.param: @GetAddr.%ptr.loc12_29.1 (%ptr.53c) = value_param runtime_param0 -// CHECK:STDOUT: %.loc12_29: type = splice_block %ptr.loc12_29.2 [symbolic = %ptr.loc12_29.1 (constants.%ptr.53c)] { +// CHECK:STDOUT: %ptr.loc12_38.2: type = ptr_type %T [symbolic = %ptr.loc12_38.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %self.param: @GetAddr.%ptr.loc12_29.1 (%ptr.955) = value_param runtime_param0 +// CHECK:STDOUT: %.loc12_29: type = splice_block %ptr.loc12_29.2 [symbolic = %ptr.loc12_29.1 (constants.%ptr.955)] { // CHECK:STDOUT: %.loc12_25: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc12_25 [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %ptr.loc12_29.2: type = ptr_type %Class [symbolic = %ptr.loc12_29.1 (constants.%ptr.53c)] +// CHECK:STDOUT: %ptr.loc12_29.2: type = ptr_type %Class [symbolic = %ptr.loc12_29.1 (constants.%ptr.955)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @GetAddr.%ptr.loc12_29.1 (%ptr.53c) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @GetAddr.%ptr.loc12_38.1 (%ptr.251) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @GetAddr.%ptr.loc12_38.1 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %self: @GetAddr.%ptr.loc12_29.1 (%ptr.955) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @GetAddr.%ptr.loc12_38.1 (%ptr.79f) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @GetAddr.%ptr.loc12_38.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %GetValue.decl: @Class.%GetValue.type (%GetValue.type) = fn_decl @GetValue [symbolic = @Class.%GetValue (constants.%GetValue)] { // CHECK:STDOUT: %self.patt: @GetValue.%Class (%Class) = binding_pattern self @@ -151,22 +151,22 @@ class Declaration(T:! type); // CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc11_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %ptr.loc12_29.1: type = ptr_type @GetAddr.%Class (%Class) [symbolic = %ptr.loc12_29.1 (constants.%ptr.53c)] -// CHECK:STDOUT: %ptr.loc12_38.1: type = ptr_type @GetAddr.%T (%T) [symbolic = %ptr.loc12_38.1 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc12_29.1: type = ptr_type @GetAddr.%Class (%Class) [symbolic = %ptr.loc12_29.1 (constants.%ptr.955)] +// CHECK:STDOUT: %ptr.loc12_38.1: type = ptr_type @GetAddr.%T (%T) [symbolic = %ptr.loc12_38.1 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc12_34: = require_complete_type @GetAddr.%ptr.loc12_38.1 (%ptr.251) [symbolic = %require_complete.loc12_34 (constants.%require_complete.968)] -// CHECK:STDOUT: %require_complete.loc12_23: = require_complete_type @GetAddr.%ptr.loc12_29.1 (%ptr.53c) [symbolic = %require_complete.loc12_23 (constants.%require_complete.6c6)] -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type @GetAddr.%Class (%Class) [symbolic = %require_complete.loc13 (constants.%require_complete.723)] +// CHECK:STDOUT: %require_complete.loc12_34: = require_complete_type @GetAddr.%ptr.loc12_38.1 (%ptr.79f) [symbolic = %require_complete.loc12_34 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc12_23: = require_complete_type @GetAddr.%ptr.loc12_29.1 (%ptr.955) [symbolic = %require_complete.loc12_23 (constants.%require_complete.2ae)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type @GetAddr.%Class (%Class) [symbolic = %require_complete.loc13 (constants.%require_complete.4f8)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @GetAddr.%Class (%Class), @GetAddr.%T (%T) [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[addr %self.param_patt: @GetAddr.%ptr.loc12_29.1 (%ptr.53c)]() -> @GetAddr.%ptr.loc12_38.1 (%ptr.251) { +// CHECK:STDOUT: fn[addr %self.param_patt: @GetAddr.%ptr.loc12_29.1 (%ptr.955)]() -> @GetAddr.%ptr.loc12_38.1 (%ptr.79f) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @GetAddr.%ptr.loc12_29.1 (%ptr.53c) = name_ref self, %self +// CHECK:STDOUT: %self.ref: @GetAddr.%ptr.loc12_29.1 (%ptr.955) = name_ref self, %self // CHECK:STDOUT: %.loc13_17.1: ref @GetAddr.%Class (%Class) = deref %self.ref // CHECK:STDOUT: %k.ref: @GetAddr.%Class.elem (%Class.elem) = name_ref k, @Class.%.loc21 [template = @Class.%.loc21] // CHECK:STDOUT: %.loc13_17.2: ref @GetAddr.%T (%T) = class_element_access %.loc13_17.1, element0 -// CHECK:STDOUT: %addr: @GetAddr.%ptr.loc12_38.1 (%ptr.251) = addr_of %.loc13_17.2 +// CHECK:STDOUT: %addr: @GetAddr.%ptr.loc12_38.1 (%ptr.79f) = addr_of %.loc13_17.2 // CHECK:STDOUT: return %addr // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -176,9 +176,9 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17: = require_complete_type @GetValue.%Class (%Class) [symbolic = %require_complete.loc17 (constants.%require_complete.723)] +// CHECK:STDOUT: %require_complete.loc17: = require_complete_type @GetValue.%Class (%Class) [symbolic = %require_complete.loc17 (constants.%require_complete.4f8)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @GetValue.%Class (%Class), @GetValue.%T (%T) [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc18: = require_complete_type @GetValue.%T (%T) [symbolic = %require_complete.loc18 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc18: = require_complete_type @GetValue.%T (%T) [symbolic = %require_complete.loc18 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: @GetValue.%Class (%Class)]() -> @GetValue.%T (%T) { // CHECK:STDOUT: !entry: @@ -199,7 +199,7 @@ class Declaration(T:! type); // CHECK:STDOUT: %GetAddr => constants.%GetAddr // CHECK:STDOUT: %GetValue.type => constants.%GetValue.type // CHECK:STDOUT: %GetValue => constants.%GetValue -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.k => constants.%struct_type.k @@ -209,8 +209,8 @@ class Declaration(T:! type); // CHECK:STDOUT: specific @GetAddr(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %ptr.loc12_29.1 => constants.%ptr.53c -// CHECK:STDOUT: %ptr.loc12_38.1 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc12_29.1 => constants.%ptr.955 +// CHECK:STDOUT: %ptr.loc12_38.1 => constants.%ptr.79f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@GetAddr.%T) {} diff --git a/toolchain/check/testdata/class/generic/call.carbon b/toolchain/check/testdata/class/generic/call.carbon index 06b3f3894c98..8ebaadaafcdd 100644 --- a/toolchain/check/testdata/class/generic/call.carbon +++ b/toolchain/check/testdata/class/generic/call.carbon @@ -93,24 +93,24 @@ class Outer(T:! type) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 1 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 1 [symbolic] +// CHECK:STDOUT: %N.356: %i32 = bind_symbolic_name N, 1 [symbolic] +// CHECK:STDOUT: %N.patt.8cf: %i32 = symbolic_binding_pattern N, 1 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class.78f: type = class_type @Class, @Class(%T, %N.3e4) [symbolic] +// CHECK:STDOUT: %Class.ab2: type = class_type @Class, @Class(%T, %N.356) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] -// CHECK:STDOUT: %Class.b0f: type = class_type @Class, @Class(%ptr.dc3, %int_5.70b) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %Class.c66: type = class_type @Class, @Class(%empty_tuple.type, %int_0.f61) [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] +// CHECK:STDOUT: %Class.f29: type = class_type @Class, @Class(%ptr.235, %int_5.0f6) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Class.dd4: type = class_type @Class, @Class(%empty_tuple.type, %int_0.6a9) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -127,8 +127,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [template = constants.%Class.generic] { // CHECK:STDOUT: %T.patt.loc4_13.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_13.1, runtime_param [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.patt.loc4_23.1: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_23.1, runtime_param [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc4_23.1: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_23.1, runtime_param [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] @@ -137,19 +137,19 @@ class Outer(T:! type) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N.356)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %Class.b0f = var a -// CHECK:STDOUT: %a: ref %Class.b0f = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %Class.c66 = var b -// CHECK:STDOUT: %b: ref %Class.c66 = bind_name b, %b.var +// CHECK:STDOUT: %a.var: ref %Class.f29 = var a +// CHECK:STDOUT: %a: ref %Class.f29 = bind_name a, %a.var +// CHECK:STDOUT: %b.var: ref %Class.dd4 = var b +// CHECK:STDOUT: %b: ref %Class.dd4 = bind_name b, %b.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type, %N.loc4_23.1: %i32) { // CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc4_23.2: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.356)] +// CHECK:STDOUT: %N.patt.loc4_23.2: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -157,32 +157,32 @@ class Outer(T:! type) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.78f +// CHECK:STDOUT: .Self = constants.%Class.ab2 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.3e4) { +// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.356) { // CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T -// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%N.3e4 +// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.356 +// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%N.356 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%ptr.dc3, constants.%int_5.70b) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.dc3 -// CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%ptr.dc3 -// CHECK:STDOUT: %N.loc4_23.2 => constants.%int_5.70b -// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%int_5.70b +// CHECK:STDOUT: specific @Class(constants.%ptr.235, constants.%int_5.0f6) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.235 +// CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%ptr.235 +// CHECK:STDOUT: %N.loc4_23.2 => constants.%int_5.0f6 +// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%int_5.0f6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%empty_tuple.type, constants.%int_0.f61) { +// CHECK:STDOUT: specific @Class(constants.%empty_tuple.type, constants.%int_0.6a9) { // CHECK:STDOUT: %T.loc4_13.2 => constants.%empty_tuple.type // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%empty_tuple.type -// CHECK:STDOUT: %N.loc4_23.2 => constants.%int_0.f61 -// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%int_0.f61 +// CHECK:STDOUT: %N.loc4_23.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%int_0.6a9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -194,18 +194,18 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 1 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 1 [symbolic] +// CHECK:STDOUT: %N.356: %i32 = bind_symbolic_name N, 1 [symbolic] +// CHECK:STDOUT: %N.patt.8cf: %i32 = symbolic_binding_pattern N, 1 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.3e4) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.356) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -221,8 +221,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [template = constants.%Class.generic] { // CHECK:STDOUT: %T.patt.loc4_13.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_13.1, runtime_param [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.patt.loc4_23.1: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_23.1, runtime_param [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc4_23.1: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_23.1, runtime_param [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] @@ -231,7 +231,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N.356)] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref = var a // CHECK:STDOUT: %a: ref = bind_name a, %a.var @@ -240,8 +240,8 @@ class Outer(T:! type) { // CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type, %N.loc4_23.1: %i32) { // CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc4_23.2: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.356)] +// CHECK:STDOUT: %N.patt.loc4_23.2: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -254,11 +254,11 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.3e4) { +// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.356) { // CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T -// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%N.3e4 +// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.356 +// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%N.356 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_too_many.carbon @@ -268,18 +268,18 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 1 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 1 [symbolic] +// CHECK:STDOUT: %N.356: %i32 = bind_symbolic_name N, 1 [symbolic] +// CHECK:STDOUT: %N.patt.8cf: %i32 = symbolic_binding_pattern N, 1 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.3e4) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.356) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -295,8 +295,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [template = constants.%Class.generic] { // CHECK:STDOUT: %T.patt.loc4_13.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_13.1, runtime_param [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.patt.loc4_23.1: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_23.1, runtime_param [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc4_23.1: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_23.1, runtime_param [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] @@ -305,7 +305,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N.356)] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref = var a // CHECK:STDOUT: %a: ref = bind_name a, %a.var @@ -314,8 +314,8 @@ class Outer(T:! type) { // CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type, %N.loc4_23.1: %i32) { // CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc4_23.2: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.356)] +// CHECK:STDOUT: %N.patt.loc4_23.2: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -328,11 +328,11 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.3e4) { +// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.356) { // CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T -// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%N.3e4 +// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.356 +// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%N.356 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_no_conversion.carbon @@ -342,19 +342,19 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 1 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 1 [symbolic] +// CHECK:STDOUT: %N.356: %i32 = bind_symbolic_name N, 1 [symbolic] +// CHECK:STDOUT: %N.patt.8cf: %i32 = symbolic_binding_pattern N, 1 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.3e4) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.356) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -370,8 +370,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [template = constants.%Class.generic] { // CHECK:STDOUT: %T.patt.loc4_13.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_13.1, runtime_param [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.patt.loc4_23.1: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_23.1, runtime_param [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc4_23.1: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_23.1, runtime_param [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] @@ -380,7 +380,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N.356)] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref = var a // CHECK:STDOUT: %a: ref = bind_name a, %a.var @@ -389,8 +389,8 @@ class Outer(T:! type) { // CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type, %N.loc4_23.1: %i32) { // CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc4_23.2: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.356)] +// CHECK:STDOUT: %N.patt.loc4_23.2: %i32 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc4_23.2 (constants.%N.patt.8cf)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -403,11 +403,11 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.3e4) { +// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.356) { // CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T -// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%N.3e4 +// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.356 +// CHECK:STDOUT: %N.patt.loc4_23.2 => constants.%N.356 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- call_in_nested_return_type.carbon @@ -417,42 +417,42 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [template] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [template] -// CHECK:STDOUT: %Outer.cc3: type = class_type @Outer, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Outer.9d6: type = class_type @Outer, @Outer(%T) [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %Inner.type.099: type = generic_class_type @Inner, @Outer(%T) [symbolic] -// CHECK:STDOUT: %Inner.generic.c26: %Inner.type.099 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.188: type = class_type @Inner, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %A.type.828: type = fn_type @A, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %A.483: %A.type.828 = struct_value () [symbolic] -// CHECK:STDOUT: %Outer.074: type = class_type @Outer, @Outer(%U) [symbolic] -// CHECK:STDOUT: %B.type.d03: type = fn_type @B, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %B.4f9: %B.type.d03 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.ae6: type = class_type @Inner, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %C.type.e6b: type = fn_type @C, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %C.778: %C.type.e6b = struct_value () [symbolic] -// CHECK:STDOUT: %D.type.0e5: type = fn_type @D, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %D.74c: %D.type.0e5 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.type.eae: type = generic_class_type @Inner, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Inner.generic.137: %Inner.type.eae = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.c71: type = class_type @Inner, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %A.type.8d7: type = fn_type @A, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %A.d0e: %A.type.8d7 = struct_value () [symbolic] +// CHECK:STDOUT: %Outer.99f: type = class_type @Outer, @Outer(%U) [symbolic] +// CHECK:STDOUT: %B.type.880: type = fn_type @B, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %B.c7b: %B.type.880 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.13a: type = class_type @Inner, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %C.type.714: type = fn_type @C, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %C.e62: %C.type.714 = struct_value () [symbolic] +// CHECK:STDOUT: %D.type.102: type = fn_type @D, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %D.d85: %D.type.102 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.889: = require_complete_type %Outer.cc3 [symbolic] -// CHECK:STDOUT: %Outer.val.079: %Outer.cc3 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.type.7f1: type = generic_class_type @Inner, @Outer(%U) [symbolic] -// CHECK:STDOUT: %Inner.generic.9df: %Inner.type.7f1 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.0d5: = require_complete_type %Outer.074 [symbolic] -// CHECK:STDOUT: %Outer.val.5df: %Outer.074 = struct_value () [symbolic] -// CHECK:STDOUT: %A.type.daf: type = fn_type @A, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %A.7bc: %A.type.daf = struct_value () [symbolic] -// CHECK:STDOUT: %B.type.24d: type = fn_type @B, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %B.c71: %B.type.24d = struct_value () [symbolic] -// CHECK:STDOUT: %C.type.8cc: type = fn_type @C, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %C.516: %C.type.8cc = struct_value () [symbolic] -// CHECK:STDOUT: %D.type.36d: type = fn_type @D, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %D.60f: %D.type.36d = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.a07: = require_complete_type %Inner.ae6 [symbolic] -// CHECK:STDOUT: %Inner.val.8ec: %Inner.ae6 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.ae5: = require_complete_type %Inner.188 [symbolic] -// CHECK:STDOUT: %Inner.val.2b2: %Inner.188 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.127: = require_complete_type %Outer.9d6 [symbolic] +// CHECK:STDOUT: %Outer.val.234: %Outer.9d6 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.type.a71: type = generic_class_type @Inner, @Outer(%U) [symbolic] +// CHECK:STDOUT: %Inner.generic.e3b: %Inner.type.a71 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.964: = require_complete_type %Outer.99f [symbolic] +// CHECK:STDOUT: %Outer.val.a2f: %Outer.99f = struct_value () [symbolic] +// CHECK:STDOUT: %A.type.5c8: type = fn_type @A, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %A.7e2: %A.type.5c8 = struct_value () [symbolic] +// CHECK:STDOUT: %B.type.ec0: type = fn_type @B, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %B.051: %B.type.ec0 = struct_value () [symbolic] +// CHECK:STDOUT: %C.type.1cf: type = fn_type @C, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %C.cf5: %C.type.1cf = struct_value () [symbolic] +// CHECK:STDOUT: %D.type.7bc: type = fn_type @D, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %D.aa3: %D.type.7bc = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.7b1: = require_complete_type %Inner.13a [symbolic] +// CHECK:STDOUT: %Inner.val.69d: %Inner.13a = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.e7e: = require_complete_type %Inner.c71 [symbolic] +// CHECK:STDOUT: %Inner.val.dfa: %Inner.c71 = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -482,11 +482,11 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt.loc2_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc2_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc2_13.2) [symbolic = %Inner.type (constants.%Inner.type.099)] -// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.099) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.c26)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc2_13.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.099) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.c26)] { +// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.eae) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.137)] { // CHECK:STDOUT: %U.patt.loc3_15.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc3_15.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc3_15.1, runtime_param [symbolic = %U.patt.loc3_15.2 (constants.%U.patt)] // CHECK:STDOUT: } { @@ -496,7 +496,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.cc3 +// CHECK:STDOUT: .Self = constants.%Outer.9d6 // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } @@ -508,62 +508,62 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %A.type: type = fn_type @A, @Inner(%T, %U.loc3_15.2) [symbolic = %A.type (constants.%A.type.828)] -// CHECK:STDOUT: %A: @Inner.%A.type (%A.type.828) = struct_value () [symbolic = %A (constants.%A.483)] -// CHECK:STDOUT: %B.type: type = fn_type @B, @Inner(%T, %U.loc3_15.2) [symbolic = %B.type (constants.%B.type.d03)] -// CHECK:STDOUT: %B: @Inner.%B.type (%B.type.d03) = struct_value () [symbolic = %B (constants.%B.4f9)] -// CHECK:STDOUT: %C.type: type = fn_type @C, @Inner(%T, %U.loc3_15.2) [symbolic = %C.type (constants.%C.type.e6b)] -// CHECK:STDOUT: %C: @Inner.%C.type (%C.type.e6b) = struct_value () [symbolic = %C (constants.%C.778)] -// CHECK:STDOUT: %D.type: type = fn_type @D, @Inner(%T, %U.loc3_15.2) [symbolic = %D.type (constants.%D.type.0e5)] -// CHECK:STDOUT: %D: @Inner.%D.type (%D.type.0e5) = struct_value () [symbolic = %D (constants.%D.74c)] +// CHECK:STDOUT: %A.type: type = fn_type @A, @Inner(%T, %U.loc3_15.2) [symbolic = %A.type (constants.%A.type.8d7)] +// CHECK:STDOUT: %A: @Inner.%A.type (%A.type.8d7) = struct_value () [symbolic = %A (constants.%A.d0e)] +// CHECK:STDOUT: %B.type: type = fn_type @B, @Inner(%T, %U.loc3_15.2) [symbolic = %B.type (constants.%B.type.880)] +// CHECK:STDOUT: %B: @Inner.%B.type (%B.type.880) = struct_value () [symbolic = %B (constants.%B.c7b)] +// CHECK:STDOUT: %C.type: type = fn_type @C, @Inner(%T, %U.loc3_15.2) [symbolic = %C.type (constants.%C.type.714)] +// CHECK:STDOUT: %C: @Inner.%C.type (%C.type.714) = struct_value () [symbolic = %C (constants.%C.e62)] +// CHECK:STDOUT: %D.type: type = fn_type @D, @Inner(%T, %U.loc3_15.2) [symbolic = %D.type (constants.%D.type.102)] +// CHECK:STDOUT: %D: @Inner.%D.type (%D.type.102) = struct_value () [symbolic = %D (constants.%D.d85)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %A.decl: @Inner.%A.type (%A.type.828) = fn_decl @A [symbolic = @Inner.%A (constants.%A.483)] { -// CHECK:STDOUT: %return.patt: @A.%Outer.loc4_22.1 (%Outer.cc3) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @A.%Outer.loc4_22.1 (%Outer.cc3) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %A.decl: @Inner.%A.type (%A.type.8d7) = fn_decl @A [symbolic = @Inner.%A (constants.%A.d0e)] { +// CHECK:STDOUT: %return.patt: @A.%Outer.loc4_22.1 (%Outer.9d6) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @A.%Outer.loc4_22.1 (%Outer.9d6) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [template = constants.%Outer.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Outer.loc4_22.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.cc3)] -// CHECK:STDOUT: %return.param: ref @A.%Outer.loc4_22.1 (%Outer.cc3) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @A.%Outer.loc4_22.1 (%Outer.cc3) = return_slot %return.param +// CHECK:STDOUT: %Outer.loc4_22.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.9d6)] +// CHECK:STDOUT: %return.param: ref @A.%Outer.loc4_22.1 (%Outer.9d6) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @A.%Outer.loc4_22.1 (%Outer.9d6) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %B.decl: @Inner.%B.type (%B.type.d03) = fn_decl @B [symbolic = @Inner.%B (constants.%B.4f9)] { -// CHECK:STDOUT: %return.patt: @B.%Outer.loc7_22.1 (%Outer.074) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @B.%Outer.loc7_22.1 (%Outer.074) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %B.decl: @Inner.%B.type (%B.type.880) = fn_decl @B [symbolic = @Inner.%B (constants.%B.c7b)] { +// CHECK:STDOUT: %return.patt: @B.%Outer.loc7_22.1 (%Outer.99f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @B.%Outer.loc7_22.1 (%Outer.99f) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [template = constants.%Outer.generic] // CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_15.1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Outer.loc7_22.2: type = class_type @Outer, @Outer(constants.%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.074)] -// CHECK:STDOUT: %return.param: ref @B.%Outer.loc7_22.1 (%Outer.074) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @B.%Outer.loc7_22.1 (%Outer.074) = return_slot %return.param +// CHECK:STDOUT: %Outer.loc7_22.2: type = class_type @Outer, @Outer(constants.%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.99f)] +// CHECK:STDOUT: %return.param: ref @B.%Outer.loc7_22.1 (%Outer.99f) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @B.%Outer.loc7_22.1 (%Outer.99f) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %C.decl: @Inner.%C.type (%C.type.e6b) = fn_decl @C [symbolic = @Inner.%C (constants.%C.778)] { -// CHECK:STDOUT: %return.patt: @C.%Inner.loc10_22.1 (%Inner.ae6) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @C.%Inner.loc10_22.1 (%Inner.ae6) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %C.decl: @Inner.%C.type (%C.type.714) = fn_decl @C [symbolic = @Inner.%C (constants.%C.e62)] { +// CHECK:STDOUT: %return.patt: @C.%Inner.loc10_22.1 (%Inner.13a) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @C.%Inner.loc10_22.1 (%Inner.13a) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc10: @C.%Inner.type (%Inner.type.099) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.c26)] -// CHECK:STDOUT: %Inner.ref: @C.%Inner.type (%Inner.type.099) = name_ref Inner, %.loc10 [symbolic = %Inner.generic (constants.%Inner.generic.c26)] +// CHECK:STDOUT: %.loc10: @C.%Inner.type (%Inner.type.eae) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.137)] +// CHECK:STDOUT: %Inner.ref: @C.%Inner.type (%Inner.type.eae) = name_ref Inner, %.loc10 [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.1 [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.ae6)] -// CHECK:STDOUT: %return.param: ref @C.%Inner.loc10_22.1 (%Inner.ae6) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @C.%Inner.loc10_22.1 (%Inner.ae6) = 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.13a)] +// CHECK:STDOUT: %return.param: ref @C.%Inner.loc10_22.1 (%Inner.13a) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @C.%Inner.loc10_22.1 (%Inner.13a) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %D.decl: @Inner.%D.type (%D.type.0e5) = fn_decl @D [symbolic = @Inner.%D (constants.%D.74c)] { -// CHECK:STDOUT: %return.patt: @D.%Inner.loc13_22.1 (%Inner.188) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @D.%Inner.loc13_22.1 (%Inner.188) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %D.decl: @Inner.%D.type (%D.type.102) = fn_decl @D [symbolic = @Inner.%D (constants.%D.d85)] { +// CHECK:STDOUT: %return.patt: @D.%Inner.loc13_22.1 (%Inner.c71) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @D.%Inner.loc13_22.1 (%Inner.c71) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc13: @D.%Inner.type (%Inner.type.099) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.c26)] -// CHECK:STDOUT: %Inner.ref: @D.%Inner.type (%Inner.type.099) = name_ref Inner, %.loc13 [symbolic = %Inner.generic (constants.%Inner.generic.c26)] +// CHECK:STDOUT: %.loc13: @D.%Inner.type (%Inner.type.eae) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.137)] +// CHECK:STDOUT: %Inner.ref: @D.%Inner.type (%Inner.type.eae) = name_ref Inner, %.loc13 [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_15.1 [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.188)] -// CHECK:STDOUT: %return.param: ref @D.%Inner.loc13_22.1 (%Inner.188) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @D.%Inner.loc13_22.1 (%Inner.188) = 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.c71)] +// CHECK:STDOUT: %return.param: ref @D.%Inner.loc13_22.1 (%Inner.c71) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @D.%Inner.loc13_22.1 (%Inner.c71) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.188 +// CHECK:STDOUT: .Self = constants.%Inner.c71 // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: .C = %C.decl @@ -574,73 +574,73 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name 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.cc3)] +// CHECK:STDOUT: %Outer.loc4_22.1: type = class_type @Outer, @Outer(%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.9d6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @A.%Outer.loc4_22.1 (%Outer.cc3) [symbolic = %require_complete (constants.%require_complete.889)] -// CHECK:STDOUT: %Outer.val: @A.%Outer.loc4_22.1 (%Outer.cc3) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.079)] +// CHECK:STDOUT: %require_complete: = require_complete_type @A.%Outer.loc4_22.1 (%Outer.9d6) [symbolic = %require_complete (constants.%require_complete.127)] +// CHECK:STDOUT: %Outer.val: @A.%Outer.loc4_22.1 (%Outer.9d6) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.234)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param_patt: @A.%Outer.loc4_22.1 (%Outer.cc3) { +// CHECK:STDOUT: fn() -> %return.param_patt: @A.%Outer.loc4_22.1 (%Outer.9d6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc5_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc5_15.2: init @A.%Outer.loc4_22.1 (%Outer.cc3) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.079)] -// CHECK:STDOUT: %.loc5_16: init @A.%Outer.loc4_22.1 (%Outer.cc3) = converted %.loc5_15.1, %.loc5_15.2 [symbolic = %Outer.val (constants.%Outer.val.079)] +// CHECK:STDOUT: %.loc5_15.2: init @A.%Outer.loc4_22.1 (%Outer.9d6) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.234)] +// CHECK:STDOUT: %.loc5_16: init @A.%Outer.loc4_22.1 (%Outer.9d6) = converted %.loc5_15.1, %.loc5_15.2 [symbolic = %Outer.val (constants.%Outer.val.234)] // CHECK:STDOUT: return %.loc5_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @B(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %U: type = bind_symbolic_name 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.074)] +// CHECK:STDOUT: %Outer.loc7_22.1: type = class_type @Outer, @Outer(%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.99f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @B.%Outer.loc7_22.1 (%Outer.074) [symbolic = %require_complete (constants.%require_complete.0d5)] -// CHECK:STDOUT: %Outer.val: @B.%Outer.loc7_22.1 (%Outer.074) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.5df)] +// CHECK:STDOUT: %require_complete: = require_complete_type @B.%Outer.loc7_22.1 (%Outer.99f) [symbolic = %require_complete (constants.%require_complete.964)] +// CHECK:STDOUT: %Outer.val: @B.%Outer.loc7_22.1 (%Outer.99f) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.a2f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param_patt: @B.%Outer.loc7_22.1 (%Outer.074) { +// CHECK:STDOUT: fn() -> %return.param_patt: @B.%Outer.loc7_22.1 (%Outer.99f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc8_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc8_15.2: init @B.%Outer.loc7_22.1 (%Outer.074) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.5df)] -// CHECK:STDOUT: %.loc8_16: init @B.%Outer.loc7_22.1 (%Outer.074) = converted %.loc8_15.1, %.loc8_15.2 [symbolic = %Outer.val (constants.%Outer.val.5df)] +// CHECK:STDOUT: %.loc8_15.2: init @B.%Outer.loc7_22.1 (%Outer.99f) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.a2f)] +// CHECK:STDOUT: %.loc8_16: init @B.%Outer.loc7_22.1 (%Outer.99f) = converted %.loc8_15.1, %.loc8_15.2 [symbolic = %Outer.val (constants.%Outer.val.a2f)] // CHECK:STDOUT: return %.loc8_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.099)] -// CHECK:STDOUT: %Inner.generic: @C.%Inner.type (%Inner.type.099) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.c26)] -// CHECK:STDOUT: %Inner.loc10_22.1: type = class_type @Inner, @Inner(%T, %T) [symbolic = %Inner.loc10_22.1 (constants.%Inner.ae6)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.generic: @C.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] +// CHECK:STDOUT: %Inner.loc10_22.1: type = class_type @Inner, @Inner(%T, %T) [symbolic = %Inner.loc10_22.1 (constants.%Inner.13a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @C.%Inner.loc10_22.1 (%Inner.ae6) [symbolic = %require_complete (constants.%require_complete.a07)] -// CHECK:STDOUT: %Inner.val: @C.%Inner.loc10_22.1 (%Inner.ae6) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.8ec)] +// CHECK:STDOUT: %require_complete: = require_complete_type @C.%Inner.loc10_22.1 (%Inner.13a) [symbolic = %require_complete (constants.%require_complete.7b1)] +// CHECK:STDOUT: %Inner.val: @C.%Inner.loc10_22.1 (%Inner.13a) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.69d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param_patt: @C.%Inner.loc10_22.1 (%Inner.ae6) { +// CHECK:STDOUT: fn() -> %return.param_patt: @C.%Inner.loc10_22.1 (%Inner.13a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc11_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc11_15.2: init @C.%Inner.loc10_22.1 (%Inner.ae6) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.8ec)] -// CHECK:STDOUT: %.loc11_16: init @C.%Inner.loc10_22.1 (%Inner.ae6) = converted %.loc11_15.1, %.loc11_15.2 [symbolic = %Inner.val (constants.%Inner.val.8ec)] +// CHECK:STDOUT: %.loc11_15.2: init @C.%Inner.loc10_22.1 (%Inner.13a) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.69d)] +// CHECK:STDOUT: %.loc11_16: init @C.%Inner.loc10_22.1 (%Inner.13a) = converted %.loc11_15.1, %.loc11_15.2 [symbolic = %Inner.val (constants.%Inner.val.69d)] // CHECK:STDOUT: return %.loc11_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @D(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.099)] -// CHECK:STDOUT: %Inner.generic: @D.%Inner.type (%Inner.type.099) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.c26)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.generic: @D.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %U: type = bind_symbolic_name 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.188)] +// CHECK:STDOUT: %Inner.loc13_22.1: type = class_type @Inner, @Inner(%T, %U) [symbolic = %Inner.loc13_22.1 (constants.%Inner.c71)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @D.%Inner.loc13_22.1 (%Inner.188) [symbolic = %require_complete (constants.%require_complete.ae5)] -// CHECK:STDOUT: %Inner.val: @D.%Inner.loc13_22.1 (%Inner.188) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.2b2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @D.%Inner.loc13_22.1 (%Inner.c71) [symbolic = %require_complete (constants.%require_complete.e7e)] +// CHECK:STDOUT: %Inner.val: @D.%Inner.loc13_22.1 (%Inner.c71) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.dfa)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param_patt: @D.%Inner.loc13_22.1 (%Inner.188) { +// CHECK:STDOUT: fn() -> %return.param_patt: @D.%Inner.loc13_22.1 (%Inner.c71) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc14_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc14_15.2: init @D.%Inner.loc13_22.1 (%Inner.188) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.2b2)] -// CHECK:STDOUT: %.loc14_16: init @D.%Inner.loc13_22.1 (%Inner.188) = converted %.loc14_15.1, %.loc14_15.2 [symbolic = %Inner.val (constants.%Inner.val.2b2)] +// CHECK:STDOUT: %.loc14_15.2: init @D.%Inner.loc13_22.1 (%Inner.c71) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.dfa)] +// CHECK:STDOUT: %.loc14_16: init @D.%Inner.loc13_22.1 (%Inner.c71) = converted %.loc14_15.1, %.loc14_15.2 [symbolic = %Inner.val (constants.%Inner.val.dfa)] // CHECK:STDOUT: return %.loc14_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -650,8 +650,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt.loc2_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.099 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.c26 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.137 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%U) { @@ -660,19 +660,19 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %A.type => constants.%A.type.828 -// CHECK:STDOUT: %A => constants.%A.483 -// CHECK:STDOUT: %B.type => constants.%B.type.d03 -// CHECK:STDOUT: %B => constants.%B.4f9 -// CHECK:STDOUT: %C.type => constants.%C.type.e6b -// CHECK:STDOUT: %C => constants.%C.778 -// CHECK:STDOUT: %D.type => constants.%D.type.0e5 -// CHECK:STDOUT: %D => constants.%D.74c +// CHECK:STDOUT: %A.type => constants.%A.type.8d7 +// CHECK:STDOUT: %A => constants.%A.d0e +// CHECK:STDOUT: %B.type => constants.%B.type.880 +// CHECK:STDOUT: %B => constants.%B.c7b +// CHECK:STDOUT: %C.type => constants.%C.type.714 +// CHECK:STDOUT: %C => constants.%C.e62 +// CHECK:STDOUT: %D.type => constants.%D.type.102 +// CHECK:STDOUT: %D => constants.%D.d85 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Outer.loc4_22.1 => constants.%Outer.cc3 +// CHECK:STDOUT: %Outer.loc4_22.1 => constants.%Outer.9d6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@A.%T) {} @@ -682,13 +682,13 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt.loc2_13.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.7f1 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.9df +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.a71 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.e3b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @B(constants.%T, constants.%U) { // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Outer.loc7_22.1 => constants.%Outer.074 +// CHECK:STDOUT: %Outer.loc7_22.1 => constants.%Outer.99f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@B.%U) {} @@ -699,21 +699,21 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %A.type => constants.%A.type.daf -// CHECK:STDOUT: %A => constants.%A.7bc -// CHECK:STDOUT: %B.type => constants.%B.type.24d -// CHECK:STDOUT: %B => constants.%B.c71 -// CHECK:STDOUT: %C.type => constants.%C.type.8cc -// CHECK:STDOUT: %C => constants.%C.516 -// CHECK:STDOUT: %D.type => constants.%D.type.36d -// CHECK:STDOUT: %D => constants.%D.60f +// CHECK:STDOUT: %A.type => constants.%A.type.5c8 +// CHECK:STDOUT: %A => constants.%A.7e2 +// CHECK:STDOUT: %B.type => constants.%B.type.ec0 +// CHECK:STDOUT: %B => constants.%B.051 +// CHECK:STDOUT: %C.type => constants.%C.type.1cf +// CHECK:STDOUT: %C => constants.%C.cf5 +// CHECK:STDOUT: %D.type => constants.%D.type.7bc +// CHECK:STDOUT: %D => constants.%D.aa3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.099 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.c26 -// CHECK:STDOUT: %Inner.loc10_22.1 => constants.%Inner.ae6 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.137 +// CHECK:STDOUT: %Inner.loc10_22.1 => constants.%Inner.13a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@C.%T) {} @@ -722,10 +722,10 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.099 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.c26 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.137 // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Inner.loc13_22.1 => constants.%Inner.188 +// CHECK:STDOUT: %Inner.loc13_22.1 => constants.%Inner.c71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@D.%T) {} diff --git a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon index d4acd0c5a25c..aa9dd42c38ce 100644 --- a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon +++ b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon @@ -42,49 +42,49 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int.2, @Int.2(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %A.type: type = generic_class_type @A [template] // CHECK:STDOUT: %A.generic: %A.type = struct_value () [template] -// CHECK:STDOUT: %A.71d: type = class_type @A, @A(%N.3e4) [symbolic] -// CHECK:STDOUT: %A.elem.792: type = unbound_element_type %A.71d, %B [symbolic] -// CHECK:STDOUT: %Convert.type.d18: type = fn_type @Convert.3, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.079: %Convert.type.d18 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.d9b: = bound_method %N.3e4, %Convert.079 [symbolic] -// CHECK:STDOUT: %Convert.specific_fn.ad3: = specific_function %Convert.bound.d9b, @Convert.3(%int_32) [symbolic] -// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn.ad3(%N.3e4) [symbolic] -// CHECK:STDOUT: %iN.builtin.3ce: type = int_type signed, %int.convert_checked [symbolic] -// CHECK:STDOUT: %require_complete.47c: = require_complete_type %iN.builtin.3ce [symbolic] -// CHECK:STDOUT: %A.elem.674: type = unbound_element_type %A.71d, %iN.builtin.3ce [symbolic] -// CHECK:STDOUT: %struct_type.base.n: type = struct_type {.base: %B, .n: %iN.builtin.3ce} [symbolic] -// CHECK:STDOUT: %complete_type.8e3: = complete_type_witness %struct_type.base.n [symbolic] +// CHECK:STDOUT: %A.dd3: type = class_type @A, @A(%N.51e) [symbolic] +// CHECK:STDOUT: %A.elem.500: type = unbound_element_type %A.dd3, %B [symbolic] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.588: = bound_method %N.51e, %Convert.960 [symbolic] +// CHECK:STDOUT: %Convert.specific_fn.18b: = specific_function %Convert.bound.588, @Convert.3(%int_32) [symbolic] +// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn.18b(%N.51e) [symbolic] +// CHECK:STDOUT: %iN.builtin.c5d: type = int_type signed, %int.convert_checked [symbolic] +// CHECK:STDOUT: %require_complete.be5: = require_complete_type %iN.builtin.c5d [symbolic] +// CHECK:STDOUT: %A.elem.d60: type = unbound_element_type %A.dd3, %iN.builtin.c5d [symbolic] +// CHECK:STDOUT: %struct_type.base.n: type = struct_type {.base: %B, .n: %iN.builtin.c5d} [symbolic] +// CHECK:STDOUT: %complete_type.547: = complete_type_witness %struct_type.base.n [symbolic] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %A.b93: type = class_type @A, @A(%int_0.f61) [template] -// CHECK:STDOUT: %ptr.ee1: type = ptr_type %A.b93 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %A.6fc: type = class_type @A, @A(%int_0.6a9) [template] +// CHECK:STDOUT: %ptr.b65: type = ptr_type %A.6fc [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [template] -// CHECK:STDOUT: %A.elem.fcc: type = unbound_element_type %A.b93, %B [template] -// CHECK:STDOUT: %Convert.bound.64e: = bound_method %int_0.f61, %Convert.079 [template] -// CHECK:STDOUT: %Convert.specific_fn.f03: = specific_function %Convert.bound.64e, @Convert.3(%int_32) [template] +// CHECK:STDOUT: %A.elem.d81: type = unbound_element_type %A.6fc, %B [template] +// CHECK:STDOUT: %Convert.bound.0fd: = bound_method %int_0.6a9, %Convert.960 [template] +// CHECK:STDOUT: %Convert.specific_fn.f3f: = specific_function %Convert.bound.0fd, @Convert.3(%int_32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IntLiteral = %import_ref.8ee -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .IntLiteral = %import_ref.72f0 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.8ee: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] +// CHECK:STDOUT: %import_ref.72f0: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -105,7 +105,7 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %N.param: Core.IntLiteral = value_param runtime_param0 // CHECK:STDOUT: %.loc2_27.1: type = splice_block %.loc2_27.3 [template = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f0 [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc2_27.2: type = value_of_initializer %int_literal.make_type [template = Core.IntLiteral] // CHECK:STDOUT: %.loc2_27.3: type = converted %int_literal.make_type, %.loc2_27.2 [template = Core.IntLiteral] @@ -116,34 +116,34 @@ fn F(a: A(0)*) { // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {} // CHECK:STDOUT: %A.decl: %A.type = class_decl @A [template = constants.%A.generic] { -// CHECK:STDOUT: %N.patt.loc6_9.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_9.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc6_9.1, runtime_param [symbolic = %N.patt.loc6_9.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc6_9.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_9.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc6_9.1, runtime_param [symbolic = %N.patt.loc6_9.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: } { // CHECK:STDOUT: %N.param: %i32 = value_param runtime_param // CHECK:STDOUT: %.loc6: type = splice_block %i32 [template = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int.2, @Int.2(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_9.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_9.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc6_9.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_9.2 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %a.patt: %ptr.ee1 = binding_pattern a -// CHECK:STDOUT: %a.param_patt: %ptr.ee1 = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: %ptr.b65 = binding_pattern a +// CHECK:STDOUT: %a.param_patt: %ptr.b65 = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.ee1 = value_param runtime_param0 -// CHECK:STDOUT: %.loc15_13: type = splice_block %ptr [template = constants.%ptr.ee1] { +// CHECK:STDOUT: %a.param: %ptr.b65 = value_param runtime_param0 +// CHECK:STDOUT: %.loc15_13: type = splice_block %ptr [template = constants.%ptr.b65] { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [template = constants.%A.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc15_12.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc15_12.2: %i32 = converted %int_0, %.loc15_12.1 [template = constants.%int_0.f61] -// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%int_0.f61) [template = constants.%A.b93] -// CHECK:STDOUT: %ptr: type = ptr_type %A.b93 [template = constants.%ptr.ee1] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc15_12.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc15_12.2: %i32 = converted %int_0, %.loc15_12.1 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%int_0.6a9) [template = constants.%A.6fc] +// CHECK:STDOUT: %ptr: type = ptr_type %A.6fc [template = constants.%ptr.b65] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.ee1 = bind_name a, %a.param +// CHECK:STDOUT: %a: %ptr.b65 = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -156,29 +156,29 @@ fn F(a: A(0)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @A(%N.loc6_9.1: %i32) { -// CHECK:STDOUT: %N.loc6_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc6_9.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_9.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc6_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc6_9.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_9.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A: type = class_type @A, @A(%N.loc6_9.2) [symbolic = %A (constants.%A.71d)] -// CHECK:STDOUT: %A.elem.loc7: type = unbound_element_type @A.%A (%A.71d), %B [symbolic = %A.elem.loc7 (constants.%A.elem.792)] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc6_9.2, constants.%Convert.079 [symbolic = %Convert.bound (constants.%Convert.bound.d9b)] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.3(constants.%int_32) [symbolic = %Convert.specific_fn (constants.%Convert.specific_fn.ad3)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%N.loc6_9.2) [symbolic = %A (constants.%A.dd3)] +// CHECK:STDOUT: %A.elem.loc7: type = unbound_element_type @A.%A (%A.dd3), %B [symbolic = %A.elem.loc7 (constants.%A.elem.500)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc6_9.2, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound.588)] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.3(constants.%int_32) [symbolic = %Convert.specific_fn (constants.%Convert.specific_fn.18b)] // CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.loc6_9.2) [symbolic = %int.convert_checked (constants.%int.convert_checked)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked [symbolic = %iN.builtin (constants.%iN.builtin.3ce)] -// CHECK:STDOUT: %require_complete: = require_complete_type @A.%iN.builtin (%iN.builtin.3ce) [symbolic = %require_complete (constants.%require_complete.47c)] -// CHECK:STDOUT: %A.elem.loc12: type = unbound_element_type @A.%A (%A.71d), @A.%iN.builtin (%iN.builtin.3ce) [symbolic = %A.elem.loc12 (constants.%A.elem.674)] -// CHECK:STDOUT: %struct_type.base.n: type = struct_type {.base: %B, .n: @A.%iN.builtin (%iN.builtin.3ce)} [symbolic = %struct_type.base.n (constants.%struct_type.base.n)] -// CHECK:STDOUT: %complete_type.loc13_1.2: = complete_type_witness @A.%struct_type.base.n (%struct_type.base.n) [symbolic = %complete_type.loc13_1.2 (constants.%complete_type.8e3)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked [symbolic = %iN.builtin (constants.%iN.builtin.c5d)] +// CHECK:STDOUT: %require_complete: = require_complete_type @A.%iN.builtin (%iN.builtin.c5d) [symbolic = %require_complete (constants.%require_complete.be5)] +// CHECK:STDOUT: %A.elem.loc12: type = unbound_element_type @A.%A (%A.dd3), @A.%iN.builtin (%iN.builtin.c5d) [symbolic = %A.elem.loc12 (constants.%A.elem.d60)] +// CHECK:STDOUT: %struct_type.base.n: type = struct_type {.base: %B, .n: @A.%iN.builtin (%iN.builtin.c5d)} [symbolic = %struct_type.base.n (constants.%struct_type.base.n)] +// CHECK:STDOUT: %complete_type.loc13_1.2: = complete_type_witness @A.%struct_type.base.n (%struct_type.base.n) [symbolic = %complete_type.loc13_1.2 (constants.%complete_type.547)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] -// CHECK:STDOUT: %.loc7: @A.%A.elem.loc7 (%A.elem.792) = base_decl %B.ref, element0 [template] -// CHECK:STDOUT: %.loc12: @A.%A.elem.loc12 (%A.elem.674) = field_decl n, element1 [template] -// CHECK:STDOUT: %complete_type.loc13_1.1: = complete_type_witness %struct_type.base.n [symbolic = %complete_type.loc13_1.2 (constants.%complete_type.8e3)] +// CHECK:STDOUT: %.loc7: @A.%A.elem.loc7 (%A.elem.500) = base_decl %B.ref, element0 [template] +// CHECK:STDOUT: %.loc12: @A.%A.elem.loc12 (%A.elem.d60) = field_decl n, element1 [template] +// CHECK:STDOUT: %complete_type.loc13_1.1: = complete_type_witness %struct_type.base.n [symbolic = %complete_type.loc13_1.2 (constants.%complete_type.547)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%A.71d +// CHECK:STDOUT: .Self = constants.%A.dd3 // CHECK:STDOUT: .base = %.loc7 // CHECK:STDOUT: .n = %.loc12 // CHECK:STDOUT: extend %B.ref @@ -188,10 +188,10 @@ fn F(a: A(0)*) { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int.1(%N.param_patt: Core.IntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%a.param_patt: %ptr.ee1) { +// CHECK:STDOUT: fn @F(%a.param_patt: %ptr.b65) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.ee1 = name_ref a, %a -// CHECK:STDOUT: %.loc19_16.1: ref %A.b93 = deref %a.ref +// CHECK:STDOUT: %a.ref: %ptr.b65 = name_ref a, %a +// CHECK:STDOUT: %.loc19_16.1: ref %A.6fc = deref %a.ref // CHECK:STDOUT: %.loc19_16.2: ref %B = class_element_access %.loc19_16.1, element0 // CHECK:STDOUT: %addr: %ptr.e79 = addr_of %.loc19_16.2 // CHECK:STDOUT: %.loc19_16.3: %ptr.e79 = converted %a.ref, %addr @@ -199,22 +199,22 @@ fn F(a: A(0)*) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc6_9.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc6_9.2 => constants.%N.3e4 +// CHECK:STDOUT: specific @A(constants.%N.51e) { +// CHECK:STDOUT: %N.loc6_9.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc6_9.2 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(%N.loc6_9.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%int_0.f61) { -// CHECK:STDOUT: %N.loc6_9.2 => constants.%int_0.f61 -// CHECK:STDOUT: %N.patt.loc6_9.2 => constants.%int_0.f61 +// CHECK:STDOUT: specific @A(constants.%int_0.6a9) { +// CHECK:STDOUT: %N.loc6_9.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %N.patt.loc6_9.2 => constants.%int_0.6a9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A => constants.%A.b93 -// CHECK:STDOUT: %A.elem.loc7 => constants.%A.elem.fcc -// CHECK:STDOUT: %Convert.bound => constants.%Convert.bound.64e -// CHECK:STDOUT: %Convert.specific_fn => constants.%Convert.specific_fn.f03 +// CHECK:STDOUT: %A => constants.%A.6fc +// CHECK:STDOUT: %A.elem.loc7 => constants.%A.elem.d81 +// CHECK:STDOUT: %Convert.bound => constants.%Convert.bound.0fd +// CHECK:STDOUT: %Convert.specific_fn => constants.%Convert.specific_fn.f3f // CHECK:STDOUT: %int.convert_checked => 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 f5c9d5c5e01e..ac669b2fc26d 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -31,39 +31,39 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class.2c9: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Class.elem.0a3: type = unbound_element_type %Class.2c9, %T [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] +// CHECK:STDOUT: %Class.fe1b2d.1: type = class_type @Class, @Class(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4aeca8.1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Class.elem.e262de.1: type = unbound_element_type %Class.fe1b2d.1, %T [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac3f0.1: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.4339b3.1: = complete_type_witness %struct_type.x.2ac3f0.1 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Class.d3a: type = class_type @Class, @Class(%i32) [template] +// CHECK:STDOUT: %Class.247: type = class_type @Class, @Class(%i32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %Class.elem.0f0: type = unbound_element_type %Class.d3a, %i32 [template] -// CHECK:STDOUT: %struct_type.x.b74: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x.b74 [template] +// CHECK:STDOUT: %Class.elem.2d8: type = unbound_element_type %Class.247, %i32 [template] +// CHECK:STDOUT: %struct_type.x.ed6: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x.ed6 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.723: = require_complete_type %Class.2c9 [symbolic] +// CHECK:STDOUT: %require_complete.4f8a42.1: = require_complete_type %Class.fe1b2d.1 [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] -// CHECK:STDOUT: %Class.ad5: type = class_type @Class, @Class(%U) [symbolic] +// CHECK:STDOUT: %Class.fe1b2d.2: type = class_type @Class, @Class(%U) [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %Class.elem.017: type = unbound_element_type %Class.ad5, %U [symbolic] -// CHECK:STDOUT: %struct_type.x.5e5: type = struct_type {.x: %U} [symbolic] -// CHECK:STDOUT: %complete_type.fd0: = complete_type_witness %struct_type.x.5e5 [symbolic] -// CHECK:STDOUT: %require_complete.5db: = require_complete_type %Class.ad5 [symbolic] +// CHECK:STDOUT: %require_complete.4aeca8.2: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %Class.elem.e262de.2: type = unbound_element_type %Class.fe1b2d.2, %U [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac3f0.2: type = struct_type {.x: %U} [symbolic] +// CHECK:STDOUT: %complete_type.4339b3.2: = complete_type_witness %struct_type.x.2ac3f0.2 [symbolic] +// CHECK:STDOUT: %require_complete.4f8a42.2: = require_complete_type %Class.fe1b2d.2 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -86,63 +86,63 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %c.patt: %Class.d3a = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %Class.d3a = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: %Class.247 = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %Class.247 = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc15_24: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_24: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %c.param: %Class.d3a = value_param runtime_param0 -// CHECK:STDOUT: %.loc15: type = splice_block %Class [template = constants.%Class.d3a] { +// CHECK:STDOUT: %c.param: %Class.247 = value_param runtime_param0 +// CHECK:STDOUT: %.loc15: type = splice_block %Class [template = constants.%Class.247] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic] // CHECK:STDOUT: %int_32.loc15_15: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_15: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [template = constants.%Class.d3a] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [template = constants.%Class.247] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %Class.d3a = bind_name c, %c.param +// CHECK:STDOUT: %c: %Class.247 = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %T.patt.loc19_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc19_6.1, runtime_param [symbolic = %T.patt.loc19_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %c.patt: @G.%Class.loc19_26.2 (%Class.2c9) = binding_pattern c -// CHECK:STDOUT: %c.param_patt: @G.%Class.loc19_26.2 (%Class.2c9) = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: @G.%Class.loc19_26.2 (%Class.fe1b2d.1) = binding_pattern c +// CHECK:STDOUT: %c.param_patt: @G.%Class.loc19_26.2 (%Class.fe1b2d.1) = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @G.%T.loc19_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @G.%T.loc19_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc19_32: type = name_ref T, %T.loc19_6.1 [symbolic = %T.loc19_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc19_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_6.2 (constants.%T)] -// CHECK:STDOUT: %c.param: @G.%Class.loc19_26.2 (%Class.2c9) = value_param runtime_param0 -// CHECK:STDOUT: %.loc19: type = splice_block %Class.loc19_26.1 [symbolic = %Class.loc19_26.2 (constants.%Class.2c9)] { +// CHECK:STDOUT: %c.param: @G.%Class.loc19_26.2 (%Class.fe1b2d.1) = value_param runtime_param0 +// CHECK:STDOUT: %.loc19: type = splice_block %Class.loc19_26.1 [symbolic = %Class.loc19_26.2 (constants.%Class.fe1b2d.1)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic] // CHECK:STDOUT: %T.ref.loc19_25: type = name_ref T, %T.loc19_6.1 [symbolic = %T.loc19_6.2 (constants.%T)] -// CHECK:STDOUT: %Class.loc19_26.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc19_26.2 (constants.%Class.2c9)] +// CHECK:STDOUT: %Class.loc19_26.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc19_26.2 (constants.%Class.fe1b2d.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @G.%Class.loc19_26.2 (%Class.2c9) = bind_name c, %c.param +// CHECK:STDOUT: %c: @G.%Class.loc19_26.2 (%Class.fe1b2d.1) = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref @G.%T.loc19_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @G.%T.loc19_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] { // CHECK:STDOUT: %U.patt.loc23_6.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc23_6.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc23_6.1, runtime_param [symbolic = %U.patt.loc23_6.2 (constants.%U.patt)] -// CHECK:STDOUT: %c.patt: @H.%Class.loc23_26.2 (%Class.ad5) = binding_pattern c -// CHECK:STDOUT: %c.param_patt: @H.%Class.loc23_26.2 (%Class.ad5) = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: @H.%Class.loc23_26.2 (%Class.fe1b2d.2) = binding_pattern c +// CHECK:STDOUT: %c.param_patt: @H.%Class.loc23_26.2 (%Class.fe1b2d.2) = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @H.%U.loc23_6.2 (%U) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @H.%U.loc23_6.2 (%U) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc23_32: type = name_ref U, %U.loc23_6.1 [symbolic = %U.loc23_6.2 (constants.%U)] // CHECK:STDOUT: %U.param: type = value_param runtime_param // CHECK:STDOUT: %U.loc23_6.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc23_6.2 (constants.%U)] -// CHECK:STDOUT: %c.param: @H.%Class.loc23_26.2 (%Class.ad5) = value_param runtime_param0 -// CHECK:STDOUT: %.loc23: type = splice_block %Class.loc23_26.1 [symbolic = %Class.loc23_26.2 (constants.%Class.ad5)] { +// CHECK:STDOUT: %c.param: @H.%Class.loc23_26.2 (%Class.fe1b2d.2) = value_param runtime_param0 +// CHECK:STDOUT: %.loc23: type = splice_block %Class.loc23_26.1 [symbolic = %Class.loc23_26.2 (constants.%Class.fe1b2d.2)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic] // CHECK:STDOUT: %U.ref.loc23_25: type = name_ref U, %U.loc23_6.1 [symbolic = %U.loc23_6.2 (constants.%U)] -// CHECK:STDOUT: %Class.loc23_26.1: type = class_type @Class, @Class(constants.%U) [symbolic = %Class.loc23_26.2 (constants.%Class.ad5)] +// CHECK:STDOUT: %Class.loc23_26.1: type = class_type @Class, @Class(constants.%U) [symbolic = %Class.loc23_26.2 (constants.%Class.fe1b2d.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @H.%Class.loc23_26.2 (%Class.ad5) = bind_name c, %c.param +// CHECK:STDOUT: %c: @H.%Class.loc23_26.2 (%Class.fe1b2d.2) = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref @H.%U.loc23_6.2 (%U) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @H.%U.loc23_6.2 (%U) = return_slot %return.param // CHECK:STDOUT: } @@ -153,27 +153,27 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %T.patt.loc11_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc11_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class.2c9)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class.2c9), @Class.%T.loc11_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.0a3)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Class.%T.loc11_13.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type.loc13_1.2: = complete_type_witness @Class.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type.loc13_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc11_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4aeca8.1)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class.fe1b2d.1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class.fe1b2d.1), @Class.%T.loc11_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.e262de.1)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Class.%T.loc11_13.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac3f0.1)] +// CHECK:STDOUT: %complete_type.loc13_1.2: = complete_type_witness @Class.%struct_type.x (%struct_type.x.2ac3f0.1) [symbolic = %complete_type.loc13_1.2 (constants.%complete_type.4339b3.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc12: @Class.%Class.elem (%Class.elem.0a3) = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type.loc13_1.1: = complete_type_witness %struct_type.x.710 [symbolic = %complete_type.loc13_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %.loc12: @Class.%Class.elem (%Class.elem.e262de.1) = field_decl x, element0 [template] +// CHECK:STDOUT: %complete_type.loc13_1.1: = complete_type_witness %struct_type.x.2ac3f0.1 [symbolic = %complete_type.loc13_1.2 (constants.%complete_type.4339b3.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.2c9 +// CHECK:STDOUT: .Self = constants.%Class.fe1b2d.1 // CHECK:STDOUT: .x = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type.loc13_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%c.param_patt: %Class.d3a) -> %i32 { +// CHECK:STDOUT: fn @F(%c.param_patt: %Class.247) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %Class.d3a = name_ref c, %c -// CHECK:STDOUT: %x.ref: %Class.elem.0f0 = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] +// CHECK:STDOUT: %c.ref: %Class.247 = name_ref c, %c +// CHECK:STDOUT: %x.ref: %Class.elem.2d8 = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] // CHECK:STDOUT: %.loc16_11.1: ref %i32 = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc16_11.2: %i32 = bind_value %.loc16_11.1 // CHECK:STDOUT: return %.loc16_11.2 @@ -182,17 +182,17 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: generic fn @G(%T.loc19_6.1: type) { // CHECK:STDOUT: %T.loc19_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc19_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %Class.loc19_26.2: type = class_type @Class, @Class(%T.loc19_6.2) [symbolic = %Class.loc19_26.2 (constants.%Class.2c9)] +// CHECK:STDOUT: %Class.loc19_26.2: type = class_type @Class, @Class(%T.loc19_6.2) [symbolic = %Class.loc19_26.2 (constants.%Class.fe1b2d.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc19: = require_complete_type @G.%Class.loc19_26.2 (%Class.2c9) [symbolic = %require_complete.loc19 (constants.%require_complete.723)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type @G.%Class.loc19_26.2 (%Class.2c9), @G.%T.loc19_6.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.0a3)] -// CHECK:STDOUT: %require_complete.loc20: = require_complete_type @G.%T.loc19_6.2 (%T) [symbolic = %require_complete.loc20 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc19: = require_complete_type @G.%Class.loc19_26.2 (%Class.fe1b2d.1) [symbolic = %require_complete.loc19 (constants.%require_complete.4f8a42.1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type @G.%Class.loc19_26.2 (%Class.fe1b2d.1), @G.%T.loc19_6.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.e262de.1)] +// CHECK:STDOUT: %require_complete.loc20: = require_complete_type @G.%T.loc19_6.2 (%T) [symbolic = %require_complete.loc20 (constants.%require_complete.4aeca8.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %c.param_patt: @G.%Class.loc19_26.2 (%Class.2c9)) -> @G.%T.loc19_6.2 (%T) { +// CHECK:STDOUT: fn(%T.param_patt: type, %c.param_patt: @G.%Class.loc19_26.2 (%Class.fe1b2d.1)) -> @G.%T.loc19_6.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @G.%Class.loc19_26.2 (%Class.2c9) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.0a3) = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] +// CHECK:STDOUT: %c.ref: @G.%Class.loc19_26.2 (%Class.fe1b2d.1) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.e262de.1) = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] // CHECK:STDOUT: %.loc20_11.1: ref @G.%T.loc19_6.2 (%T) = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc20_11.2: @G.%T.loc19_6.2 (%T) = bind_value %.loc20_11.1 // CHECK:STDOUT: return %.loc20_11.2 @@ -202,17 +202,17 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: generic fn @H(%U.loc23_6.1: type) { // CHECK:STDOUT: %U.loc23_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc23_6.2 (constants.%U)] // CHECK:STDOUT: %U.patt.loc23_6.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc23_6.2 (constants.%U.patt)] -// CHECK:STDOUT: %Class.loc23_26.2: type = class_type @Class, @Class(%U.loc23_6.2) [symbolic = %Class.loc23_26.2 (constants.%Class.ad5)] +// CHECK:STDOUT: %Class.loc23_26.2: type = class_type @Class, @Class(%U.loc23_6.2) [symbolic = %Class.loc23_26.2 (constants.%Class.fe1b2d.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc23_29: = require_complete_type @H.%U.loc23_6.2 (%U) [symbolic = %require_complete.loc23_29 (constants.%require_complete.427)] -// CHECK:STDOUT: %require_complete.loc23_17: = require_complete_type @H.%Class.loc23_26.2 (%Class.ad5) [symbolic = %require_complete.loc23_17 (constants.%require_complete.5db)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type @H.%Class.loc23_26.2 (%Class.ad5), @H.%U.loc23_6.2 (%U) [symbolic = %Class.elem (constants.%Class.elem.017)] +// CHECK:STDOUT: %require_complete.loc23_29: = require_complete_type @H.%U.loc23_6.2 (%U) [symbolic = %require_complete.loc23_29 (constants.%require_complete.4aeca8.2)] +// CHECK:STDOUT: %require_complete.loc23_17: = require_complete_type @H.%Class.loc23_26.2 (%Class.fe1b2d.2) [symbolic = %require_complete.loc23_17 (constants.%require_complete.4f8a42.2)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type @H.%Class.loc23_26.2 (%Class.fe1b2d.2), @H.%U.loc23_6.2 (%U) [symbolic = %Class.elem (constants.%Class.elem.e262de.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.param_patt: type, %c.param_patt: @H.%Class.loc23_26.2 (%Class.ad5)) -> @H.%U.loc23_6.2 (%U) { +// CHECK:STDOUT: fn(%U.param_patt: type, %c.param_patt: @H.%Class.loc23_26.2 (%Class.fe1b2d.2)) -> @H.%U.loc23_6.2 (%U) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @H.%Class.loc23_26.2 (%Class.ad5) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.017) = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] +// CHECK:STDOUT: %c.ref: @H.%Class.loc23_26.2 (%Class.fe1b2d.2) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.e262de.2) = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] // CHECK:STDOUT: %.loc24_11.1: ref @H.%U.loc23_6.2 (%U) = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc24_11.2: @H.%U.loc23_6.2 (%U) = bind_value %.loc24_11.1 // CHECK:STDOUT: return %.loc24_11.2 @@ -224,11 +224,11 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %T.patt.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %Class => constants.%Class.2c9 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.0a3 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.710 -// CHECK:STDOUT: %complete_type.loc13_1.2 => constants.%complete_type.60a +// CHECK:STDOUT: %require_complete => constants.%require_complete.4aeca8.1 +// CHECK:STDOUT: %Class => constants.%Class.fe1b2d.1 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.e262de.1 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.2ac3f0.1 +// CHECK:STDOUT: %complete_type.loc13_1.2 => constants.%complete_type.4339b3.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(%T.loc11_13.2) {} @@ -239,16 +239,16 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Class => constants.%Class.d3a -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.0f0 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.b74 -// CHECK:STDOUT: %complete_type.loc13_1.2 => constants.%complete_type.f6d +// CHECK:STDOUT: %Class => constants.%Class.247 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.2d8 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.ed6 +// CHECK:STDOUT: %complete_type.loc13_1.2 => constants.%complete_type.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { // CHECK:STDOUT: %T.loc19_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc19_6.2 => constants.%T -// CHECK:STDOUT: %Class.loc19_26.2 => constants.%Class.2c9 +// CHECK:STDOUT: %Class.loc19_26.2 => constants.%Class.fe1b2d.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@G.%T.loc19_6.2) {} @@ -258,17 +258,17 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %T.patt.loc11_13.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.427 -// CHECK:STDOUT: %Class => constants.%Class.ad5 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.017 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.5e5 -// CHECK:STDOUT: %complete_type.loc13_1.2 => constants.%complete_type.fd0 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4aeca8.2 +// CHECK:STDOUT: %Class => constants.%Class.fe1b2d.2 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.e262de.2 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.2ac3f0.2 +// CHECK:STDOUT: %complete_type.loc13_1.2 => constants.%complete_type.4339b3.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%U) { // CHECK:STDOUT: %U.loc23_6.2 => constants.%U // CHECK:STDOUT: %U.patt.loc23_6.2 => constants.%U -// CHECK:STDOUT: %Class.loc23_26.2 => constants.%Class.ad5 +// CHECK:STDOUT: %Class.loc23_26.2 => constants.%Class.fe1b2d.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@H.%U.loc23_6.2) {} diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index f1782478a22d..d090116a159d 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -93,31 +93,31 @@ class Class(U:! type) { // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] // CHECK:STDOUT: %CompleteClass.type: type = generic_class_type @CompleteClass [template] // CHECK:STDOUT: %CompleteClass.generic: %CompleteClass.type = struct_value () [template] -// CHECK:STDOUT: %CompleteClass.332: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.f97: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass.332, %i32 [symbolic] -// CHECK:STDOUT: %F.type.24b: type = fn_type @F.1, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %F.b4a: %F.type.24b = struct_value () [symbolic] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass.f97, %i32 [symbolic] +// CHECK:STDOUT: %F.type.14f: type = fn_type @F.1, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %F.874: %F.type.14f = struct_value () [symbolic] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %CompleteClass.b7f: type = class_type @CompleteClass, @CompleteClass(%i32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %CompleteClass.e9e: type = class_type @CompleteClass, @CompleteClass(%i32) [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -146,15 +146,15 @@ class Class(U:! type) { // CHECK:STDOUT: %T.loc6_21.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_21.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.2 [template = constants.%F.c41] { -// CHECK:STDOUT: %return.patt: %CompleteClass.b7f = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %CompleteClass.b7f = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %CompleteClass.e9e = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %CompleteClass.e9e = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, file.%CompleteClass.decl [template = constants.%CompleteClass.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [template = constants.%CompleteClass.b7f] -// CHECK:STDOUT: %return.param: ref %CompleteClass.b7f = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %CompleteClass.b7f = return_slot %return.param +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [template = constants.%CompleteClass.e9e] +// CHECK:STDOUT: %return.param: ref %CompleteClass.e9e = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %CompleteClass.e9e = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -170,14 +170,14 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt.loc6_21.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_21.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T.loc6_21.2) [symbolic = %CompleteClass (constants.%CompleteClass.332)] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.332), %i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T.loc6_21.2) [symbolic = %F.type (constants.%F.type.24b)] -// CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.24b) = struct_value () [symbolic = %F (constants.%F.b4a)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T.loc6_21.2) [symbolic = %CompleteClass (constants.%CompleteClass.f97)] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.f97), %i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T.loc6_21.2) [symbolic = %F.type (constants.%F.type.14f)] +// CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.14f) = struct_value () [symbolic = %F (constants.%F.874)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %.loc7: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem) = field_decl n, element0 [template] -// CHECK:STDOUT: %F.decl: @CompleteClass.%F.type (%F.type.24b) = fn_decl @F.1 [symbolic = @CompleteClass.%F (constants.%F.b4a)] { +// CHECK:STDOUT: %F.decl: @CompleteClass.%F.type (%F.type.14f) = fn_decl @F.1 [symbolic = @CompleteClass.%F (constants.%F.874)] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -186,10 +186,10 @@ class Class(U:! type) { // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%CompleteClass.332 +// CHECK:STDOUT: .Self = constants.%CompleteClass.f97 // CHECK:STDOUT: .n = %.loc7 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type @@ -202,17 +202,17 @@ class Class(U:! type) { // CHECK:STDOUT: fn() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc8_27.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc8_27.2: %i32 = converted %int_0, %.loc8_27.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc8_27.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc8_27.2: %i32 = converted %int_0, %.loc8_27.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc8_27.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2() -> %CompleteClass.b7f; +// CHECK:STDOUT: fn @F.2() -> %CompleteClass.e9e; // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { // CHECK:STDOUT: %T.loc4_13.2 => constants.%T @@ -224,10 +224,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt.loc6_21.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.332 +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.f97 // CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem -// CHECK:STDOUT: %F.type => constants.%F.type.24b -// CHECK:STDOUT: %F => constants.%F.b4a +// CHECK:STDOUT: %F.type => constants.%F.type.14f +// CHECK:STDOUT: %F => constants.%F.874 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T) {} @@ -249,54 +249,54 @@ class Class(U:! type) { // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x [symbolic] // CHECK:STDOUT: %CompleteClass.type: type = generic_class_type @CompleteClass [template] // CHECK:STDOUT: %CompleteClass.generic: %CompleteClass.type = struct_value () [template] -// CHECK:STDOUT: %struct_type.n.dff: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.a01: = complete_type_witness %struct_type.n.dff [template] -// CHECK:STDOUT: %CompleteClass.535: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %CompleteClass.elem.9af: type = unbound_element_type %CompleteClass.535, %i32 [symbolic] -// CHECK:STDOUT: %F.type.7da: type = fn_type @F.1, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %F.2ba: %F.type.7da = struct_value () [symbolic] -// CHECK:STDOUT: %CompleteClass.a69: type = class_type @CompleteClass, @CompleteClass(%i32) [template] +// CHECK:STDOUT: %struct_type.n.4d6: type = struct_type {.n: %i32} [template] +// CHECK:STDOUT: %complete_type.a68: = complete_type_witness %struct_type.n.4d6 [template] +// CHECK:STDOUT: %CompleteClass.f97: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.elem.9ef: type = unbound_element_type %CompleteClass.f97, %i32 [symbolic] +// CHECK:STDOUT: %F.type.14f: type = fn_type @F.1, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %F.874: %F.type.14f = struct_value () [symbolic] +// CHECK:STDOUT: %CompleteClass.a06: type = class_type @CompleteClass, @CompleteClass(%i32) [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] -// CHECK:STDOUT: %CompleteClass.elem.030: type = unbound_element_type %CompleteClass.a69, %i32 [template] -// CHECK:STDOUT: %F.type.764: type = fn_type @F.1, @CompleteClass(%i32) [template] -// CHECK:STDOUT: %F.9ca: %F.type.764 = struct_value () [template] +// CHECK:STDOUT: %CompleteClass.elem.426: type = unbound_element_type %CompleteClass.a06, %i32 [template] +// CHECK:STDOUT: %F.type.0aa: type = fn_type @F.1, @CompleteClass(%i32) [template] +// CHECK:STDOUT: %F.971: %F.type.0aa = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.n.44a: type = struct_type {.n: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.40a: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.764: = impl_witness (imports.%import_ref.154), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.f1c: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.4b8: %Convert.type.f1c = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.4b8 [template] +// CHECK:STDOUT: %Convert.type.ea0: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.847: = impl_witness (imports.%import_ref.773), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.e14: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.4cb: %Convert.type.e14 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.4cb [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.059: %i32 = int_value 1 [template] -// CHECK:STDOUT: %CompleteClass.val: %CompleteClass.a69 = struct_value (%int_1.059) [template] +// CHECK:STDOUT: %int_1.47b: %i32 = int_value 1 [template] +// CHECK:STDOUT: %CompleteClass.val: %CompleteClass.a06 = struct_value (%int_1.47b) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.ff5: %CompleteClass.type = import_ref Main//foo, CompleteClass, loaded [template = constants.%CompleteClass.generic] +// CHECK:STDOUT: %import_ref.cfa: %CompleteClass.type = import_ref Main//foo, CompleteClass, loaded [template = constants.%CompleteClass.generic] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 -// CHECK:STDOUT: .ImplicitAs = %import_ref.edd +// CHECK:STDOUT: .Int = %import_ref.2c8 +// CHECK:STDOUT: .ImplicitAs = %import_ref.e26 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.dc0: = import_ref Main//foo, loc9_1, loaded [template = constants.%complete_type.a01] -// CHECK:STDOUT: %import_ref.8a7 = import_ref Main//foo, inst37 [no loc], unloaded -// CHECK:STDOUT: %import_ref.b9f = import_ref Main//foo, loc7_8, unloaded -// CHECK:STDOUT: %import_ref.355 = import_ref Main//foo, loc8_17, unloaded +// CHECK:STDOUT: %import_ref.eb1: = import_ref Main//foo, loc9_1, loaded [template = constants.%complete_type.a68] +// CHECK:STDOUT: %import_ref.3c0 = import_ref Main//foo, inst37 [no loc], unloaded +// CHECK:STDOUT: %import_ref.051 = import_ref Main//foo, loc7_8, unloaded +// CHECK:STDOUT: %import_ref.570 = import_ref Main//foo, loc8_17, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { // CHECK:STDOUT: .Class = %Class.decl -// CHECK:STDOUT: .CompleteClass = imports.%import_ref.ff5 +// CHECK:STDOUT: .CompleteClass = imports.%import_ref.cfa // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } @@ -311,15 +311,15 @@ class Class(U:! type) { // CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = constants.%T] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.2 [template = constants.%F.c41] { -// CHECK:STDOUT: %return.patt: %CompleteClass.a69 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %CompleteClass.a69 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %CompleteClass.a06 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %CompleteClass.a06 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, imports.%import_ref.ff5 [template = constants.%CompleteClass.generic] +// CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, imports.%import_ref.cfa [template = constants.%CompleteClass.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [template = constants.%CompleteClass.a69] -// CHECK:STDOUT: %return.param: ref %CompleteClass.a69 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %CompleteClass.a69 = return_slot %return.param +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [template = constants.%CompleteClass.a06] +// CHECK:STDOUT: %return.param: ref %CompleteClass.a06 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %CompleteClass.a06 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -328,15 +328,15 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.1 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.1 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.1 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class), @Class.%T.1 (%T) [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Class.%T.1 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Class.%struct_type.x (%struct_type.x) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Class.%struct_type.x (%struct_type.x) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %.loc5: @Class.%Class.elem (%Class.elem) = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -350,17 +350,17 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.535)] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.535), %i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.9af)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.7da)] -// CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.7da) = struct_value () [symbolic = %F (constants.%F.2ba)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.f97)] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.f97), %i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.9ef)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.14f)] +// CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.14f) = struct_value () [symbolic = %F (constants.%F.874)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.8a7 -// CHECK:STDOUT: .n = imports.%import_ref.b9f -// CHECK:STDOUT: .F = imports.%import_ref.355 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.dc0 +// CHECK:STDOUT: .Self = imports.%import_ref.3c0 +// CHECK:STDOUT: .n = imports.%import_ref.051 +// CHECK:STDOUT: .F = imports.%import_ref.570 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.eb1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -370,19 +370,19 @@ class Class(U:! type) { // CHECK:STDOUT: fn() -> %i32; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2() -> %return.param_patt: %CompleteClass.a69 [from "foo.carbon"] { +// CHECK:STDOUT: fn @F.2() -> %return.param_patt: %CompleteClass.a06 [from "foo.carbon"] { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_17.1: %struct_type.n.44a = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0: %Convert.type.40a = impl_witness_access constants.%impl_witness.764, element0 [template = constants.%Convert.4b8] +// CHECK:STDOUT: %impl.elem0: %Convert.type.ea0 = impl_witness_access constants.%impl_witness.847, element0 [template = constants.%Convert.4cb] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.059] -// CHECK:STDOUT: %.loc9_17.2: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.059] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.47b] +// CHECK:STDOUT: %.loc9_17.2: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.47b] // CHECK:STDOUT: %.loc9_17.3: ref %i32 = class_element_access %return, element0 -// CHECK:STDOUT: %.loc9_17.4: init %i32 = initialize_from %.loc9_17.2 to %.loc9_17.3 [template = constants.%int_1.059] -// CHECK:STDOUT: %.loc9_17.5: init %CompleteClass.a69 = class_init (%.loc9_17.4), %return [template = constants.%CompleteClass.val] -// CHECK:STDOUT: %.loc9_18: init %CompleteClass.a69 = converted %.loc9_17.1, %.loc9_17.5 [template = constants.%CompleteClass.val] +// CHECK:STDOUT: %.loc9_17.4: init %i32 = initialize_from %.loc9_17.2 to %.loc9_17.3 [template = constants.%int_1.47b] +// CHECK:STDOUT: %.loc9_17.5: init %CompleteClass.a06 = class_init (%.loc9_17.4), %return [template = constants.%CompleteClass.val] +// CHECK:STDOUT: %.loc9_18: init %CompleteClass.a06 = converted %.loc9_17.1, %.loc9_17.5 [template = constants.%CompleteClass.val] // CHECK:STDOUT: return %.loc9_18 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -398,10 +398,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.535 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.9af -// CHECK:STDOUT: %F.type => constants.%F.type.7da -// CHECK:STDOUT: %F => constants.%F.2ba +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.f97 +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.9ef +// CHECK:STDOUT: %F.type => constants.%F.type.14f +// CHECK:STDOUT: %F => constants.%F.874 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(%T) {} @@ -413,10 +413,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.a69 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.030 -// CHECK:STDOUT: %F.type => constants.%F.type.764 -// CHECK:STDOUT: %F => constants.%F.9ca +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.a06 +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.426 +// CHECK:STDOUT: %F.type => constants.%F.type.0aa +// CHECK:STDOUT: %F => constants.%F.971 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_foo.carbon @@ -429,44 +429,44 @@ class Class(U:! type) { // CHECK:STDOUT: %CompleteClass.type: type = generic_class_type @CompleteClass [template] // CHECK:STDOUT: %CompleteClass.generic: %CompleteClass.type = struct_value () [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %CompleteClass.535: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.f97: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %CompleteClass.elem.bc2: type = unbound_element_type %CompleteClass.535, %i32 [symbolic] -// CHECK:STDOUT: %F.type.7da: type = fn_type @F.1, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %F.2ba: %F.type.7da = struct_value () [symbolic] -// CHECK:STDOUT: %CompleteClass.374: type = class_type @CompleteClass, @CompleteClass(%i32) [template] -// CHECK:STDOUT: %CompleteClass.elem.cc9: type = unbound_element_type %CompleteClass.374, %i32 [template] -// CHECK:STDOUT: %F.type.8e1: type = fn_type @F.1, @CompleteClass(%i32) [template] -// CHECK:STDOUT: %F.3dc: %F.type.8e1 = struct_value () [template] +// CHECK:STDOUT: %CompleteClass.elem.28a: type = unbound_element_type %CompleteClass.f97, %i32 [symbolic] +// CHECK:STDOUT: %F.type.14f: type = fn_type @F.1, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %F.874: %F.type.14f = struct_value () [symbolic] +// CHECK:STDOUT: %CompleteClass.e9e: type = class_type @CompleteClass, @CompleteClass(%i32) [template] +// CHECK:STDOUT: %CompleteClass.elem.7fc: type = unbound_element_type %CompleteClass.e9e, %i32 [template] +// CHECK:STDOUT: %F.type.1bc: type = fn_type @F.1, @CompleteClass(%i32) [template] +// CHECK:STDOUT: %F.f7c: %F.type.1bc = struct_value () [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.3dc, @F.1(%i32) [template] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.f7c, @F.1(%i32) [template] // CHECK:STDOUT: %UseField.type: type = fn_type @UseField [template] // CHECK:STDOUT: %UseField: %UseField.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.73d = import_ref Main//foo, Class, unloaded -// CHECK:STDOUT: %import_ref.ff5: %CompleteClass.type = import_ref Main//foo, CompleteClass, loaded [template = constants.%CompleteClass.generic] -// CHECK:STDOUT: %import_ref.7ee: %F.type.b25 = import_ref Main//foo, F, loaded [template = constants.%F.c41] +// CHECK:STDOUT: %import_ref.92e = import_ref Main//foo, Class, unloaded +// CHECK:STDOUT: %import_ref.cfa: %CompleteClass.type = import_ref Main//foo, CompleteClass, loaded [template = constants.%CompleteClass.generic] +// CHECK:STDOUT: %import_ref.b37: %F.type.b25 = import_ref Main//foo, F, loaded [template = constants.%F.c41] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.dc0: = import_ref Main//foo, loc9_1, loaded [template = constants.%complete_type.9b7] -// CHECK:STDOUT: %import_ref.8a7 = import_ref Main//foo, inst37 [no loc], unloaded -// CHECK:STDOUT: %import_ref.78d: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.bc2) = import_ref Main//foo, loc7_8, loaded [template = %.817] -// CHECK:STDOUT: %import_ref.4bf: @CompleteClass.%F.type (%F.type.7da) = import_ref Main//foo, loc8_17, loaded [symbolic = @CompleteClass.%F (constants.%F.2ba)] +// CHECK:STDOUT: %import_ref.eb1: = import_ref Main//foo, loc9_1, loaded [template = constants.%complete_type.54b] +// CHECK:STDOUT: %import_ref.3c0 = import_ref Main//foo, inst37 [no loc], unloaded +// CHECK:STDOUT: %import_ref.e76: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.28a) = import_ref Main//foo, loc7_8, loaded [template = %.364] +// CHECK:STDOUT: %import_ref.a52: @CompleteClass.%F.type (%F.type.14f) = import_ref Main//foo, loc8_17, loaded [symbolic = @CompleteClass.%F (constants.%F.874)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Class = imports.%import_ref.73d -// CHECK:STDOUT: .CompleteClass = imports.%import_ref.ff5 -// CHECK:STDOUT: .F = imports.%import_ref.7ee +// CHECK:STDOUT: .Class = imports.%import_ref.92e +// CHECK:STDOUT: .CompleteClass = imports.%import_ref.cfa +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .UseMethod = %UseMethod.decl // CHECK:STDOUT: .UseField = %UseField.decl @@ -498,31 +498,31 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.535)] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.535), %i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.bc2)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.7da)] -// CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.7da) = struct_value () [symbolic = %F (constants.%F.2ba)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.f97)] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.f97), %i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.28a)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.14f)] +// CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.14f) = struct_value () [symbolic = %F (constants.%F.874)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.8a7 -// CHECK:STDOUT: .n = imports.%import_ref.78d -// CHECK:STDOUT: .F = imports.%import_ref.4bf -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.dc0 +// CHECK:STDOUT: .Self = imports.%import_ref.3c0 +// CHECK:STDOUT: .n = imports.%import_ref.e76 +// CHECK:STDOUT: .F = imports.%import_ref.a52 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.eb1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @UseMethod() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %CompleteClass.374 = var v -// CHECK:STDOUT: %v: ref %CompleteClass.374 = bind_name v, %v.var -// CHECK:STDOUT: %F.ref.loc6: %F.type.b25 = name_ref F, imports.%import_ref.7ee [template = constants.%F.c41] -// CHECK:STDOUT: %.loc6: ref %CompleteClass.374 = splice_block %v.var {} -// CHECK:STDOUT: %F.call.loc6: init %CompleteClass.374 = call %F.ref.loc6() to %.loc6 +// CHECK:STDOUT: %v.var: ref %CompleteClass.e9e = var v +// CHECK:STDOUT: %v: ref %CompleteClass.e9e = bind_name v, %v.var +// CHECK:STDOUT: %F.ref.loc6: %F.type.b25 = name_ref F, imports.%import_ref.b37 [template = constants.%F.c41] +// CHECK:STDOUT: %.loc6: ref %CompleteClass.e9e = splice_block %v.var {} +// CHECK:STDOUT: %F.call.loc6: init %CompleteClass.e9e = call %F.ref.loc6() to %.loc6 // CHECK:STDOUT: assign %v.var, %F.call.loc6 -// CHECK:STDOUT: %v.ref: ref %CompleteClass.374 = name_ref v, %v -// CHECK:STDOUT: %.loc7_11: %F.type.8e1 = specific_constant imports.%import_ref.4bf, @CompleteClass(constants.%i32) [template = constants.%F.3dc] -// CHECK:STDOUT: %F.ref.loc7: %F.type.8e1 = name_ref F, %.loc7_11 [template = constants.%F.3dc] +// CHECK:STDOUT: %v.ref: ref %CompleteClass.e9e = name_ref v, %v +// CHECK:STDOUT: %.loc7_11: %F.type.1bc = specific_constant imports.%import_ref.a52, @CompleteClass(constants.%i32) [template = constants.%F.f7c] +// CHECK:STDOUT: %F.ref.loc7: %F.type.1bc = name_ref F, %.loc7_11 [template = constants.%F.f7c] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref.loc7, @F.1(constants.%i32) [template = constants.%F.specific_fn] // CHECK:STDOUT: %F.call.loc7: init %i32 = call %F.specific_fn() // CHECK:STDOUT: %.loc7_15.1: %i32 = value_of_initializer %F.call.loc7 @@ -536,18 +536,18 @@ class Class(U:! type) { // CHECK:STDOUT: fn() -> %i32; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2() -> %CompleteClass.374 [from "foo.carbon"]; +// CHECK:STDOUT: fn @F.2() -> %CompleteClass.e9e [from "foo.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @UseField() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %CompleteClass.374 = var v -// CHECK:STDOUT: %v: ref %CompleteClass.374 = bind_name v, %v.var -// CHECK:STDOUT: %F.ref: %F.type.b25 = name_ref F, imports.%import_ref.7ee [template = constants.%F.c41] -// CHECK:STDOUT: %.loc11: ref %CompleteClass.374 = splice_block %v.var {} -// CHECK:STDOUT: %F.call: init %CompleteClass.374 = call %F.ref() to %.loc11 +// CHECK:STDOUT: %v.var: ref %CompleteClass.e9e = var v +// CHECK:STDOUT: %v: ref %CompleteClass.e9e = bind_name v, %v.var +// CHECK:STDOUT: %F.ref: %F.type.b25 = name_ref F, imports.%import_ref.b37 [template = constants.%F.c41] +// CHECK:STDOUT: %.loc11: ref %CompleteClass.e9e = splice_block %v.var {} +// CHECK:STDOUT: %F.call: init %CompleteClass.e9e = call %F.ref() to %.loc11 // CHECK:STDOUT: assign %v.var, %F.call -// CHECK:STDOUT: %v.ref: ref %CompleteClass.374 = name_ref v, %v -// CHECK:STDOUT: %n.ref: %CompleteClass.elem.cc9 = name_ref n, imports.%import_ref.78d [template = imports.%.817] +// CHECK:STDOUT: %v.ref: ref %CompleteClass.e9e = name_ref v, %v +// CHECK:STDOUT: %n.ref: %CompleteClass.elem.7fc = name_ref n, imports.%import_ref.e76 [template = imports.%.364] // CHECK:STDOUT: %.loc12_11.1: ref %i32 = class_element_access %v.ref, element0 // CHECK:STDOUT: %.loc12_11.2: %i32 = bind_value %.loc12_11.1 // CHECK:STDOUT: return %.loc12_11.2 @@ -558,10 +558,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.535 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.bc2 -// CHECK:STDOUT: %F.type => constants.%F.type.7da -// CHECK:STDOUT: %F => constants.%F.2ba +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.f97 +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.28a +// CHECK:STDOUT: %F.type => constants.%F.type.14f +// CHECK:STDOUT: %F => constants.%F.874 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(%T) {} @@ -573,10 +573,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.374 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.cc9 -// CHECK:STDOUT: %F.type => constants.%F.type.8e1 -// CHECK:STDOUT: %F => constants.%F.3dc +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.e9e +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.7fc +// CHECK:STDOUT: %F.type => constants.%F.type.1bc +// CHECK:STDOUT: %F => constants.%F.f7c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%i32) { @@ -593,47 +593,47 @@ class Class(U:! type) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.a01: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.a68: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %CompleteClass.535: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.f97: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %CompleteClass.elem.9af: type = unbound_element_type %CompleteClass.535, %i32 [symbolic] -// CHECK:STDOUT: %F.type.7da: type = fn_type @F.1, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %F.2ba: %F.type.7da = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.b05: type = ptr_type %i32 [template] -// CHECK:STDOUT: %CompleteClass.e96: type = class_type @CompleteClass, @CompleteClass(%ptr.b05) [template] -// CHECK:STDOUT: %CompleteClass.elem.d75: type = unbound_element_type %CompleteClass.e96, %i32 [template] -// CHECK:STDOUT: %F.type.bb4: type = fn_type @F.1, @CompleteClass(%ptr.b05) [template] -// CHECK:STDOUT: %F.9ec: %F.type.bb4 = struct_value () [template] +// CHECK:STDOUT: %CompleteClass.elem.9ef: type = unbound_element_type %CompleteClass.f97, %i32 [symbolic] +// CHECK:STDOUT: %F.type.14f: type = fn_type @F.1, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %F.874: %F.type.14f = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.9e1: type = ptr_type %i32 [template] +// CHECK:STDOUT: %CompleteClass.0fe: type = class_type @CompleteClass, @CompleteClass(%ptr.9e1) [template] +// CHECK:STDOUT: %CompleteClass.elem.d29: type = unbound_element_type %CompleteClass.0fe, %i32 [template] +// CHECK:STDOUT: %F.type.8cf: type = fn_type @F.1, @CompleteClass(%ptr.9e1) [template] +// CHECK:STDOUT: %F.012: %F.type.8cf = struct_value () [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] -// CHECK:STDOUT: %CompleteClass.a69: type = class_type @CompleteClass, @CompleteClass(%i32) [template] -// CHECK:STDOUT: %CompleteClass.elem.030: type = unbound_element_type %CompleteClass.a69, %i32 [template] -// CHECK:STDOUT: %F.type.764: type = fn_type @F.1, @CompleteClass(%i32) [template] -// CHECK:STDOUT: %F.9ca: %F.type.764 = struct_value () [template] +// CHECK:STDOUT: %CompleteClass.a06: type = class_type @CompleteClass, @CompleteClass(%i32) [template] +// CHECK:STDOUT: %CompleteClass.elem.426: type = unbound_element_type %CompleteClass.a06, %i32 [template] +// CHECK:STDOUT: %F.type.0aa: type = fn_type @F.1, @CompleteClass(%i32) [template] +// CHECK:STDOUT: %F.971: %F.type.0aa = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.73d = import_ref Main//foo, Class, unloaded -// CHECK:STDOUT: %import_ref.ff5: %CompleteClass.type = import_ref Main//foo, CompleteClass, loaded [template = constants.%CompleteClass.generic] -// CHECK:STDOUT: %import_ref.7ee: %F.type.b25 = import_ref Main//foo, F, loaded [template = constants.%F.c41] +// CHECK:STDOUT: %import_ref.92e = import_ref Main//foo, Class, unloaded +// CHECK:STDOUT: %import_ref.cfa: %CompleteClass.type = import_ref Main//foo, CompleteClass, loaded [template = constants.%CompleteClass.generic] +// CHECK:STDOUT: %import_ref.b37: %F.type.b25 = import_ref Main//foo, F, loaded [template = constants.%F.c41] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.2c8 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.dc0: = import_ref Main//foo, loc9_1, loaded [template = constants.%complete_type.a01] -// CHECK:STDOUT: %import_ref.8a7 = import_ref Main//foo, inst37 [no loc], unloaded -// CHECK:STDOUT: %import_ref.b9f = import_ref Main//foo, loc7_8, unloaded -// CHECK:STDOUT: %import_ref.355 = import_ref Main//foo, loc8_17, unloaded +// CHECK:STDOUT: %import_ref.eb1: = import_ref Main//foo, loc9_1, loaded [template = constants.%complete_type.a68] +// CHECK:STDOUT: %import_ref.3c0 = import_ref Main//foo, inst37 [no loc], unloaded +// CHECK:STDOUT: %import_ref.051 = import_ref Main//foo, loc7_8, unloaded +// CHECK:STDOUT: %import_ref.570 = import_ref Main//foo, loc8_17, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Class = imports.%import_ref.73d -// CHECK:STDOUT: .CompleteClass = imports.%import_ref.ff5 -// CHECK:STDOUT: .F = imports.%import_ref.7ee +// CHECK:STDOUT: .Class = imports.%import_ref.92e +// CHECK:STDOUT: .CompleteClass = imports.%import_ref.cfa +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .Use = %Use.decl // CHECK:STDOUT: } @@ -647,28 +647,28 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.535)] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.535), %i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.9af)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.7da)] -// CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.7da) = struct_value () [symbolic = %F (constants.%F.2ba)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.f97)] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.f97), %i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.9ef)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.14f)] +// CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.14f) = struct_value () [symbolic = %F (constants.%F.874)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.8a7 -// CHECK:STDOUT: .n = imports.%import_ref.b9f -// CHECK:STDOUT: .F = imports.%import_ref.355 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.dc0 +// CHECK:STDOUT: .Self = imports.%import_ref.3c0 +// CHECK:STDOUT: .n = imports.%import_ref.051 +// CHECK:STDOUT: .F = imports.%import_ref.570 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.eb1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %CompleteClass.e96 = var v -// CHECK:STDOUT: %v: ref %CompleteClass.e96 = bind_name v, %v.var -// CHECK:STDOUT: %F.ref: %F.type.b25 = name_ref F, imports.%import_ref.7ee [template = constants.%F.c41] -// CHECK:STDOUT: %.loc14_34: ref %CompleteClass.a69 = temporary_storage -// CHECK:STDOUT: %F.call: init %CompleteClass.a69 = call %F.ref() to %.loc14_34 -// CHECK:STDOUT: %.loc14_35: %CompleteClass.e96 = converted %F.call, [template = ] +// CHECK:STDOUT: %v.var: ref %CompleteClass.0fe = var v +// CHECK:STDOUT: %v: ref %CompleteClass.0fe = bind_name v, %v.var +// CHECK:STDOUT: %F.ref: %F.type.b25 = name_ref F, imports.%import_ref.b37 [template = constants.%F.c41] +// CHECK:STDOUT: %.loc14_34: ref %CompleteClass.a06 = temporary_storage +// CHECK:STDOUT: %F.call: init %CompleteClass.a06 = call %F.ref() to %.loc14_34 +// CHECK:STDOUT: %.loc14_35: %CompleteClass.0fe = converted %F.call, [template = ] // CHECK:STDOUT: assign %v.var, // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -679,32 +679,32 @@ class Class(U:! type) { // CHECK:STDOUT: fn() -> %i32; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2() -> %CompleteClass.a69 [from "foo.carbon"]; +// CHECK:STDOUT: fn @F.2() -> %CompleteClass.a06 [from "foo.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.535 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.9af -// CHECK:STDOUT: %F.type => constants.%F.type.7da -// CHECK:STDOUT: %F => constants.%F.2ba +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.f97 +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.9ef +// CHECK:STDOUT: %F.type => constants.%F.type.14f +// CHECK:STDOUT: %F => constants.%F.874 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @CompleteClass(constants.%ptr.b05) { -// CHECK:STDOUT: %T => constants.%ptr.b05 -// CHECK:STDOUT: %T.patt => constants.%ptr.b05 +// CHECK:STDOUT: specific @CompleteClass(constants.%ptr.9e1) { +// CHECK:STDOUT: %T => constants.%ptr.9e1 +// CHECK:STDOUT: %T.patt => constants.%ptr.9e1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.e96 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.d75 -// CHECK:STDOUT: %F.type => constants.%F.type.bb4 -// CHECK:STDOUT: %F => constants.%F.9ec +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.0fe +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.d29 +// CHECK:STDOUT: %F.type => constants.%F.type.8cf +// CHECK:STDOUT: %F => constants.%F.012 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%i32) { @@ -712,10 +712,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.a69 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.030 -// CHECK:STDOUT: %F.type => constants.%F.type.764 -// CHECK:STDOUT: %F => constants.%F.9ca +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.a06 +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.426 +// CHECK:STDOUT: %F.type => constants.%F.type.0aa +// CHECK:STDOUT: %F => constants.%F.971 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_foo.impl.carbon @@ -729,13 +729,13 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.fc8: type = class_type @.1, @.1(%U) [symbolic] +// CHECK:STDOUT: %.e41: type = class_type @.1, @.1(%U) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.71c: %Class.type = import_ref Main//foo, Class, loaded [template = constants.%Class.generic] -// CHECK:STDOUT: %import_ref.8f0 = import_ref Main//foo, CompleteClass, unloaded -// CHECK:STDOUT: %import_ref.024 = import_ref Main//foo, F, unloaded +// CHECK:STDOUT: %import_ref.23a: %Class.type = import_ref Main//foo, Class, loaded [template = constants.%Class.generic] +// CHECK:STDOUT: %import_ref.f6d = import_ref Main//foo, CompleteClass, unloaded +// CHECK:STDOUT: %import_ref.bde = import_ref Main//foo, F, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -744,9 +744,9 @@ class Class(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Class = imports.%import_ref.71c -// CHECK:STDOUT: .CompleteClass = imports.%import_ref.8f0 -// CHECK:STDOUT: .F = imports.%import_ref.024 +// CHECK:STDOUT: .Class = imports.%import_ref.23a +// CHECK:STDOUT: .CompleteClass = imports.%import_ref.f6d +// CHECK:STDOUT: .F = imports.%import_ref.bde // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import @@ -779,7 +779,7 @@ class Class(U:! type) { // CHECK:STDOUT: %complete_type: = complete_type_witness [template = ] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.fc8 +// CHECK:STDOUT: .Self = constants.%.e41 // CHECK:STDOUT: .x = %.loc16 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index 05221d7bc0e6..93d71a32b5d0 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -49,29 +49,29 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class.2c9: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Class.elem.0a3: type = unbound_element_type %Class.2c9, %T [symbolic] -// CHECK:STDOUT: %struct_type.k.11c: type = struct_type {.k: %T} [symbolic] -// CHECK:STDOUT: %complete_type.9f0: = complete_type_witness %struct_type.k.11c [symbolic] +// CHECK:STDOUT: %Class.fe1: type = class_type @Class, @Class(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Class.elem.e26: type = unbound_element_type %Class.fe1, %T [symbolic] +// CHECK:STDOUT: %struct_type.k.b21: type = struct_type {.k: %T} [symbolic] +// CHECK:STDOUT: %complete_type.b9e: = complete_type_witness %struct_type.k.b21 [symbolic] // CHECK:STDOUT: %InitFromStructGeneric.type: type = fn_type @InitFromStructGeneric [template] // CHECK:STDOUT: %InitFromStructGeneric: %InitFromStructGeneric.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.723: = require_complete_type %Class.2c9 [symbolic] +// CHECK:STDOUT: %require_complete.4f8: = require_complete_type %Class.fe1 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %InitFromStructSpecific.type: type = fn_type @InitFromStructSpecific [template] // CHECK:STDOUT: %InitFromStructSpecific: %InitFromStructSpecific.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %Class.d3a: type = class_type @Class, @Class(%i32) [template] -// CHECK:STDOUT: %Class.elem.0f0: type = unbound_element_type %Class.d3a, %i32 [template] -// CHECK:STDOUT: %struct_type.k.990: type = struct_type {.k: %i32} [template] -// CHECK:STDOUT: %complete_type.631: = complete_type_witness %struct_type.k.990 [template] +// CHECK:STDOUT: %Class.247: type = class_type @Class, @Class(%i32) [template] +// CHECK:STDOUT: %Class.elem.2d8: type = unbound_element_type %Class.247, %i32 [template] +// CHECK:STDOUT: %struct_type.k.0bf: type = struct_type {.k: %i32} [template] +// CHECK:STDOUT: %complete_type.954: = complete_type_witness %struct_type.k.0bf [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -133,18 +133,18 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class.2c9)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class.2c9), @Class.%T.loc4_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.0a3)] -// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @Class.%T.loc4_13.2 (%T)} [symbolic = %struct_type.k (constants.%struct_type.k.11c)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Class.%struct_type.k (%struct_type.k.11c) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.9f0)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class.fe1), @Class.%T.loc4_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.e26)] +// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @Class.%T.loc4_13.2 (%T)} [symbolic = %struct_type.k (constants.%struct_type.k.b21)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Class.%struct_type.k (%struct_type.k.b21) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.b9e)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @Class.%Class.elem (%Class.elem.0a3) = field_decl k, element0 [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.k.11c [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.9f0)] +// CHECK:STDOUT: %.loc5: @Class.%Class.elem (%Class.elem.e26) = field_decl k, element0 [template] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.k.b21 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.b9e)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.2c9 +// CHECK:STDOUT: .Self = constants.%Class.fe1 // CHECK:STDOUT: .k = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: } @@ -155,25 +155,25 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt.loc8_26.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_26.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8: = require_complete_type @InitFromStructGeneric.%T.loc8_26.2 (%T) [symbolic = %require_complete.loc8 (constants.%require_complete.db1)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc8_26.2) [symbolic = %Class (constants.%Class.2c9)] -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @InitFromStructGeneric.%Class (%Class.2c9) [symbolic = %require_complete.loc9 (constants.%require_complete.723)] -// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.loc8_26.2 (%T)} [symbolic = %struct_type.k (constants.%struct_type.k.11c)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type @InitFromStructGeneric.%Class (%Class.2c9), @InitFromStructGeneric.%T.loc8_26.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.0a3)] +// CHECK:STDOUT: %require_complete.loc8: = require_complete_type @InitFromStructGeneric.%T.loc8_26.2 (%T) [symbolic = %require_complete.loc8 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc8_26.2) [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @InitFromStructGeneric.%Class (%Class.fe1) [symbolic = %require_complete.loc9 (constants.%require_complete.4f8)] +// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.loc8_26.2 (%T)} [symbolic = %struct_type.k (constants.%struct_type.k.b21)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type @InitFromStructGeneric.%Class (%Class.fe1), @InitFromStructGeneric.%T.loc8_26.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.e26)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @InitFromStructGeneric.%T.loc8_26.2 (%T)) -> @InitFromStructGeneric.%T.loc8_26.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class (%Class.2c9) = var v -// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class (%Class.2c9) = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class (%Class.fe1) = var v +// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class (%Class.fe1) = bind_name v, %v.var // CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.loc8_26.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %.loc9_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.11c) = struct_literal (%x.ref) +// CHECK:STDOUT: %.loc9_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.b21) = struct_literal (%x.ref) // CHECK:STDOUT: %.loc9_28.2: ref @InitFromStructGeneric.%T.loc8_26.2 (%T) = class_element_access %v.var, element0 // CHECK:STDOUT: %.loc9_28.3: init @InitFromStructGeneric.%T.loc8_26.2 (%T) = initialize_from %x.ref to %.loc9_28.2 -// CHECK:STDOUT: %.loc9_28.4: init @InitFromStructGeneric.%Class (%Class.2c9) = class_init (%.loc9_28.3), %v.var -// CHECK:STDOUT: %.loc9_29: init @InitFromStructGeneric.%Class (%Class.2c9) = converted %.loc9_28.1, %.loc9_28.4 +// CHECK:STDOUT: %.loc9_28.4: init @InitFromStructGeneric.%Class (%Class.fe1) = class_init (%.loc9_28.3), %v.var +// CHECK:STDOUT: %.loc9_29: init @InitFromStructGeneric.%Class (%Class.fe1) = converted %.loc9_28.1, %.loc9_28.4 // CHECK:STDOUT: assign %v.var, %.loc9_29 -// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class (%Class.2c9) = name_ref v, %v -// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.0a3) = name_ref k, @Class.%.loc5 [template = @Class.%.loc5] +// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class (%Class.fe1) = name_ref v, %v +// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.e26) = name_ref k, @Class.%.loc5 [template = @Class.%.loc5] // CHECK:STDOUT: %.loc10_11.1: ref @InitFromStructGeneric.%T.loc8_26.2 (%T) = class_element_access %v.ref, element0 // CHECK:STDOUT: %.loc10_11.2: @InitFromStructGeneric.%T.loc8_26.2 (%T) = bind_value %.loc10_11.1 // CHECK:STDOUT: return %.loc10_11.2 @@ -182,17 +182,17 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @InitFromStructSpecific(%x.param_patt: %i32) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %Class.d3a = var v -// CHECK:STDOUT: %v: ref %Class.d3a = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref %Class.247 = var v +// CHECK:STDOUT: %v: ref %Class.247 = bind_name v, %v.var // CHECK:STDOUT: %x.ref: %i32 = name_ref x, %x -// CHECK:STDOUT: %.loc14_30.1: %struct_type.k.990 = struct_literal (%x.ref) +// CHECK:STDOUT: %.loc14_30.1: %struct_type.k.0bf = struct_literal (%x.ref) // CHECK:STDOUT: %.loc14_30.2: ref %i32 = class_element_access %v.var, element0 // CHECK:STDOUT: %.loc14_30.3: init %i32 = initialize_from %x.ref to %.loc14_30.2 -// CHECK:STDOUT: %.loc14_30.4: init %Class.d3a = class_init (%.loc14_30.3), %v.var -// CHECK:STDOUT: %.loc14_31: init %Class.d3a = converted %.loc14_30.1, %.loc14_30.4 +// CHECK:STDOUT: %.loc14_30.4: init %Class.247 = class_init (%.loc14_30.3), %v.var +// CHECK:STDOUT: %.loc14_31: init %Class.247 = converted %.loc14_30.1, %.loc14_30.4 // CHECK:STDOUT: assign %v.var, %.loc14_31 -// CHECK:STDOUT: %v.ref: ref %Class.d3a = name_ref v, %v -// CHECK:STDOUT: %k.ref: %Class.elem.0f0 = name_ref k, @Class.%.loc5 [template = @Class.%.loc5] +// CHECK:STDOUT: %v.ref: ref %Class.247 = name_ref v, %v +// CHECK:STDOUT: %k.ref: %Class.elem.2d8 = name_ref k, @Class.%.loc5 [template = @Class.%.loc5] // CHECK:STDOUT: %.loc15_11.1: ref %i32 = class_element_access %v.ref, element0 // CHECK:STDOUT: %.loc15_11.2: %i32 = bind_value %.loc15_11.1 // CHECK:STDOUT: return %.loc15_11.2 @@ -203,11 +203,11 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %Class => constants.%Class.2c9 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.0a3 -// CHECK:STDOUT: %struct_type.k => constants.%struct_type.k.11c -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.9f0 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %Class => constants.%Class.fe1 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.e26 +// CHECK:STDOUT: %struct_type.k => constants.%struct_type.k.b21 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.b9e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(%T.loc4_13.2) {} @@ -225,10 +225,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Class => constants.%Class.d3a -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.0f0 -// CHECK:STDOUT: %struct_type.k => constants.%struct_type.k.990 -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.631 +// CHECK:STDOUT: %Class => constants.%Class.247 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.2d8 +// CHECK:STDOUT: %struct_type.k => constants.%struct_type.k.0bf +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.954 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adapt.carbon @@ -238,25 +238,25 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Adapt.type: type = generic_class_type @Adapt [template] // CHECK:STDOUT: %Adapt.generic: %Adapt.type = struct_value () [template] -// CHECK:STDOUT: %Adapt.31a: type = class_type @Adapt, @Adapt(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %complete_type.27d: = complete_type_witness %T [symbolic] +// CHECK:STDOUT: %Adapt.2e4: type = class_type @Adapt, @Adapt(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %complete_type.f87: = complete_type_witness %T [symbolic] // CHECK:STDOUT: %InitFromAdaptedGeneric.type: type = fn_type @InitFromAdaptedGeneric [template] // CHECK:STDOUT: %InitFromAdaptedGeneric: %InitFromAdaptedGeneric.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.2c4: = require_complete_type %Adapt.31a [symbolic] +// CHECK:STDOUT: %require_complete.26c: = require_complete_type %Adapt.2e4 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %InitFromAdaptedSpecific.type: type = fn_type @InitFromAdaptedSpecific [template] // CHECK:STDOUT: %InitFromAdaptedSpecific: %InitFromAdaptedSpecific.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %Adapt.5d1: type = class_type @Adapt, @Adapt(%i32) [template] -// CHECK:STDOUT: %complete_type.d0d: = complete_type_witness %i32 [template] +// CHECK:STDOUT: %Adapt.526: type = class_type @Adapt, @Adapt(%i32) [template] +// CHECK:STDOUT: %complete_type.1eb: = complete_type_witness %i32 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -318,16 +318,16 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Adapt.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Adapt.%T.loc4_13.2 (%T) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.27d)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Adapt.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Adapt.%T.loc4_13.2 (%T) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: adapt_decl %T.ref [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %T [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.27d)] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %T [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Adapt.31a +// CHECK:STDOUT: .Self = constants.%Adapt.2e4 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -337,18 +337,18 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt.loc8_27.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_27.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8: = require_complete_type @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) [symbolic = %require_complete.loc8 (constants.%require_complete.db1)] -// CHECK:STDOUT: %Adapt.loc9_23.2: type = class_type @Adapt, @Adapt(%T.loc8_27.2) [symbolic = %Adapt.loc9_23.2 (constants.%Adapt.31a)] -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @InitFromAdaptedGeneric.%Adapt.loc9_23.2 (%Adapt.31a) [symbolic = %require_complete.loc9 (constants.%require_complete.2c4)] +// CHECK:STDOUT: %require_complete.loc8: = require_complete_type @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) [symbolic = %require_complete.loc8 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Adapt.loc9_23.2: type = class_type @Adapt, @Adapt(%T.loc8_27.2) [symbolic = %Adapt.loc9_23.2 (constants.%Adapt.2e4)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @InitFromAdaptedGeneric.%Adapt.loc9_23.2 (%Adapt.2e4) [symbolic = %require_complete.loc9 (constants.%require_complete.26c)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T)) -> @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = name_ref x, %x // CHECK:STDOUT: %Adapt.ref: %Adapt.type = name_ref Adapt, file.%Adapt.decl [template = constants.%Adapt.generic] // CHECK:STDOUT: %T.ref.loc9_22: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] -// CHECK:STDOUT: %Adapt.loc9_23.1: type = class_type @Adapt, @Adapt(constants.%T) [symbolic = %Adapt.loc9_23.2 (constants.%Adapt.31a)] -// CHECK:STDOUT: %.loc9_13.1: @InitFromAdaptedGeneric.%Adapt.loc9_23.2 (%Adapt.31a) = as_compatible %x.ref -// CHECK:STDOUT: %.loc9_13.2: @InitFromAdaptedGeneric.%Adapt.loc9_23.2 (%Adapt.31a) = converted %x.ref, %.loc9_13.1 +// CHECK:STDOUT: %Adapt.loc9_23.1: type = class_type @Adapt, @Adapt(constants.%T) [symbolic = %Adapt.loc9_23.2 (constants.%Adapt.2e4)] +// CHECK:STDOUT: %.loc9_13.1: @InitFromAdaptedGeneric.%Adapt.loc9_23.2 (%Adapt.2e4) = as_compatible %x.ref +// CHECK:STDOUT: %.loc9_13.2: @InitFromAdaptedGeneric.%Adapt.loc9_23.2 (%Adapt.2e4) = converted %x.ref, %.loc9_13.1 // CHECK:STDOUT: %T.ref.loc9_29: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] // CHECK:STDOUT: %.loc9_26.1: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = as_compatible %.loc9_13.2 // CHECK:STDOUT: %.loc9_26.2: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = converted %.loc9_13.2, %.loc9_26.1 @@ -362,9 +362,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Adapt.ref: %Adapt.type = name_ref Adapt, file.%Adapt.decl [template = constants.%Adapt.generic] // CHECK:STDOUT: %int_32.loc13_22: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13_22: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Adapt: type = class_type @Adapt, @Adapt(constants.%i32) [template = constants.%Adapt.5d1] -// CHECK:STDOUT: %.loc13_13.1: %Adapt.5d1 = as_compatible %x.ref -// CHECK:STDOUT: %.loc13_13.2: %Adapt.5d1 = converted %x.ref, %.loc13_13.1 +// CHECK:STDOUT: %Adapt: type = class_type @Adapt, @Adapt(constants.%i32) [template = constants.%Adapt.526] +// CHECK:STDOUT: %.loc13_13.1: %Adapt.526 = as_compatible %x.ref +// CHECK:STDOUT: %.loc13_13.2: %Adapt.526 = converted %x.ref, %.loc13_13.1 // CHECK:STDOUT: %int_32.loc13_31: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13_31: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc13_28.1: %i32 = as_compatible %.loc13_13.2 @@ -377,8 +377,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.27d +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.f87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromAdaptedGeneric(constants.%T) { @@ -394,6 +394,6 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.d0d +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.1eb // 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 1ed30e720445..ea144476f9c9 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -55,47 +55,47 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class.2c9: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Class.elem.0a3: type = unbound_element_type %Class.2c9, %T [symbolic] -// CHECK:STDOUT: %Get.type.6c9: type = fn_type @Get, @Class(%T) [symbolic] -// CHECK:STDOUT: %Get.ca7: %Get.type.6c9 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.53c: type = ptr_type %Class.2c9 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %GetAddr.type.911: type = fn_type @GetAddr, @Class(%T) [symbolic] -// CHECK:STDOUT: %GetAddr.fdb: %GetAddr.type.911 = struct_value () [symbolic] -// CHECK:STDOUT: %struct_type.x.710: type = struct_type {.x: %T} [symbolic] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %struct_type.x.710 [symbolic] -// CHECK:STDOUT: %require_complete.723: = require_complete_type %Class.2c9 [symbolic] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %require_complete.6c6: = require_complete_type %ptr.53c [symbolic] +// CHECK:STDOUT: %Class.fe1: type = class_type @Class, @Class(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Class.elem.e26: type = unbound_element_type %Class.fe1, %T [symbolic] +// CHECK:STDOUT: %Get.type.fd9: type = fn_type @Get, @Class(%T) [symbolic] +// CHECK:STDOUT: %Get.cf9: %Get.type.fd9 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.955: type = ptr_type %Class.fe1 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %GetAddr.type.402: type = fn_type @GetAddr, @Class(%T) [symbolic] +// CHECK:STDOUT: %GetAddr.102: %GetAddr.type.402 = struct_value () [symbolic] +// CHECK:STDOUT: %struct_type.x.2ac: type = struct_type {.x: %T} [symbolic] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %struct_type.x.2ac [symbolic] +// CHECK:STDOUT: %require_complete.4f8: = require_complete_type %Class.fe1 [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %require_complete.2ae: = require_complete_type %ptr.955 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Class.d3a: type = class_type @Class, @Class(%i32) [template] +// CHECK:STDOUT: %Class.247: type = class_type @Class, @Class(%i32) [template] // CHECK:STDOUT: %DirectFieldAccess.type: type = fn_type @DirectFieldAccess [template] // CHECK:STDOUT: %DirectFieldAccess: %DirectFieldAccess.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %Class.elem.0f0: type = unbound_element_type %Class.d3a, %i32 [template] -// CHECK:STDOUT: %Get.type.22a: type = fn_type @Get, @Class(%i32) [template] -// CHECK:STDOUT: %Get.5ee: %Get.type.22a = struct_value () [template] -// CHECK:STDOUT: %GetAddr.type.913: type = fn_type @GetAddr, @Class(%i32) [template] -// CHECK:STDOUT: %GetAddr.07b: %GetAddr.type.913 = struct_value () [template] -// CHECK:STDOUT: %struct_type.x.b74: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x.b74 [template] +// CHECK:STDOUT: %Class.elem.2d8: type = unbound_element_type %Class.247, %i32 [template] +// CHECK:STDOUT: %Get.type.59d: type = fn_type @Get, @Class(%i32) [template] +// CHECK:STDOUT: %Get.a40: %Get.type.59d = struct_value () [template] +// CHECK:STDOUT: %GetAddr.type.be7: type = fn_type @GetAddr, @Class(%i32) [template] +// CHECK:STDOUT: %GetAddr.909: %GetAddr.type.be7 = struct_value () [template] +// CHECK:STDOUT: %struct_type.x.ed6: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x.ed6 [template] // CHECK:STDOUT: %MethodCall.type: type = fn_type @MethodCall [template] // CHECK:STDOUT: %MethodCall: %MethodCall.type = struct_value () [template] -// CHECK:STDOUT: %ptr.367: type = ptr_type %Class.d3a [template] +// CHECK:STDOUT: %ptr.f7c: type = ptr_type %Class.247 [template] // CHECK:STDOUT: %AddrMethodCall.type: type = fn_type @AddrMethodCall [template] // CHECK:STDOUT: %AddrMethodCall: %AddrMethodCall.type = struct_value () [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] -// CHECK:STDOUT: %complete_type.566: = complete_type_witness %ptr.dc3 [template] -// CHECK:STDOUT: %complete_type.576: = complete_type_witness %ptr.367 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] +// CHECK:STDOUT: %complete_type.3d0: = complete_type_witness %ptr.235 [template] +// CHECK:STDOUT: %complete_type.6ee: = complete_type_witness %ptr.f7c [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -118,60 +118,60 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.loc2_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc2_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %DirectFieldAccess.decl: %DirectFieldAccess.type = fn_decl @DirectFieldAccess [template = constants.%DirectFieldAccess] { -// CHECK:STDOUT: %x.patt: %Class.d3a = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %Class.d3a = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: %Class.247 = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %Class.247 = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc10_40: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc10_40: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %x.param: %Class.d3a = value_param runtime_param0 -// CHECK:STDOUT: %.loc10: type = splice_block %Class [template = constants.%Class.d3a] { +// CHECK:STDOUT: %x.param: %Class.247 = value_param runtime_param0 +// CHECK:STDOUT: %.loc10: type = splice_block %Class [template = constants.%Class.247] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic] // CHECK:STDOUT: %int_32.loc10_31: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc10_31: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [template = constants.%Class.d3a] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [template = constants.%Class.247] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %Class.d3a = bind_name x, %x.param +// CHECK:STDOUT: %x: %Class.247 = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MethodCall.decl: %MethodCall.type = fn_decl @MethodCall [template = constants.%MethodCall] { -// CHECK:STDOUT: %x.patt: %Class.d3a = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %Class.d3a = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: %Class.247 = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %Class.247 = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc14_33: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc14_33: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %x.param: %Class.d3a = value_param runtime_param0 -// CHECK:STDOUT: %.loc14: type = splice_block %Class [template = constants.%Class.d3a] { +// CHECK:STDOUT: %x.param: %Class.247 = value_param runtime_param0 +// CHECK:STDOUT: %.loc14: type = splice_block %Class [template = constants.%Class.247] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic] // CHECK:STDOUT: %int_32.loc14_24: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc14_24: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [template = constants.%Class.d3a] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [template = constants.%Class.247] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %Class.d3a = bind_name x, %x.param +// CHECK:STDOUT: %x: %Class.247 = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AddrMethodCall.decl: %AddrMethodCall.type = fn_decl @AddrMethodCall [template = constants.%AddrMethodCall] { -// CHECK:STDOUT: %p.patt: %ptr.367 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %ptr.367 = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: %ptr.f7c = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %ptr.f7c = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc18_38: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc18_38: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %p.param: %ptr.367 = value_param runtime_param0 -// CHECK:STDOUT: %.loc18: type = splice_block %ptr [template = constants.%ptr.367] { +// CHECK:STDOUT: %p.param: %ptr.f7c = value_param runtime_param0 +// CHECK:STDOUT: %.loc18: type = splice_block %ptr [template = constants.%ptr.f7c] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic] // CHECK:STDOUT: %int_32.loc18_28: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc18_28: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [template = constants.%Class.d3a] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.d3a [template = constants.%ptr.367] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [template = constants.%Class.247] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.247 [template = constants.%ptr.f7c] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.367 = bind_name p, %p.param +// CHECK:STDOUT: %p: %ptr.f7c = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -182,57 +182,57 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.patt.loc2_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc2_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc2_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc2_13.2) [symbolic = %Class (constants.%Class.2c9)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class.2c9), @Class.%T.loc2_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.0a3)] -// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc2_13.2) [symbolic = %Get.type (constants.%Get.type.6c9)] -// CHECK:STDOUT: %Get: @Class.%Get.type (%Get.type.6c9) = struct_value () [symbolic = %Get (constants.%Get.ca7)] -// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.loc2_13.2) [symbolic = %GetAddr.type (constants.%GetAddr.type.911)] -// CHECK:STDOUT: %GetAddr: @Class.%GetAddr.type (%GetAddr.type.911) = struct_value () [symbolic = %GetAddr (constants.%GetAddr.fdb)] -// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Class.%T.loc2_13.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.710)] -// CHECK:STDOUT: %complete_type.loc8_1.2: = complete_type_witness @Class.%struct_type.x (%struct_type.x.710) [symbolic = %complete_type.loc8_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc2_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc2_13.2) [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class.fe1), @Class.%T.loc2_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem.e26)] +// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc2_13.2) [symbolic = %Get.type (constants.%Get.type.fd9)] +// CHECK:STDOUT: %Get: @Class.%Get.type (%Get.type.fd9) = struct_value () [symbolic = %Get (constants.%Get.cf9)] +// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.loc2_13.2) [symbolic = %GetAddr.type (constants.%GetAddr.type.402)] +// CHECK:STDOUT: %GetAddr: @Class.%GetAddr.type (%GetAddr.type.402) = struct_value () [symbolic = %GetAddr (constants.%GetAddr.102)] +// CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Class.%T.loc2_13.2 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %complete_type.loc8_1.2: = complete_type_witness @Class.%struct_type.x (%struct_type.x.2ac) [symbolic = %complete_type.loc8_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc3: @Class.%Class.elem (%Class.elem.0a3) = field_decl x, element0 [template] -// CHECK:STDOUT: %Get.decl: @Class.%Get.type (%Get.type.6c9) = fn_decl @Get [symbolic = @Class.%Get (constants.%Get.ca7)] { -// CHECK:STDOUT: %self.patt: @Get.%Class (%Class.2c9) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @Get.%Class (%Class.2c9) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %.loc3: @Class.%Class.elem (%Class.elem.e26) = field_decl x, element0 [template] +// CHECK:STDOUT: %Get.decl: @Class.%Get.type (%Get.type.fd9) = fn_decl @Get [symbolic = @Class.%Get (constants.%Get.cf9)] { +// CHECK:STDOUT: %self.patt: @Get.%Class (%Class.fe1) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @Get.%Class (%Class.fe1) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @Get.%T (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @Get.%T (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @Get.%Class (%Class.2c9) = value_param runtime_param0 -// CHECK:STDOUT: %.loc5_16.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class.2c9)] { -// CHECK:STDOUT: %.loc5_16.2: type = specific_constant constants.%Class.2c9, @Class(constants.%T) [symbolic = %Class (constants.%Class.2c9)] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_16.2 [symbolic = %Class (constants.%Class.2c9)] +// CHECK:STDOUT: %self.param: @Get.%Class (%Class.fe1) = value_param runtime_param0 +// CHECK:STDOUT: %.loc5_16.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class.fe1)] { +// CHECK:STDOUT: %.loc5_16.2: type = specific_constant constants.%Class.fe1, @Class(constants.%T) [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_16.2 [symbolic = %Class (constants.%Class.fe1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Get.%Class (%Class.2c9) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Get.%Class (%Class.fe1) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Get.%T (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @Get.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %GetAddr.decl: @Class.%GetAddr.type (%GetAddr.type.911) = fn_decl @GetAddr [symbolic = @Class.%GetAddr (constants.%GetAddr.fdb)] { -// CHECK:STDOUT: %self.patt: @GetAddr.%ptr.loc7_29.1 (%ptr.53c) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @GetAddr.%ptr.loc7_29.1 (%ptr.53c) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %GetAddr.decl: @Class.%GetAddr.type (%GetAddr.type.402) = fn_decl @GetAddr [symbolic = @Class.%GetAddr (constants.%GetAddr.102)] { +// CHECK:STDOUT: %self.patt: @GetAddr.%ptr.loc7_29.1 (%ptr.955) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @GetAddr.%ptr.loc7_29.1 (%ptr.955) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc7_14: auto = addr_pattern %self.param_patt -// CHECK:STDOUT: %return.patt: @GetAddr.%ptr.loc7_38.1 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @GetAddr.%ptr.loc7_38.1 (%ptr.251) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: @GetAddr.%ptr.loc7_38.1 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @GetAddr.%ptr.loc7_38.1 (%ptr.79f) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ptr.loc7_38.2: type = ptr_type %T [symbolic = %ptr.loc7_38.1 (constants.%ptr.251)] -// CHECK:STDOUT: %self.param: @GetAddr.%ptr.loc7_29.1 (%ptr.53c) = value_param runtime_param0 -// CHECK:STDOUT: %.loc7_29: type = splice_block %ptr.loc7_29.2 [symbolic = %ptr.loc7_29.1 (constants.%ptr.53c)] { -// CHECK:STDOUT: %.loc7_25: type = specific_constant constants.%Class.2c9, @Class(constants.%T) [symbolic = %Class (constants.%Class.2c9)] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc7_25 [symbolic = %Class (constants.%Class.2c9)] -// CHECK:STDOUT: %ptr.loc7_29.2: type = ptr_type %Class.2c9 [symbolic = %ptr.loc7_29.1 (constants.%ptr.53c)] +// CHECK:STDOUT: %ptr.loc7_38.2: type = ptr_type %T [symbolic = %ptr.loc7_38.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %self.param: @GetAddr.%ptr.loc7_29.1 (%ptr.955) = value_param runtime_param0 +// CHECK:STDOUT: %.loc7_29: type = splice_block %ptr.loc7_29.2 [symbolic = %ptr.loc7_29.1 (constants.%ptr.955)] { +// CHECK:STDOUT: %.loc7_25: type = specific_constant constants.%Class.fe1, @Class(constants.%T) [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc7_25 [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %ptr.loc7_29.2: type = ptr_type %Class.fe1 [symbolic = %ptr.loc7_29.1 (constants.%ptr.955)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @GetAddr.%ptr.loc7_29.1 (%ptr.53c) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @GetAddr.%ptr.loc7_38.1 (%ptr.251) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @GetAddr.%ptr.loc7_38.1 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %self: @GetAddr.%ptr.loc7_29.1 (%ptr.955) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @GetAddr.%ptr.loc7_38.1 (%ptr.79f) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @GetAddr.%ptr.loc7_38.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type.loc8_1.1: = complete_type_witness %struct_type.x.710 [symbolic = %complete_type.loc8_1.2 (constants.%complete_type.60a)] +// CHECK:STDOUT: %complete_type.loc8_1.1: = complete_type_witness %struct_type.x.2ac [symbolic = %complete_type.loc8_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.2c9 +// CHECK:STDOUT: .Self = constants.%Class.fe1 // CHECK:STDOUT: .x = %.loc3 // CHECK:STDOUT: .Get = %Get.decl // CHECK:STDOUT: .GetAddr = %GetAddr.decl @@ -242,17 +242,17 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Get(@Class.%T.loc2_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2c9)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.fe1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc5_14: = require_complete_type @Get.%Class (%Class.2c9) [symbolic = %require_complete.loc5_14 (constants.%require_complete.723)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type @Get.%Class (%Class.2c9), @Get.%T (%T) [symbolic = %Class.elem (constants.%Class.elem.0a3)] -// CHECK:STDOUT: %require_complete.loc5_42: = require_complete_type @Get.%T (%T) [symbolic = %require_complete.loc5_42 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc5_14: = require_complete_type @Get.%Class (%Class.fe1) [symbolic = %require_complete.loc5_14 (constants.%require_complete.4f8)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type @Get.%Class (%Class.fe1), @Get.%T (%T) [symbolic = %Class.elem (constants.%Class.elem.e26)] +// CHECK:STDOUT: %require_complete.loc5_42: = require_complete_type @Get.%T (%T) [symbolic = %require_complete.loc5_42 (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @Get.%Class (%Class.2c9)]() -> @Get.%T (%T) { +// CHECK:STDOUT: fn[%self.param_patt: @Get.%Class (%Class.fe1)]() -> @Get.%T (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @Get.%Class (%Class.2c9) = name_ref self, %self -// CHECK:STDOUT: %x.ref: @Get.%Class.elem (%Class.elem.0a3) = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] +// CHECK:STDOUT: %self.ref: @Get.%Class (%Class.fe1) = name_ref self, %self +// CHECK:STDOUT: %x.ref: @Get.%Class.elem (%Class.elem.e26) = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] // CHECK:STDOUT: %.loc5_42.1: ref @Get.%T (%T) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc5_42.2: @Get.%T (%T) = bind_value %.loc5_42.1 // CHECK:STDOUT: return %.loc5_42.2 @@ -261,41 +261,41 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc2_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2c9)] -// CHECK:STDOUT: %ptr.loc7_29.1: type = ptr_type @GetAddr.%Class (%Class.2c9) [symbolic = %ptr.loc7_29.1 (constants.%ptr.53c)] -// CHECK:STDOUT: %ptr.loc7_38.1: type = ptr_type @GetAddr.%T (%T) [symbolic = %ptr.loc7_38.1 (constants.%ptr.251)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %ptr.loc7_29.1: type = ptr_type @GetAddr.%Class (%Class.fe1) [symbolic = %ptr.loc7_29.1 (constants.%ptr.955)] +// CHECK:STDOUT: %ptr.loc7_38.1: type = ptr_type @GetAddr.%T (%T) [symbolic = %ptr.loc7_38.1 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_34: = require_complete_type @GetAddr.%ptr.loc7_38.1 (%ptr.251) [symbolic = %require_complete.loc7_34 (constants.%require_complete.968)] -// CHECK:STDOUT: %require_complete.loc7_23: = require_complete_type @GetAddr.%ptr.loc7_29.1 (%ptr.53c) [symbolic = %require_complete.loc7_23 (constants.%require_complete.6c6)] -// CHECK:STDOUT: %require_complete.loc7_54: = require_complete_type @GetAddr.%Class (%Class.2c9) [symbolic = %require_complete.loc7_54 (constants.%require_complete.723)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type @GetAddr.%Class (%Class.2c9), @GetAddr.%T (%T) [symbolic = %Class.elem (constants.%Class.elem.0a3)] +// CHECK:STDOUT: %require_complete.loc7_34: = require_complete_type @GetAddr.%ptr.loc7_38.1 (%ptr.79f) [symbolic = %require_complete.loc7_34 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc7_23: = require_complete_type @GetAddr.%ptr.loc7_29.1 (%ptr.955) [symbolic = %require_complete.loc7_23 (constants.%require_complete.2ae)] +// CHECK:STDOUT: %require_complete.loc7_54: = require_complete_type @GetAddr.%Class (%Class.fe1) [symbolic = %require_complete.loc7_54 (constants.%require_complete.4f8)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type @GetAddr.%Class (%Class.fe1), @GetAddr.%T (%T) [symbolic = %Class.elem (constants.%Class.elem.e26)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[addr %self.param_patt: @GetAddr.%ptr.loc7_29.1 (%ptr.53c)]() -> @GetAddr.%ptr.loc7_38.1 (%ptr.251) { +// CHECK:STDOUT: fn[addr %self.param_patt: @GetAddr.%ptr.loc7_29.1 (%ptr.955)]() -> @GetAddr.%ptr.loc7_38.1 (%ptr.79f) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @GetAddr.%ptr.loc7_29.1 (%ptr.53c) = name_ref self, %self -// CHECK:STDOUT: %.loc7_54.1: ref @GetAddr.%Class (%Class.2c9) = deref %self.ref -// CHECK:STDOUT: %x.ref: @GetAddr.%Class.elem (%Class.elem.0a3) = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] +// CHECK:STDOUT: %self.ref: @GetAddr.%ptr.loc7_29.1 (%ptr.955) = name_ref self, %self +// CHECK:STDOUT: %.loc7_54.1: ref @GetAddr.%Class (%Class.fe1) = deref %self.ref +// CHECK:STDOUT: %x.ref: @GetAddr.%Class.elem (%Class.elem.e26) = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] // CHECK:STDOUT: %.loc7_54.2: ref @GetAddr.%T (%T) = class_element_access %.loc7_54.1, element0 -// CHECK:STDOUT: %addr: @GetAddr.%ptr.loc7_38.1 (%ptr.251) = addr_of %.loc7_54.2 +// CHECK:STDOUT: %addr: @GetAddr.%ptr.loc7_38.1 (%ptr.79f) = addr_of %.loc7_54.2 // CHECK:STDOUT: return %addr // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @DirectFieldAccess(%x.param_patt: %Class.d3a) -> %i32 { +// CHECK:STDOUT: fn @DirectFieldAccess(%x.param_patt: %Class.247) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc11_10: %Class.d3a = name_ref x, %x -// CHECK:STDOUT: %x.ref.loc11_11: %Class.elem.0f0 = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] +// CHECK:STDOUT: %x.ref.loc11_10: %Class.247 = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc11_11: %Class.elem.2d8 = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] // CHECK:STDOUT: %.loc11_11.1: ref %i32 = class_element_access %x.ref.loc11_10, element0 // CHECK:STDOUT: %.loc11_11.2: %i32 = bind_value %.loc11_11.1 // CHECK:STDOUT: return %.loc11_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MethodCall(%x.param_patt: %Class.d3a) -> %i32 { +// CHECK:STDOUT: fn @MethodCall(%x.param_patt: %Class.247) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: %Class.d3a = name_ref x, %x -// CHECK:STDOUT: %.loc15_11: %Get.type.22a = specific_constant @Class.%Get.decl, @Class(constants.%i32) [template = constants.%Get.5ee] -// CHECK:STDOUT: %Get.ref: %Get.type.22a = name_ref Get, %.loc15_11 [template = constants.%Get.5ee] +// CHECK:STDOUT: %x.ref: %Class.247 = name_ref x, %x +// CHECK:STDOUT: %.loc15_11: %Get.type.59d = specific_constant @Class.%Get.decl, @Class(constants.%i32) [template = constants.%Get.a40] +// CHECK:STDOUT: %Get.ref: %Get.type.59d = name_ref Get, %.loc15_11 [template = constants.%Get.a40] // CHECK:STDOUT: %Get.bound: = bound_method %x.ref, %Get.ref // CHECK:STDOUT: %Get.specific_fn: = specific_function %Get.bound, @Get(constants.%i32) // CHECK:STDOUT: %Get.call: init %i32 = call %Get.specific_fn(%x.ref) @@ -304,18 +304,18 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: return %.loc15_17.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AddrMethodCall(%p.param_patt: %ptr.367) -> %i32 { +// CHECK:STDOUT: fn @AddrMethodCall(%p.param_patt: %ptr.f7c) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.367 = name_ref p, %p -// CHECK:STDOUT: %.loc19_12.1: ref %Class.d3a = deref %p.ref -// CHECK:STDOUT: %.loc19_12.2: %GetAddr.type.913 = specific_constant @Class.%GetAddr.decl, @Class(constants.%i32) [template = constants.%GetAddr.07b] -// CHECK:STDOUT: %GetAddr.ref: %GetAddr.type.913 = name_ref GetAddr, %.loc19_12.2 [template = constants.%GetAddr.07b] +// CHECK:STDOUT: %p.ref: %ptr.f7c = name_ref p, %p +// CHECK:STDOUT: %.loc19_12.1: ref %Class.247 = deref %p.ref +// CHECK:STDOUT: %.loc19_12.2: %GetAddr.type.be7 = specific_constant @Class.%GetAddr.decl, @Class(constants.%i32) [template = constants.%GetAddr.909] +// CHECK:STDOUT: %GetAddr.ref: %GetAddr.type.be7 = name_ref GetAddr, %.loc19_12.2 [template = constants.%GetAddr.909] // CHECK:STDOUT: %GetAddr.bound: = bound_method %.loc19_12.1, %GetAddr.ref // CHECK:STDOUT: %GetAddr.specific_fn: = specific_function %GetAddr.bound, @GetAddr(constants.%i32) -// CHECK:STDOUT: %addr: %ptr.367 = addr_of %.loc19_12.1 -// CHECK:STDOUT: %GetAddr.call: init %ptr.dc3 = call %GetAddr.specific_fn(%addr) -// CHECK:STDOUT: %.loc19_22.1: %ptr.dc3 = value_of_initializer %GetAddr.call -// CHECK:STDOUT: %.loc19_22.2: %ptr.dc3 = converted %GetAddr.call, %.loc19_22.1 +// CHECK:STDOUT: %addr: %ptr.f7c = addr_of %.loc19_12.1 +// CHECK:STDOUT: %GetAddr.call: init %ptr.235 = call %GetAddr.specific_fn(%addr) +// CHECK:STDOUT: %.loc19_22.1: %ptr.235 = value_of_initializer %GetAddr.call +// CHECK:STDOUT: %.loc19_22.2: %ptr.235 = converted %GetAddr.call, %.loc19_22.1 // CHECK:STDOUT: %.loc19_10.1: ref %i32 = deref %.loc19_22.2 // CHECK:STDOUT: %.loc19_10.2: %i32 = bind_value %.loc19_10.1 // CHECK:STDOUT: return %.loc19_10.2 @@ -326,29 +326,29 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.patt.loc2_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %Class => constants.%Class.2c9 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.0a3 -// CHECK:STDOUT: %Get.type => constants.%Get.type.6c9 -// CHECK:STDOUT: %Get => constants.%Get.ca7 -// CHECK:STDOUT: %GetAddr.type => constants.%GetAddr.type.911 -// CHECK:STDOUT: %GetAddr => constants.%GetAddr.fdb -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.710 -// CHECK:STDOUT: %complete_type.loc8_1.2 => constants.%complete_type.60a +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %Class => constants.%Class.fe1 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.e26 +// CHECK:STDOUT: %Get.type => constants.%Get.type.fd9 +// CHECK:STDOUT: %Get => constants.%Get.cf9 +// CHECK:STDOUT: %GetAddr.type => constants.%GetAddr.type.402 +// CHECK:STDOUT: %GetAddr => constants.%GetAddr.102 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.2ac +// CHECK:STDOUT: %complete_type.loc8_1.2 => constants.%complete_type.433 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Class => constants.%Class.2c9 +// CHECK:STDOUT: %Class => constants.%Class.fe1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@Get.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GetAddr(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Class => constants.%Class.2c9 -// CHECK:STDOUT: %ptr.loc7_29.1 => constants.%ptr.53c -// CHECK:STDOUT: %ptr.loc7_38.1 => constants.%ptr.251 +// CHECK:STDOUT: %Class => constants.%Class.fe1 +// CHECK:STDOUT: %ptr.loc7_29.1 => constants.%ptr.955 +// CHECK:STDOUT: %ptr.loc7_38.1 => constants.%ptr.79f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@GetAddr.%T) {} @@ -361,37 +361,37 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Class => constants.%Class.d3a -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.0f0 -// CHECK:STDOUT: %Get.type => constants.%Get.type.22a -// CHECK:STDOUT: %Get => constants.%Get.5ee -// CHECK:STDOUT: %GetAddr.type => constants.%GetAddr.type.913 -// CHECK:STDOUT: %GetAddr => constants.%GetAddr.07b -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.b74 -// CHECK:STDOUT: %complete_type.loc8_1.2 => constants.%complete_type.f6d +// CHECK:STDOUT: %Class => constants.%Class.247 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.2d8 +// CHECK:STDOUT: %Get.type => constants.%Get.type.59d +// CHECK:STDOUT: %Get => constants.%Get.a40 +// CHECK:STDOUT: %GetAddr.type => constants.%GetAddr.type.be7 +// CHECK:STDOUT: %GetAddr => constants.%GetAddr.909 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.ed6 +// CHECK:STDOUT: %complete_type.loc8_1.2 => constants.%complete_type.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %Class => constants.%Class.d3a +// CHECK:STDOUT: %Class => constants.%Class.247 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc5_14 => constants.%complete_type.f6d -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.0f0 +// CHECK:STDOUT: %require_complete.loc5_14 => constants.%complete_type.1ec +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.2d8 // CHECK:STDOUT: %require_complete.loc5_42 => constants.%complete_type.f8a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GetAddr(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %Class => constants.%Class.d3a -// CHECK:STDOUT: %ptr.loc7_29.1 => constants.%ptr.367 -// CHECK:STDOUT: %ptr.loc7_38.1 => constants.%ptr.dc3 +// CHECK:STDOUT: %Class => constants.%Class.247 +// CHECK:STDOUT: %ptr.loc7_29.1 => constants.%ptr.f7c +// CHECK:STDOUT: %ptr.loc7_38.1 => constants.%ptr.235 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_34 => constants.%complete_type.566 -// CHECK:STDOUT: %require_complete.loc7_23 => constants.%complete_type.576 -// CHECK:STDOUT: %require_complete.loc7_54 => constants.%complete_type.f6d -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.0f0 +// CHECK:STDOUT: %require_complete.loc7_34 => constants.%complete_type.3d0 +// CHECK:STDOUT: %require_complete.loc7_23 => constants.%complete_type.6ee +// CHECK:STDOUT: %require_complete.loc7_54 => constants.%complete_type.1ec +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.2d8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_static_member_fn_call.carbon @@ -406,18 +406,18 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Make: %Make.type = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.723: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %require_complete.4f8: = require_complete_type %Class [symbolic] // CHECK:STDOUT: %Class.val: %Class = struct_value () [symbolic] // CHECK:STDOUT: %StaticMemberFunctionCall.type: type = fn_type @StaticMemberFunctionCall [template] // CHECK:STDOUT: %StaticMemberFunctionCall: %StaticMemberFunctionCall.type = struct_value () [template] // CHECK:STDOUT: %Make.specific_fn: = specific_function %Make, @Make(%T) [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.4b7: type = facet_type <@ImplicitAs, @ImplicitAs(%Class)> [symbolic] -// CHECK:STDOUT: %require_complete.3c3: = require_complete_type %ImplicitAs.type.4b7 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.53b: type = facet_type <@ImplicitAs, @ImplicitAs(%Class)> [symbolic] +// CHECK:STDOUT: %require_complete.d81: = require_complete_type %ImplicitAs.type.53b [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -486,7 +486,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class.loc5_23.1: type = class_type @Class, @Class(%T) [symbolic = %Class.loc5_23.1 (constants.%Class)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Make.%Class.loc5_23.1 (%Class) [symbolic = %require_complete (constants.%require_complete.723)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Make.%Class.loc5_23.1 (%Class) [symbolic = %require_complete (constants.%require_complete.4f8)] // CHECK:STDOUT: %Class.val: @Make.%Class.loc5_23.1 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %return.param_patt: @Make.%Class.loc5_23.1 (%Class) { @@ -504,12 +504,12 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class.loc8_49.2: type = class_type @Class, @Class(%T.loc8_29.2) [symbolic = %Class.loc8_49.2 (constants.%Class)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_18: = require_complete_type @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) [symbolic = %require_complete.loc15_18 (constants.%require_complete.723)] +// CHECK:STDOUT: %require_complete.loc15_18: = require_complete_type @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) [symbolic = %require_complete.loc15_18 (constants.%require_complete.4f8)] // CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.loc8_29.2) [symbolic = %Make.type (constants.%Make.type)] // CHECK:STDOUT: %Make: @StaticMemberFunctionCall.%Make.type (%Make.type) = struct_value () [symbolic = %Make (constants.%Make)] // CHECK:STDOUT: %Make.specific_fn.loc15_18.2: = specific_function %Make, @Make(%T.loc8_29.2) [symbolic = %Make.specific_fn.loc15_18.2 (constants.%Make.specific_fn)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Class.loc8_49.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.4b7)] -// CHECK:STDOUT: %require_complete.loc15_25: = require_complete_type @StaticMemberFunctionCall.%ImplicitAs.type (%ImplicitAs.type.4b7) [symbolic = %require_complete.loc15_25 (constants.%require_complete.3c3)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Class.loc8_49.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.53b)] +// CHECK:STDOUT: %require_complete.loc15_25: = require_complete_type @StaticMemberFunctionCall.%ImplicitAs.type (%ImplicitAs.type.53b) [symbolic = %require_complete.loc15_25 (constants.%require_complete.d81)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type) -> %return.param_patt: @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) { // CHECK:STDOUT: !entry: @@ -540,7 +540,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class.loc5_23.1 => constants.%Class // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.723 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4f8 // CHECK:STDOUT: %Class.val => constants.%Class.val // 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 1959cea9ade1..bd447e011714 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -50,11 +50,11 @@ class C(T:! type) { // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T) [symbolic] // CHECK:STDOUT: %G: %G.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %T} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [symbolic] -// CHECK:STDOUT: %require_complete.723: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %require_complete.4f8: = require_complete_type %Class [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -88,7 +88,7 @@ class C(T:! type) { // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] // CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T.loc4_13.2) [symbolic = %G.type (constants.%G.type)] // CHECK:STDOUT: %G: @Class.%G.type (%G.type) = struct_value () [symbolic = %G (constants.%G)] -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class), @Class.%T.loc4_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Class.%T.loc4_13.2 (%T)} [symbolic = %struct_type.n (constants.%struct_type.n)] @@ -140,7 +140,7 @@ class C(T:! type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%T (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%T (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param_patt: @F.%T (%T)) -> @F.%T (%T) { // CHECK:STDOUT: !entry: @@ -154,9 +154,9 @@ class C(T:! type) { // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @G.%Class (%Class) [symbolic = %require_complete.loc9 (constants.%require_complete.723)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @G.%Class (%Class) [symbolic = %require_complete.loc9 (constants.%require_complete.4f8)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @G.%Class (%Class), @G.%T (%T) [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type @G.%T (%T) [symbolic = %require_complete.loc10 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type @G.%T (%T) [symbolic = %require_complete.loc10 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: @G.%Class (%Class)]() -> @G.%T (%T) { // CHECK:STDOUT: !entry: @@ -177,7 +177,7 @@ class C(T:! type) { // CHECK:STDOUT: %F => constants.%F // CHECK:STDOUT: %G.type => constants.%G.type // CHECK:STDOUT: %G => constants.%G -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n diff --git a/toolchain/check/testdata/class/generic/member_lookup.carbon b/toolchain/check/testdata/class/generic/member_lookup.carbon index 2b2fcad9adf1..f276f1452fbf 100644 --- a/toolchain/check/testdata/class/generic/member_lookup.carbon +++ b/toolchain/check/testdata/class/generic/member_lookup.carbon @@ -76,44 +76,44 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Base.type: type = generic_class_type @Base [template] // CHECK:STDOUT: %Base.generic: %Base.type = struct_value () [template] -// CHECK:STDOUT: %Base.0cc: type = class_type @Base, @Base(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Base.elem.bb6: type = unbound_element_type %Base.0cc, %T [symbolic] -// CHECK:STDOUT: %struct_type.b.6c4: type = struct_type {.b: %T} [symbolic] -// CHECK:STDOUT: %complete_type.85b: = complete_type_witness %struct_type.b.6c4 [symbolic] +// CHECK:STDOUT: %Base.370: type = class_type @Base, @Base(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Base.elem.9af: type = unbound_element_type %Base.370, %T [symbolic] +// CHECK:STDOUT: %struct_type.b.f69: type = struct_type {.b: %T} [symbolic] +// CHECK:STDOUT: %complete_type.eaf: = complete_type_witness %struct_type.b.f69 [symbolic] // CHECK:STDOUT: %Derived.type: type = generic_class_type @Derived [template] // CHECK:STDOUT: %Derived.generic: %Derived.type = struct_value () [template] -// CHECK:STDOUT: %Derived.336: type = class_type @Derived, @Derived(%T) [symbolic] -// CHECK:STDOUT: %require_complete.04f: = require_complete_type %Base.0cc [symbolic] -// CHECK:STDOUT: %Derived.elem.174: type = unbound_element_type %Derived.336, %Base.0cc [symbolic] -// CHECK:STDOUT: %Derived.elem.5ad: type = unbound_element_type %Derived.336, %T [symbolic] -// CHECK:STDOUT: %struct_type.base.d.fa7: type = struct_type {.base: %Base.0cc, .d: %T} [symbolic] -// CHECK:STDOUT: %complete_type.c70: = complete_type_witness %struct_type.base.d.fa7 [symbolic] +// CHECK:STDOUT: %Derived.85c: type = class_type @Derived, @Derived(%T) [symbolic] +// CHECK:STDOUT: %require_complete.97d: = require_complete_type %Base.370 [symbolic] +// CHECK:STDOUT: %Derived.elem.8b3: type = unbound_element_type %Derived.85c, %Base.370 [symbolic] +// CHECK:STDOUT: %Derived.elem.6d2: type = unbound_element_type %Derived.85c, %T [symbolic] +// CHECK:STDOUT: %struct_type.base.d.37c: type = struct_type {.base: %Base.370, .d: %T} [symbolic] +// CHECK:STDOUT: %complete_type.8ad: = complete_type_witness %struct_type.base.d.37c [symbolic] // CHECK:STDOUT: %AccessDerived.type: type = fn_type @AccessDerived [template] // CHECK:STDOUT: %AccessDerived: %AccessDerived.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.45e: = require_complete_type %Derived.336 [symbolic] +// CHECK:STDOUT: %require_complete.5f4: = require_complete_type %Derived.85c [symbolic] // CHECK:STDOUT: %AccessBase.type: type = fn_type @AccessBase [template] // CHECK:STDOUT: %AccessBase: %AccessBase.type = struct_value () [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Derived.422: type = class_type @Derived, @Derived(%i32) [template] +// CHECK:STDOUT: %Derived.115: type = class_type @Derived, @Derived(%i32) [template] // CHECK:STDOUT: %AccessConcrete.type: type = fn_type @AccessConcrete [template] // CHECK:STDOUT: %AccessConcrete: %AccessConcrete.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %Base.3b2: type = class_type @Base, @Base(%i32) [template] -// CHECK:STDOUT: %Base.elem.9d1: type = unbound_element_type %Base.3b2, %i32 [template] -// CHECK:STDOUT: %struct_type.b.fc0: type = struct_type {.b: %i32} [template] -// CHECK:STDOUT: %complete_type.d62: = complete_type_witness %struct_type.b.fc0 [template] -// CHECK:STDOUT: %Derived.elem.508: type = unbound_element_type %Derived.422, %Base.3b2 [template] -// CHECK:STDOUT: %Derived.elem.a04: type = unbound_element_type %Derived.422, %i32 [template] -// CHECK:STDOUT: %struct_type.base.d.244: type = struct_type {.base: %Base.3b2, .d: %i32} [template] -// CHECK:STDOUT: %complete_type.3ad: = complete_type_witness %struct_type.base.d.244 [template] +// CHECK:STDOUT: %Base.10a: type = class_type @Base, @Base(%i32) [template] +// CHECK:STDOUT: %Base.elem.a98: type = unbound_element_type %Base.10a, %i32 [template] +// CHECK:STDOUT: %struct_type.b.0a3: type = struct_type {.b: %i32} [template] +// CHECK:STDOUT: %complete_type.ba8: = complete_type_witness %struct_type.b.0a3 [template] +// CHECK:STDOUT: %Derived.elem.0c4: type = unbound_element_type %Derived.115, %Base.10a [template] +// CHECK:STDOUT: %Derived.elem.b58: type = unbound_element_type %Derived.115, %i32 [template] +// CHECK:STDOUT: %struct_type.base.d.ffa: type = struct_type {.base: %Base.10a, .d: %i32} [template] +// CHECK:STDOUT: %complete_type.544: = complete_type_witness %struct_type.base.d.ffa [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -146,61 +146,61 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %AccessDerived.decl: %AccessDerived.type = fn_decl @AccessDerived [template = constants.%AccessDerived] { // CHECK:STDOUT: %T.patt.loc13_18.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_18.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc13_18.1, runtime_param [symbolic = %T.patt.loc13_18.2 (constants.%T.patt)] -// CHECK:STDOUT: %x.patt: @AccessDerived.%Derived.loc13_40.2 (%Derived.336) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @AccessDerived.%Derived.loc13_40.2 (%Derived.336) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @AccessDerived.%T.loc13_18.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @AccessDerived.%T.loc13_18.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13_46: type = name_ref T, %T.loc13_18.1 [symbolic = %T.loc13_18.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc13_18.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_18.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @AccessDerived.%Derived.loc13_40.2 (%Derived.336) = value_param runtime_param0 -// CHECK:STDOUT: %.loc13: type = splice_block %Derived.loc13_40.1 [symbolic = %Derived.loc13_40.2 (constants.%Derived.336)] { +// CHECK:STDOUT: %x.param: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) = value_param runtime_param0 +// CHECK:STDOUT: %.loc13: type = splice_block %Derived.loc13_40.1 [symbolic = %Derived.loc13_40.2 (constants.%Derived.85c)] { // CHECK:STDOUT: %Derived.ref: %Derived.type = name_ref Derived, file.%Derived.decl [template = constants.%Derived.generic] // CHECK:STDOUT: %T.ref.loc13_39: type = name_ref T, %T.loc13_18.1 [symbolic = %T.loc13_18.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc13_40.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc13_40.2 (constants.%Derived.336)] +// CHECK:STDOUT: %Derived.loc13_40.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc13_40.2 (constants.%Derived.85c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @AccessDerived.%Derived.loc13_40.2 (%Derived.336) = bind_name x, %x.param +// CHECK:STDOUT: %x: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref @AccessDerived.%T.loc13_18.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @AccessDerived.%T.loc13_18.2 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessBase.decl: %AccessBase.type = fn_decl @AccessBase [template = constants.%AccessBase] { // CHECK:STDOUT: %T.patt.loc17_15.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc17_15.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc17_15.1, runtime_param [symbolic = %T.patt.loc17_15.2 (constants.%T.patt)] -// CHECK:STDOUT: %x.patt: @AccessBase.%Derived.loc17_37.2 (%Derived.336) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @AccessBase.%Derived.loc17_37.2 (%Derived.336) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: @AccessBase.%Derived.loc17_37.2 (%Derived.85c) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @AccessBase.%Derived.loc17_37.2 (%Derived.85c) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @AccessBase.%T.loc17_15.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @AccessBase.%T.loc17_15.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc17_43: type = name_ref T, %T.loc17_15.1 [symbolic = %T.loc17_15.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc17_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc17_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @AccessBase.%Derived.loc17_37.2 (%Derived.336) = value_param runtime_param0 -// CHECK:STDOUT: %.loc17: type = splice_block %Derived.loc17_37.1 [symbolic = %Derived.loc17_37.2 (constants.%Derived.336)] { +// CHECK:STDOUT: %x.param: @AccessBase.%Derived.loc17_37.2 (%Derived.85c) = value_param runtime_param0 +// CHECK:STDOUT: %.loc17: type = splice_block %Derived.loc17_37.1 [symbolic = %Derived.loc17_37.2 (constants.%Derived.85c)] { // CHECK:STDOUT: %Derived.ref: %Derived.type = name_ref Derived, file.%Derived.decl [template = constants.%Derived.generic] // CHECK:STDOUT: %T.ref.loc17_36: type = name_ref T, %T.loc17_15.1 [symbolic = %T.loc17_15.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc17_37.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc17_37.2 (constants.%Derived.336)] +// CHECK:STDOUT: %Derived.loc17_37.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc17_37.2 (constants.%Derived.85c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @AccessBase.%Derived.loc17_37.2 (%Derived.336) = bind_name x, %x.param +// CHECK:STDOUT: %x: @AccessBase.%Derived.loc17_37.2 (%Derived.85c) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref @AccessBase.%T.loc17_15.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @AccessBase.%T.loc17_15.2 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessConcrete.decl: %AccessConcrete.type = fn_decl @AccessConcrete [template = constants.%AccessConcrete] { -// CHECK:STDOUT: %x.patt: %Derived.422 = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %Derived.422 = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: %Derived.115 = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %Derived.115 = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc21_39: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc21_39: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %x.param: %Derived.422 = value_param runtime_param0 -// CHECK:STDOUT: %.loc21: type = splice_block %Derived [template = constants.%Derived.422] { +// CHECK:STDOUT: %x.param: %Derived.115 = value_param runtime_param0 +// CHECK:STDOUT: %.loc21: type = splice_block %Derived [template = constants.%Derived.115] { // CHECK:STDOUT: %Derived.ref: %Derived.type = name_ref Derived, file.%Derived.decl [template = constants.%Derived.generic] // CHECK:STDOUT: %int_32.loc21_30: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc21_30: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(constants.%i32) [template = constants.%Derived.422] +// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(constants.%i32) [template = constants.%Derived.115] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %Derived.422 = bind_name x, %x.param +// CHECK:STDOUT: %x: %Derived.115 = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -211,18 +211,18 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_17.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_17.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Base.%T.loc4_17.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.0cc)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type @Base.%Base (%Base.0cc), @Base.%T.loc4_17.2 (%T) [symbolic = %Base.elem (constants.%Base.elem.bb6)] -// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.b (constants.%struct_type.b.6c4)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Base.%struct_type.b (%struct_type.b.6c4) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.85b)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Base.%T.loc4_17.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type @Base.%Base (%Base.370), @Base.%T.loc4_17.2 (%T) [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.b (constants.%struct_type.b.f69)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Base.%struct_type.b (%struct_type.b.f69) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.eaf)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.bb6) = field_decl b, element0 [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.b.6c4 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.85b)] +// CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.9af) = field_decl b, element0 [template] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.b.f69 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.eaf)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Base.0cc +// CHECK:STDOUT: .Self = constants.%Base.370 // CHECK:STDOUT: .b = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: } @@ -233,25 +233,25 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc8_15.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_15.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc9_22.2: type = class_type @Base, @Base(%T.loc8_15.2) [symbolic = %Base.loc9_22.2 (constants.%Base.0cc)] -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @Derived.%Base.loc9_22.2 (%Base.0cc) [symbolic = %require_complete.loc9 (constants.%require_complete.04f)] -// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc8_15.2) [symbolic = %Derived (constants.%Derived.336)] -// CHECK:STDOUT: %Derived.elem.loc9: type = unbound_element_type @Derived.%Derived (%Derived.336), @Derived.%Base.loc9_22.2 (%Base.0cc) [symbolic = %Derived.elem.loc9 (constants.%Derived.elem.174)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type @Derived.%T.loc8_15.2 (%T) [symbolic = %require_complete.loc10 (constants.%require_complete.db1)] -// CHECK:STDOUT: %Derived.elem.loc10: type = unbound_element_type @Derived.%Derived (%Derived.336), @Derived.%T.loc8_15.2 (%T) [symbolic = %Derived.elem.loc10 (constants.%Derived.elem.5ad)] -// CHECK:STDOUT: %struct_type.base.d: type = struct_type {.base: @Derived.%Base.loc9_22.2 (%Base.0cc), .d: @Derived.%T.loc8_15.2 (%T)} [symbolic = %struct_type.base.d (constants.%struct_type.base.d.fa7)] -// CHECK:STDOUT: %complete_type.loc11_1.2: = complete_type_witness @Derived.%struct_type.base.d (%struct_type.base.d.fa7) [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.c70)] +// CHECK:STDOUT: %Base.loc9_22.2: type = class_type @Base, @Base(%T.loc8_15.2) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @Derived.%Base.loc9_22.2 (%Base.370) [symbolic = %require_complete.loc9 (constants.%require_complete.97d)] +// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc8_15.2) [symbolic = %Derived (constants.%Derived.85c)] +// CHECK:STDOUT: %Derived.elem.loc9: type = unbound_element_type @Derived.%Derived (%Derived.85c), @Derived.%Base.loc9_22.2 (%Base.370) [symbolic = %Derived.elem.loc9 (constants.%Derived.elem.8b3)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type @Derived.%T.loc8_15.2 (%T) [symbolic = %require_complete.loc10 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Derived.elem.loc10: type = unbound_element_type @Derived.%Derived (%Derived.85c), @Derived.%T.loc8_15.2 (%T) [symbolic = %Derived.elem.loc10 (constants.%Derived.elem.6d2)] +// CHECK:STDOUT: %struct_type.base.d: type = struct_type {.base: @Derived.%Base.loc9_22.2 (%Base.370), .d: @Derived.%T.loc8_15.2 (%T)} [symbolic = %struct_type.base.d (constants.%struct_type.base.d.37c)] +// CHECK:STDOUT: %complete_type.loc11_1.2: = complete_type_witness @Derived.%struct_type.base.d (%struct_type.base.d.37c) [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.8ad)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [template = constants.%Base.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %Base.loc9_22.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc9_22.2 (constants.%Base.0cc)] -// CHECK:STDOUT: %.loc9: @Derived.%Derived.elem.loc9 (%Derived.elem.174) = base_decl %Base.loc9_22.1, element0 [template] -// CHECK:STDOUT: %.loc10: @Derived.%Derived.elem.loc10 (%Derived.elem.5ad) = field_decl d, element1 [template] -// CHECK:STDOUT: %complete_type.loc11_1.1: = complete_type_witness %struct_type.base.d.fa7 [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.c70)] +// CHECK:STDOUT: %Base.loc9_22.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] +// CHECK:STDOUT: %.loc9: @Derived.%Derived.elem.loc9 (%Derived.elem.8b3) = base_decl %Base.loc9_22.1, element0 [template] +// CHECK:STDOUT: %.loc10: @Derived.%Derived.elem.loc10 (%Derived.elem.6d2) = field_decl d, element1 [template] +// CHECK:STDOUT: %complete_type.loc11_1.1: = complete_type_witness %struct_type.base.d.37c [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.8ad)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Derived.336 +// CHECK:STDOUT: .Self = constants.%Derived.85c // CHECK:STDOUT: .base = %.loc9 // CHECK:STDOUT: .d = %.loc10 // CHECK:STDOUT: extend %Base.loc9_22.1 @@ -262,17 +262,17 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: generic fn @AccessDerived(%T.loc13_18.1: type) { // CHECK:STDOUT: %T.loc13_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_18.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc13_18.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_18.2 (constants.%T.patt)] -// CHECK:STDOUT: %Derived.loc13_40.2: type = class_type @Derived, @Derived(%T.loc13_18.2) [symbolic = %Derived.loc13_40.2 (constants.%Derived.336)] +// CHECK:STDOUT: %Derived.loc13_40.2: type = class_type @Derived, @Derived(%T.loc13_18.2) [symbolic = %Derived.loc13_40.2 (constants.%Derived.85c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type @AccessDerived.%Derived.loc13_40.2 (%Derived.336) [symbolic = %require_complete.loc13 (constants.%require_complete.45e)] -// CHECK:STDOUT: %Derived.elem: type = unbound_element_type @AccessDerived.%Derived.loc13_40.2 (%Derived.336), @AccessDerived.%T.loc13_18.2 (%T) [symbolic = %Derived.elem (constants.%Derived.elem.5ad)] -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type @AccessDerived.%T.loc13_18.2 (%T) [symbolic = %require_complete.loc14 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) [symbolic = %require_complete.loc13 (constants.%require_complete.5f4)] +// CHECK:STDOUT: %Derived.elem: type = unbound_element_type @AccessDerived.%Derived.loc13_40.2 (%Derived.85c), @AccessDerived.%T.loc13_18.2 (%T) [symbolic = %Derived.elem (constants.%Derived.elem.6d2)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type @AccessDerived.%T.loc13_18.2 (%T) [symbolic = %require_complete.loc14 (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @AccessDerived.%Derived.loc13_40.2 (%Derived.336)) -> @AccessDerived.%T.loc13_18.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c)) -> @AccessDerived.%T.loc13_18.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_40.2 (%Derived.336) = name_ref x, %x -// CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.5ad) = name_ref d, @Derived.%.loc10 [template = @Derived.%.loc10] +// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) = name_ref x, %x +// CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.6d2) = name_ref d, @Derived.%.loc10 [template = @Derived.%.loc10] // CHECK:STDOUT: %.loc14_11.1: ref @AccessDerived.%T.loc13_18.2 (%T) = class_element_access %x.ref, element1 // CHECK:STDOUT: %.loc14_11.2: @AccessDerived.%T.loc13_18.2 (%T) = bind_value %.loc14_11.1 // CHECK:STDOUT: return %.loc14_11.2 @@ -282,33 +282,33 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: generic fn @AccessBase(%T.loc17_15.1: type) { // CHECK:STDOUT: %T.loc17_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc17_15.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc17_15.2 (constants.%T.patt)] -// CHECK:STDOUT: %Derived.loc17_37.2: type = class_type @Derived, @Derived(%T.loc17_15.2) [symbolic = %Derived.loc17_37.2 (constants.%Derived.336)] +// CHECK:STDOUT: %Derived.loc17_37.2: type = class_type @Derived, @Derived(%T.loc17_15.2) [symbolic = %Derived.loc17_37.2 (constants.%Derived.85c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17: = require_complete_type @AccessBase.%Derived.loc17_37.2 (%Derived.336) [symbolic = %require_complete.loc17 (constants.%require_complete.45e)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc17_15.2) [symbolic = %Base (constants.%Base.0cc)] -// CHECK:STDOUT: %require_complete.loc18_11: = require_complete_type @AccessBase.%Base (%Base.0cc) [symbolic = %require_complete.loc18_11 (constants.%require_complete.04f)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type @AccessBase.%Base (%Base.0cc), @AccessBase.%T.loc17_15.2 (%T) [symbolic = %Base.elem (constants.%Base.elem.bb6)] -// CHECK:STDOUT: %require_complete.loc18_13: = require_complete_type @AccessBase.%T.loc17_15.2 (%T) [symbolic = %require_complete.loc18_13 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc17: = require_complete_type @AccessBase.%Derived.loc17_37.2 (%Derived.85c) [symbolic = %require_complete.loc17 (constants.%require_complete.5f4)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc17_15.2) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %require_complete.loc18_11: = require_complete_type @AccessBase.%Base (%Base.370) [symbolic = %require_complete.loc18_11 (constants.%require_complete.97d)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type @AccessBase.%Base (%Base.370), @AccessBase.%T.loc17_15.2 (%T) [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %require_complete.loc18_13: = require_complete_type @AccessBase.%T.loc17_15.2 (%T) [symbolic = %require_complete.loc18_13 (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @AccessBase.%Derived.loc17_37.2 (%Derived.336)) -> @AccessBase.%T.loc17_15.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @AccessBase.%Derived.loc17_37.2 (%Derived.85c)) -> @AccessBase.%T.loc17_15.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc17_37.2 (%Derived.336) = name_ref x, %x -// CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.bb6) = name_ref b, @Base.%.loc5 [template = @Base.%.loc5] -// CHECK:STDOUT: %.loc18_11.1: ref @AccessBase.%Base (%Base.0cc) = class_element_access %x.ref, element0 -// CHECK:STDOUT: %.loc18_11.2: ref @AccessBase.%Base (%Base.0cc) = converted %x.ref, %.loc18_11.1 +// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc17_37.2 (%Derived.85c) = name_ref x, %x +// CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.9af) = name_ref b, @Base.%.loc5 [template = @Base.%.loc5] +// CHECK:STDOUT: %.loc18_11.1: ref @AccessBase.%Base (%Base.370) = class_element_access %x.ref, element0 +// CHECK:STDOUT: %.loc18_11.2: ref @AccessBase.%Base (%Base.370) = converted %x.ref, %.loc18_11.1 // CHECK:STDOUT: %.loc18_11.3: ref @AccessBase.%T.loc17_15.2 (%T) = class_element_access %.loc18_11.2, element0 // CHECK:STDOUT: %.loc18_11.4: @AccessBase.%T.loc17_15.2 (%T) = bind_value %.loc18_11.3 // CHECK:STDOUT: return %.loc18_11.4 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AccessConcrete(%x.param_patt: %Derived.422) -> %i32 { +// CHECK:STDOUT: fn @AccessConcrete(%x.param_patt: %Derived.115) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: %Derived.422 = name_ref x, %x -// CHECK:STDOUT: %b.ref: %Base.elem.9d1 = name_ref b, @Base.%.loc5 [template = @Base.%.loc5] -// CHECK:STDOUT: %.loc22_11.1: ref %Base.3b2 = class_element_access %x.ref, element0 -// CHECK:STDOUT: %.loc22_11.2: ref %Base.3b2 = converted %x.ref, %.loc22_11.1 +// CHECK:STDOUT: %x.ref: %Derived.115 = name_ref x, %x +// CHECK:STDOUT: %b.ref: %Base.elem.a98 = name_ref b, @Base.%.loc5 [template = @Base.%.loc5] +// CHECK:STDOUT: %.loc22_11.1: ref %Base.10a = class_element_access %x.ref, element0 +// CHECK:STDOUT: %.loc22_11.2: ref %Base.10a = converted %x.ref, %.loc22_11.1 // CHECK:STDOUT: %.loc22_11.3: ref %i32 = class_element_access %.loc22_11.2, element0 // CHECK:STDOUT: %.loc22_11.4: %i32 = bind_value %.loc22_11.3 // CHECK:STDOUT: return %.loc22_11.4 @@ -319,11 +319,11 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_17.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %Base => constants.%Base.0cc -// CHECK:STDOUT: %Base.elem => constants.%Base.elem.bb6 -// CHECK:STDOUT: %struct_type.b => constants.%struct_type.b.6c4 -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.85b +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %Base => constants.%Base.370 +// CHECK:STDOUT: %Base.elem => constants.%Base.elem.9af +// CHECK:STDOUT: %struct_type.b => constants.%struct_type.b.f69 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.eaf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(%T.loc4_17.2) {} @@ -333,14 +333,14 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc8_15.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.0cc -// CHECK:STDOUT: %require_complete.loc9 => constants.%require_complete.04f -// CHECK:STDOUT: %Derived => constants.%Derived.336 -// CHECK:STDOUT: %Derived.elem.loc9 => constants.%Derived.elem.174 -// CHECK:STDOUT: %require_complete.loc10 => constants.%require_complete.db1 -// CHECK:STDOUT: %Derived.elem.loc10 => constants.%Derived.elem.5ad -// CHECK:STDOUT: %struct_type.base.d => constants.%struct_type.base.d.fa7 -// CHECK:STDOUT: %complete_type.loc11_1.2 => constants.%complete_type.c70 +// CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.370 +// CHECK:STDOUT: %require_complete.loc9 => constants.%require_complete.97d +// CHECK:STDOUT: %Derived => constants.%Derived.85c +// CHECK:STDOUT: %Derived.elem.loc9 => constants.%Derived.elem.8b3 +// CHECK:STDOUT: %require_complete.loc10 => constants.%require_complete.4ae +// CHECK:STDOUT: %Derived.elem.loc10 => constants.%Derived.elem.6d2 +// CHECK:STDOUT: %struct_type.base.d => constants.%struct_type.base.d.37c +// CHECK:STDOUT: %complete_type.loc11_1.2 => constants.%complete_type.8ad // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(@Derived.%T.loc8_15.2) {} @@ -350,7 +350,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: specific @AccessDerived(constants.%T) { // CHECK:STDOUT: %T.loc13_18.2 => constants.%T // CHECK:STDOUT: %T.patt.loc13_18.2 => constants.%T -// CHECK:STDOUT: %Derived.loc13_40.2 => constants.%Derived.336 +// CHECK:STDOUT: %Derived.loc13_40.2 => constants.%Derived.85c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(@AccessDerived.%T.loc13_18.2) {} @@ -358,7 +358,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: specific @AccessBase(constants.%T) { // CHECK:STDOUT: %T.loc17_15.2 => constants.%T // CHECK:STDOUT: %T.patt.loc17_15.2 => constants.%T -// CHECK:STDOUT: %Derived.loc17_37.2 => constants.%Derived.336 +// CHECK:STDOUT: %Derived.loc17_37.2 => constants.%Derived.85c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(@AccessBase.%T.loc17_15.2) {} @@ -370,14 +370,14 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc8_15.2 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.3b2 -// CHECK:STDOUT: %require_complete.loc9 => constants.%complete_type.d62 -// CHECK:STDOUT: %Derived => constants.%Derived.422 -// CHECK:STDOUT: %Derived.elem.loc9 => constants.%Derived.elem.508 +// CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.10a +// CHECK:STDOUT: %require_complete.loc9 => constants.%complete_type.ba8 +// CHECK:STDOUT: %Derived => constants.%Derived.115 +// CHECK:STDOUT: %Derived.elem.loc9 => constants.%Derived.elem.0c4 // CHECK:STDOUT: %require_complete.loc10 => constants.%complete_type.f8a -// CHECK:STDOUT: %Derived.elem.loc10 => constants.%Derived.elem.a04 -// CHECK:STDOUT: %struct_type.base.d => constants.%struct_type.base.d.244 -// CHECK:STDOUT: %complete_type.loc11_1.2 => constants.%complete_type.3ad +// CHECK:STDOUT: %Derived.elem.loc10 => constants.%Derived.elem.b58 +// CHECK:STDOUT: %struct_type.base.d => constants.%struct_type.base.d.ffa +// CHECK:STDOUT: %complete_type.loc11_1.2 => constants.%complete_type.544 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%i32) { @@ -386,10 +386,10 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Base => constants.%Base.3b2 -// CHECK:STDOUT: %Base.elem => constants.%Base.elem.9d1 -// CHECK:STDOUT: %struct_type.b => constants.%struct_type.b.fc0 -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.d62 +// CHECK:STDOUT: %Base => constants.%Base.10a +// CHECK:STDOUT: %Base.elem => constants.%Base.elem.a98 +// CHECK:STDOUT: %struct_type.b => constants.%struct_type.b.0a3 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.ba8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_no_member.carbon @@ -399,44 +399,44 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Base.type: type = generic_class_type @Base [template] // CHECK:STDOUT: %Base.generic: %Base.type = struct_value () [template] -// CHECK:STDOUT: %Base.0cc: type = class_type @Base, @Base(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Base.elem.bb6: type = unbound_element_type %Base.0cc, %T [symbolic] -// CHECK:STDOUT: %struct_type.b.6c4: type = struct_type {.b: %T} [symbolic] -// CHECK:STDOUT: %complete_type.85b: = complete_type_witness %struct_type.b.6c4 [symbolic] +// CHECK:STDOUT: %Base.370: type = class_type @Base, @Base(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Base.elem.9af: type = unbound_element_type %Base.370, %T [symbolic] +// CHECK:STDOUT: %struct_type.b.f69: type = struct_type {.b: %T} [symbolic] +// CHECK:STDOUT: %complete_type.eaf: = complete_type_witness %struct_type.b.f69 [symbolic] // CHECK:STDOUT: %Derived.type: type = generic_class_type @Derived [template] // CHECK:STDOUT: %Derived.generic: %Derived.type = struct_value () [template] -// CHECK:STDOUT: %Derived.336: type = class_type @Derived, @Derived(%T) [symbolic] -// CHECK:STDOUT: %require_complete.04f: = require_complete_type %Base.0cc [symbolic] -// CHECK:STDOUT: %Derived.elem.174: type = unbound_element_type %Derived.336, %Base.0cc [symbolic] -// CHECK:STDOUT: %Derived.elem.5ad: type = unbound_element_type %Derived.336, %T [symbolic] -// CHECK:STDOUT: %struct_type.base.d.fa7: type = struct_type {.base: %Base.0cc, .d: %T} [symbolic] -// CHECK:STDOUT: %complete_type.c70: = complete_type_witness %struct_type.base.d.fa7 [symbolic] +// CHECK:STDOUT: %Derived.85c: type = class_type @Derived, @Derived(%T) [symbolic] +// CHECK:STDOUT: %require_complete.97d: = require_complete_type %Base.370 [symbolic] +// CHECK:STDOUT: %Derived.elem.8b3: type = unbound_element_type %Derived.85c, %Base.370 [symbolic] +// CHECK:STDOUT: %Derived.elem.6d2: type = unbound_element_type %Derived.85c, %T [symbolic] +// CHECK:STDOUT: %struct_type.base.d.37c: type = struct_type {.base: %Base.370, .d: %T} [symbolic] +// CHECK:STDOUT: %complete_type.8ad: = complete_type_witness %struct_type.base.d.37c [symbolic] // CHECK:STDOUT: %AccessMissingBase.type: type = fn_type @AccessMissingBase [template] // CHECK:STDOUT: %AccessMissingBase: %AccessMissingBase.type = struct_value () [template] // CHECK:STDOUT: %AccessMissingDerived.type: type = fn_type @AccessMissingDerived [template] // CHECK:STDOUT: %AccessMissingDerived: %AccessMissingDerived.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.45e: = require_complete_type %Derived.336 [symbolic] +// CHECK:STDOUT: %require_complete.5f4: = require_complete_type %Derived.85c [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Derived.422: type = class_type @Derived, @Derived(%i32) [template] +// CHECK:STDOUT: %Derived.115: type = class_type @Derived, @Derived(%i32) [template] // CHECK:STDOUT: %AccessMissingConcrete.type: type = fn_type @AccessMissingConcrete [template] // CHECK:STDOUT: %AccessMissingConcrete: %AccessMissingConcrete.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %Base.3b2: type = class_type @Base, @Base(%i32) [template] -// CHECK:STDOUT: %Base.elem.9d1: type = unbound_element_type %Base.3b2, %i32 [template] -// CHECK:STDOUT: %struct_type.b.fc0: type = struct_type {.b: %i32} [template] -// CHECK:STDOUT: %complete_type.d62: = complete_type_witness %struct_type.b.fc0 [template] -// CHECK:STDOUT: %Derived.elem.508: type = unbound_element_type %Derived.422, %Base.3b2 [template] -// CHECK:STDOUT: %Derived.elem.a04: type = unbound_element_type %Derived.422, %i32 [template] -// CHECK:STDOUT: %struct_type.base.d.244: type = struct_type {.base: %Base.3b2, .d: %i32} [template] -// CHECK:STDOUT: %complete_type.3ad: = complete_type_witness %struct_type.base.d.244 [template] +// CHECK:STDOUT: %Base.10a: type = class_type @Base, @Base(%i32) [template] +// CHECK:STDOUT: %Base.elem.a98: type = unbound_element_type %Base.10a, %i32 [template] +// CHECK:STDOUT: %struct_type.b.0a3: type = struct_type {.b: %i32} [template] +// CHECK:STDOUT: %complete_type.ba8: = complete_type_witness %struct_type.b.0a3 [template] +// CHECK:STDOUT: %Derived.elem.0c4: type = unbound_element_type %Derived.115, %Base.10a [template] +// CHECK:STDOUT: %Derived.elem.b58: type = unbound_element_type %Derived.115, %i32 [template] +// CHECK:STDOUT: %struct_type.base.d.ffa: type = struct_type {.base: %Base.10a, .d: %i32} [template] +// CHECK:STDOUT: %complete_type.544: = complete_type_witness %struct_type.base.d.ffa [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -469,61 +469,61 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %AccessMissingBase.decl: %AccessMissingBase.type = fn_decl @AccessMissingBase [template = constants.%AccessMissingBase] { // CHECK:STDOUT: %T.patt.loc13_22.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_22.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc13_22.1, runtime_param [symbolic = %T.patt.loc13_22.2 (constants.%T.patt)] -// CHECK:STDOUT: %x.patt: @AccessMissingBase.%Base.loc13_41.2 (%Base.0cc) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @AccessMissingBase.%Base.loc13_41.2 (%Base.0cc) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: @AccessMissingBase.%Base.loc13_41.2 (%Base.370) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @AccessMissingBase.%Base.loc13_41.2 (%Base.370) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @AccessMissingBase.%T.loc13_22.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @AccessMissingBase.%T.loc13_22.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13_47: type = name_ref T, %T.loc13_22.1 [symbolic = %T.loc13_22.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc13_22.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_22.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @AccessMissingBase.%Base.loc13_41.2 (%Base.0cc) = value_param runtime_param0 -// CHECK:STDOUT: %.loc13: type = splice_block %Base.loc13_41.1 [symbolic = %Base.loc13_41.2 (constants.%Base.0cc)] { +// CHECK:STDOUT: %x.param: @AccessMissingBase.%Base.loc13_41.2 (%Base.370) = value_param runtime_param0 +// CHECK:STDOUT: %.loc13: type = splice_block %Base.loc13_41.1 [symbolic = %Base.loc13_41.2 (constants.%Base.370)] { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [template = constants.%Base.generic] // CHECK:STDOUT: %T.ref.loc13_40: type = name_ref T, %T.loc13_22.1 [symbolic = %T.loc13_22.2 (constants.%T)] -// CHECK:STDOUT: %Base.loc13_41.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc13_41.2 (constants.%Base.0cc)] +// CHECK:STDOUT: %Base.loc13_41.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc13_41.2 (constants.%Base.370)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @AccessMissingBase.%Base.loc13_41.2 (%Base.0cc) = bind_name x, %x.param +// CHECK:STDOUT: %x: @AccessMissingBase.%Base.loc13_41.2 (%Base.370) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref @AccessMissingBase.%T.loc13_22.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @AccessMissingBase.%T.loc13_22.2 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingDerived.decl: %AccessMissingDerived.type = fn_decl @AccessMissingDerived [template = constants.%AccessMissingDerived] { // CHECK:STDOUT: %T.patt.loc21_25.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_25.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc21_25.1, runtime_param [symbolic = %T.patt.loc21_25.2 (constants.%T.patt)] -// CHECK:STDOUT: %x.patt: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.336) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.336) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @AccessMissingDerived.%T.loc21_25.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @AccessMissingDerived.%T.loc21_25.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc21_53: type = name_ref T, %T.loc21_25.1 [symbolic = %T.loc21_25.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc21_25.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc21_25.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.336) = value_param runtime_param0 -// CHECK:STDOUT: %.loc21: type = splice_block %Derived.loc21_47.1 [symbolic = %Derived.loc21_47.2 (constants.%Derived.336)] { +// CHECK:STDOUT: %x.param: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) = value_param runtime_param0 +// CHECK:STDOUT: %.loc21: type = splice_block %Derived.loc21_47.1 [symbolic = %Derived.loc21_47.2 (constants.%Derived.85c)] { // CHECK:STDOUT: %Derived.ref: %Derived.type = name_ref Derived, file.%Derived.decl [template = constants.%Derived.generic] // CHECK:STDOUT: %T.ref.loc21_46: type = name_ref T, %T.loc21_25.1 [symbolic = %T.loc21_25.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc21_47.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc21_47.2 (constants.%Derived.336)] +// CHECK:STDOUT: %Derived.loc21_47.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc21_47.2 (constants.%Derived.85c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.336) = bind_name x, %x.param +// CHECK:STDOUT: %x: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref @AccessMissingDerived.%T.loc21_25.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @AccessMissingDerived.%T.loc21_25.2 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingConcrete.decl: %AccessMissingConcrete.type = fn_decl @AccessMissingConcrete [template = constants.%AccessMissingConcrete] { -// CHECK:STDOUT: %x.patt: %Derived.422 = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %Derived.422 = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: %Derived.115 = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %Derived.115 = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc29_46: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc29_46: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %x.param: %Derived.422 = value_param runtime_param0 -// CHECK:STDOUT: %.loc29: type = splice_block %Derived [template = constants.%Derived.422] { +// CHECK:STDOUT: %x.param: %Derived.115 = value_param runtime_param0 +// CHECK:STDOUT: %.loc29: type = splice_block %Derived [template = constants.%Derived.115] { // CHECK:STDOUT: %Derived.ref: %Derived.type = name_ref Derived, file.%Derived.decl [template = constants.%Derived.generic] // CHECK:STDOUT: %int_32.loc29_37: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc29_37: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(constants.%i32) [template = constants.%Derived.422] +// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(constants.%i32) [template = constants.%Derived.115] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %Derived.422 = bind_name x, %x.param +// CHECK:STDOUT: %x: %Derived.115 = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -534,18 +534,18 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_17.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_17.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Base.%T.loc4_17.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.0cc)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type @Base.%Base (%Base.0cc), @Base.%T.loc4_17.2 (%T) [symbolic = %Base.elem (constants.%Base.elem.bb6)] -// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.b (constants.%struct_type.b.6c4)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Base.%struct_type.b (%struct_type.b.6c4) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.85b)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Base.%T.loc4_17.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type @Base.%Base (%Base.370), @Base.%T.loc4_17.2 (%T) [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.b (constants.%struct_type.b.f69)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness @Base.%struct_type.b (%struct_type.b.f69) [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.eaf)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.bb6) = field_decl b, element0 [template] -// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.b.6c4 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.85b)] +// CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.9af) = field_decl b, element0 [template] +// CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.b.f69 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.eaf)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Base.0cc +// CHECK:STDOUT: .Self = constants.%Base.370 // CHECK:STDOUT: .b = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: } @@ -556,25 +556,25 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc8_15.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_15.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc9_22.2: type = class_type @Base, @Base(%T.loc8_15.2) [symbolic = %Base.loc9_22.2 (constants.%Base.0cc)] -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @Derived.%Base.loc9_22.2 (%Base.0cc) [symbolic = %require_complete.loc9 (constants.%require_complete.04f)] -// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc8_15.2) [symbolic = %Derived (constants.%Derived.336)] -// CHECK:STDOUT: %Derived.elem.loc9: type = unbound_element_type @Derived.%Derived (%Derived.336), @Derived.%Base.loc9_22.2 (%Base.0cc) [symbolic = %Derived.elem.loc9 (constants.%Derived.elem.174)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type @Derived.%T.loc8_15.2 (%T) [symbolic = %require_complete.loc10 (constants.%require_complete.db1)] -// CHECK:STDOUT: %Derived.elem.loc10: type = unbound_element_type @Derived.%Derived (%Derived.336), @Derived.%T.loc8_15.2 (%T) [symbolic = %Derived.elem.loc10 (constants.%Derived.elem.5ad)] -// CHECK:STDOUT: %struct_type.base.d: type = struct_type {.base: @Derived.%Base.loc9_22.2 (%Base.0cc), .d: @Derived.%T.loc8_15.2 (%T)} [symbolic = %struct_type.base.d (constants.%struct_type.base.d.fa7)] -// CHECK:STDOUT: %complete_type.loc11_1.2: = complete_type_witness @Derived.%struct_type.base.d (%struct_type.base.d.fa7) [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.c70)] +// CHECK:STDOUT: %Base.loc9_22.2: type = class_type @Base, @Base(%T.loc8_15.2) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type @Derived.%Base.loc9_22.2 (%Base.370) [symbolic = %require_complete.loc9 (constants.%require_complete.97d)] +// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc8_15.2) [symbolic = %Derived (constants.%Derived.85c)] +// CHECK:STDOUT: %Derived.elem.loc9: type = unbound_element_type @Derived.%Derived (%Derived.85c), @Derived.%Base.loc9_22.2 (%Base.370) [symbolic = %Derived.elem.loc9 (constants.%Derived.elem.8b3)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type @Derived.%T.loc8_15.2 (%T) [symbolic = %require_complete.loc10 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Derived.elem.loc10: type = unbound_element_type @Derived.%Derived (%Derived.85c), @Derived.%T.loc8_15.2 (%T) [symbolic = %Derived.elem.loc10 (constants.%Derived.elem.6d2)] +// CHECK:STDOUT: %struct_type.base.d: type = struct_type {.base: @Derived.%Base.loc9_22.2 (%Base.370), .d: @Derived.%T.loc8_15.2 (%T)} [symbolic = %struct_type.base.d (constants.%struct_type.base.d.37c)] +// CHECK:STDOUT: %complete_type.loc11_1.2: = complete_type_witness @Derived.%struct_type.base.d (%struct_type.base.d.37c) [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.8ad)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [template = constants.%Base.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %Base.loc9_22.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc9_22.2 (constants.%Base.0cc)] -// CHECK:STDOUT: %.loc9: @Derived.%Derived.elem.loc9 (%Derived.elem.174) = base_decl %Base.loc9_22.1, element0 [template] -// CHECK:STDOUT: %.loc10: @Derived.%Derived.elem.loc10 (%Derived.elem.5ad) = field_decl d, element1 [template] -// CHECK:STDOUT: %complete_type.loc11_1.1: = complete_type_witness %struct_type.base.d.fa7 [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.c70)] +// CHECK:STDOUT: %Base.loc9_22.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] +// CHECK:STDOUT: %.loc9: @Derived.%Derived.elem.loc9 (%Derived.elem.8b3) = base_decl %Base.loc9_22.1, element0 [template] +// CHECK:STDOUT: %.loc10: @Derived.%Derived.elem.loc10 (%Derived.elem.6d2) = field_decl d, element1 [template] +// CHECK:STDOUT: %complete_type.loc11_1.1: = complete_type_witness %struct_type.base.d.37c [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.8ad)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Derived.336 +// CHECK:STDOUT: .Self = constants.%Derived.85c // CHECK:STDOUT: .base = %.loc9 // CHECK:STDOUT: .d = %.loc10 // CHECK:STDOUT: extend %Base.loc9_22.1 @@ -585,14 +585,14 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: generic fn @AccessMissingBase(%T.loc13_22.1: type) { // CHECK:STDOUT: %T.loc13_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_22.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc13_22.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_22.2 (constants.%T.patt)] -// CHECK:STDOUT: %Base.loc13_41.2: type = class_type @Base, @Base(%T.loc13_22.2) [symbolic = %Base.loc13_41.2 (constants.%Base.0cc)] +// CHECK:STDOUT: %Base.loc13_41.2: type = class_type @Base, @Base(%T.loc13_22.2) [symbolic = %Base.loc13_41.2 (constants.%Base.370)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @AccessMissingBase.%Base.loc13_41.2 (%Base.0cc) [symbolic = %require_complete (constants.%require_complete.04f)] +// CHECK:STDOUT: %require_complete: = require_complete_type @AccessMissingBase.%Base.loc13_41.2 (%Base.370) [symbolic = %require_complete (constants.%require_complete.97d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @AccessMissingBase.%Base.loc13_41.2 (%Base.0cc)) -> @AccessMissingBase.%T.loc13_22.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @AccessMissingBase.%Base.loc13_41.2 (%Base.370)) -> @AccessMissingBase.%T.loc13_22.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessMissingBase.%Base.loc13_41.2 (%Base.0cc) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @AccessMissingBase.%Base.loc13_41.2 (%Base.370) = name_ref x, %x // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -601,24 +601,24 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: generic fn @AccessMissingDerived(%T.loc21_25.1: type) { // CHECK:STDOUT: %T.loc21_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_25.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc21_25.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_25.2 (constants.%T.patt)] -// CHECK:STDOUT: %Derived.loc21_47.2: type = class_type @Derived, @Derived(%T.loc21_25.2) [symbolic = %Derived.loc21_47.2 (constants.%Derived.336)] +// CHECK:STDOUT: %Derived.loc21_47.2: type = class_type @Derived, @Derived(%T.loc21_25.2) [symbolic = %Derived.loc21_47.2 (constants.%Derived.85c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc21: = require_complete_type @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.336) [symbolic = %require_complete.loc21 (constants.%require_complete.45e)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc21_25.2) [symbolic = %Base (constants.%Base.0cc)] -// CHECK:STDOUT: %require_complete.loc26: = require_complete_type @AccessMissingDerived.%Base (%Base.0cc) [symbolic = %require_complete.loc26 (constants.%require_complete.04f)] +// CHECK:STDOUT: %require_complete.loc21: = require_complete_type @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) [symbolic = %require_complete.loc21 (constants.%require_complete.5f4)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc21_25.2) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %require_complete.loc26: = require_complete_type @AccessMissingDerived.%Base (%Base.370) [symbolic = %require_complete.loc26 (constants.%require_complete.97d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.336)) -> @AccessMissingDerived.%T.loc21_25.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c)) -> @AccessMissingDerived.%T.loc21_25.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.336) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) = name_ref x, %x // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AccessMissingConcrete(%x.param_patt: %Derived.422) -> %i32 { +// CHECK:STDOUT: fn @AccessMissingConcrete(%x.param_patt: %Derived.115) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: %Derived.422 = name_ref x, %x +// CHECK:STDOUT: %x.ref: %Derived.115 = name_ref x, %x // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -628,11 +628,11 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_17.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %Base => constants.%Base.0cc -// CHECK:STDOUT: %Base.elem => constants.%Base.elem.bb6 -// CHECK:STDOUT: %struct_type.b => constants.%struct_type.b.6c4 -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.85b +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %Base => constants.%Base.370 +// CHECK:STDOUT: %Base.elem => constants.%Base.elem.9af +// CHECK:STDOUT: %struct_type.b => constants.%struct_type.b.f69 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.eaf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(%T.loc4_17.2) {} @@ -642,14 +642,14 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc8_15.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.0cc -// CHECK:STDOUT: %require_complete.loc9 => constants.%require_complete.04f -// CHECK:STDOUT: %Derived => constants.%Derived.336 -// CHECK:STDOUT: %Derived.elem.loc9 => constants.%Derived.elem.174 -// CHECK:STDOUT: %require_complete.loc10 => constants.%require_complete.db1 -// CHECK:STDOUT: %Derived.elem.loc10 => constants.%Derived.elem.5ad -// CHECK:STDOUT: %struct_type.base.d => constants.%struct_type.base.d.fa7 -// CHECK:STDOUT: %complete_type.loc11_1.2 => constants.%complete_type.c70 +// CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.370 +// CHECK:STDOUT: %require_complete.loc9 => constants.%require_complete.97d +// CHECK:STDOUT: %Derived => constants.%Derived.85c +// CHECK:STDOUT: %Derived.elem.loc9 => constants.%Derived.elem.8b3 +// CHECK:STDOUT: %require_complete.loc10 => constants.%require_complete.4ae +// CHECK:STDOUT: %Derived.elem.loc10 => constants.%Derived.elem.6d2 +// CHECK:STDOUT: %struct_type.base.d => constants.%struct_type.base.d.37c +// CHECK:STDOUT: %complete_type.loc11_1.2 => constants.%complete_type.8ad // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(@Derived.%T.loc8_15.2) {} @@ -659,7 +659,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: specific @AccessMissingBase(constants.%T) { // CHECK:STDOUT: %T.loc13_22.2 => constants.%T // CHECK:STDOUT: %T.patt.loc13_22.2 => constants.%T -// CHECK:STDOUT: %Base.loc13_41.2 => constants.%Base.0cc +// CHECK:STDOUT: %Base.loc13_41.2 => constants.%Base.370 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(@AccessMissingBase.%T.loc13_22.2) {} @@ -667,7 +667,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: specific @AccessMissingDerived(constants.%T) { // CHECK:STDOUT: %T.loc21_25.2 => constants.%T // CHECK:STDOUT: %T.patt.loc21_25.2 => constants.%T -// CHECK:STDOUT: %Derived.loc21_47.2 => constants.%Derived.336 +// CHECK:STDOUT: %Derived.loc21_47.2 => constants.%Derived.85c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(@AccessMissingDerived.%T.loc21_25.2) {} @@ -679,14 +679,14 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc8_15.2 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.3b2 -// CHECK:STDOUT: %require_complete.loc9 => constants.%complete_type.d62 -// CHECK:STDOUT: %Derived => constants.%Derived.422 -// CHECK:STDOUT: %Derived.elem.loc9 => constants.%Derived.elem.508 +// CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.10a +// CHECK:STDOUT: %require_complete.loc9 => constants.%complete_type.ba8 +// CHECK:STDOUT: %Derived => constants.%Derived.115 +// CHECK:STDOUT: %Derived.elem.loc9 => constants.%Derived.elem.0c4 // CHECK:STDOUT: %require_complete.loc10 => constants.%complete_type.f8a -// CHECK:STDOUT: %Derived.elem.loc10 => constants.%Derived.elem.a04 -// CHECK:STDOUT: %struct_type.base.d => constants.%struct_type.base.d.244 -// CHECK:STDOUT: %complete_type.loc11_1.2 => constants.%complete_type.3ad +// CHECK:STDOUT: %Derived.elem.loc10 => constants.%Derived.elem.b58 +// CHECK:STDOUT: %struct_type.base.d => constants.%struct_type.base.d.ffa +// CHECK:STDOUT: %complete_type.loc11_1.2 => constants.%complete_type.544 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%i32) { @@ -695,9 +695,9 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Base => constants.%Base.3b2 -// CHECK:STDOUT: %Base.elem => constants.%Base.elem.9d1 -// CHECK:STDOUT: %struct_type.b => constants.%struct_type.b.fc0 -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.d62 +// CHECK:STDOUT: %Base => constants.%Base.10a +// CHECK:STDOUT: %Base.elem => constants.%Base.elem.a98 +// CHECK:STDOUT: %struct_type.b => constants.%struct_type.b.0a3 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.ba8 // 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 a46e50d169a2..e17cafb2707c 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -117,11 +117,11 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T) [symbolic] // CHECK:STDOUT: %G: %G.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %T} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [symbolic] -// CHECK:STDOUT: %require_complete.723: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %require_complete.4f8: = require_complete_type %Class [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -188,7 +188,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] // CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T.loc4_13.2) [symbolic = %G.type (constants.%G.type)] // CHECK:STDOUT: %G: @Class.%G.type (%G.type) = struct_value () [symbolic = %G (constants.%G)] -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class), @Class.%T.loc4_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Class.%T.loc4_13.2 (%T)} [symbolic = %struct_type.n (constants.%struct_type.n)] @@ -240,7 +240,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc5: type = bind_symbolic_name T, 0 [symbolic = %T.loc5 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%T.loc5 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%T.loc5 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param_patt: %T) -> %T { // CHECK:STDOUT: !entry: @@ -254,9 +254,9 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc6) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type @G.%Class (%Class) [symbolic = %require_complete.loc14 (constants.%require_complete.723)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type @G.%Class (%Class) [symbolic = %require_complete.loc14 (constants.%require_complete.4f8)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @G.%Class (%Class), @G.%T.loc6 (%T) [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc15: = require_complete_type @G.%T.loc6 (%T) [symbolic = %require_complete.loc15 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc15: = require_complete_type @G.%T.loc6 (%T) [symbolic = %require_complete.loc15 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: %Class]() -> %T { // CHECK:STDOUT: !entry: @@ -277,7 +277,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %F => constants.%F // CHECK:STDOUT: %G.type => constants.%G.type // CHECK:STDOUT: %G => constants.%G -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n @@ -314,8 +314,8 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.15e: = require_complete_type %B [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.fca: = require_complete_type %B [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -428,8 +428,8 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %B: type = class_type @B, @B(%T.loc6, %N.loc6) [symbolic = %B (constants.%B)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10_31: = require_complete_type @F.%B (%B) [symbolic = %require_complete.loc10_31 (constants.%require_complete.15e)] -// CHECK:STDOUT: %require_complete.loc10_40: = require_complete_type @F.%T.loc6 (%T) [symbolic = %require_complete.loc10_40 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc10_31: = require_complete_type @F.%B (%B) [symbolic = %require_complete.loc10_31 (constants.%require_complete.fca)] +// CHECK:STDOUT: %require_complete.loc10_40: = require_complete_type @F.%T.loc6 (%T) [symbolic = %require_complete.loc10_40 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: %B](%a.param_patt: %T) { // CHECK:STDOUT: !entry: @@ -711,18 +711,18 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: --- fail_mismatched_wrong_arg_type.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %T.6ba: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.d86: type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e01: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Generic.type: type = generic_class_type @Generic [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %Generic.generic: %Generic.type = struct_value () [template] -// CHECK:STDOUT: %Generic: type = class_type @Generic, @Generic(%T.6ba) [symbolic] -// CHECK:STDOUT: %WrongType.type: type = fn_type @WrongType, @Generic(%T.6ba) [symbolic] +// CHECK:STDOUT: %Generic: type = class_type @Generic, @Generic(%T.8b3) [symbolic] +// CHECK:STDOUT: %WrongType.type: type = fn_type @WrongType, @Generic(%T.8b3) [symbolic] // CHECK:STDOUT: %WrongType: %WrongType.type = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %T.b2a: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.e42: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.7a6: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e60: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %.type: type = fn_type @.1 [template] // CHECK:STDOUT: %.d85: %.type = struct_value () [template] // CHECK:STDOUT: } @@ -741,11 +741,11 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Generic.decl: %Generic.type = class_decl @Generic [template = constants.%Generic.generic] { -// CHECK:STDOUT: %T.patt.loc4_15.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_15.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_15.1, runtime_param [symbolic = %T.patt.loc4_15.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.patt.loc4_15.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_15.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_15.1, runtime_param [symbolic = %T.patt.loc4_15.2 (constants.%T.patt.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_15.2 (constants.%T.6ba)] +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_15.2 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.d85] {} { // CHECK:STDOUT: %T.param: %empty_tuple.type = value_param runtime_param @@ -753,13 +753,13 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %.loc14_17.2: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc14_17.3: type = converted %.loc14_17.2, constants.%empty_tuple.type [template = constants.%empty_tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc14_12.1: %empty_tuple.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc14_12.2 (constants.%T.b2a)] +// CHECK:STDOUT: %T.loc14_12.1: %empty_tuple.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc14_12.2 (constants.%T.7a6)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Generic(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc4_15.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_15.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc4_15.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_15.2 (constants.%T.patt.e01)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %WrongType.type: type = fn_type @WrongType, @Generic(%T.loc4_15.2) [symbolic = %WrongType.type (constants.%WrongType.type)] @@ -782,8 +782,8 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.1(%T.loc14_12.1: %empty_tuple.type) { -// CHECK:STDOUT: %T.loc14_12.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc14_12.2 (constants.%T.b2a)] -// CHECK:STDOUT: %T.patt: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt.e42)] +// CHECK:STDOUT: %T.loc14_12.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc14_12.2 (constants.%T.7a6)] +// CHECK:STDOUT: %T.patt: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt.e60)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -793,17 +793,17 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic(constants.%T.6ba) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc4_15.2 => constants.%T.6ba +// CHECK:STDOUT: specific @Generic(constants.%T.8b3) { +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc4_15.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @WrongType(constants.%T.6ba) {} +// CHECK:STDOUT: specific @WrongType(constants.%T.8b3) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(%T.loc4_15.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T.b2a) { -// CHECK:STDOUT: %T.loc14_12.2 => constants.%T.b2a -// CHECK:STDOUT: %T.patt => constants.%T.b2a +// CHECK:STDOUT: specific @.1(constants.%T.7a6) { +// CHECK:STDOUT: %T.loc14_12.2 => constants.%T.7a6 +// CHECK:STDOUT: %T.patt => constants.%T.7a6 // 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 62baf692a979..c5ad40de4817 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -35,32 +35,32 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class.2c9: type = class_type @Class, @Class(%T) [symbolic] +// CHECK:STDOUT: %Class.fe1: type = class_type @Class, @Class(%T) [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.cab: type = tuple_type (%T, %U) [symbolic] -// CHECK:STDOUT: %Get.type.6c9: type = fn_type @Get, @Class(%T) [symbolic] -// CHECK:STDOUT: %Get.ca7: %Get.type.6c9 = struct_value () [symbolic] -// CHECK:STDOUT: %GetNoDeduce.type.2b9: type = fn_type @GetNoDeduce, @Class(%T) [symbolic] -// CHECK:STDOUT: %GetNoDeduce.9f5: %GetNoDeduce.type.2b9 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.73f: = require_complete_type %tuple.type.cab [symbolic] -// CHECK:STDOUT: %Get.specific_fn.62e: = specific_function %Get.ca7, @Get(%T, %U) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %GetNoDeduce.specific_fn.157: = specific_function %GetNoDeduce.9f5, @GetNoDeduce(%T, %U) [symbolic] -// CHECK:STDOUT: %Class.b0a: type = class_type @Class, @Class(%A) [template] +// CHECK:STDOUT: %tuple.type.30b: type = tuple_type (%T, %U) [symbolic] +// CHECK:STDOUT: %Get.type.fd9: type = fn_type @Get, @Class(%T) [symbolic] +// CHECK:STDOUT: %Get.cf9: %Get.type.fd9 = struct_value () [symbolic] +// CHECK:STDOUT: %GetNoDeduce.type.766: type = fn_type @GetNoDeduce, @Class(%T) [symbolic] +// CHECK:STDOUT: %GetNoDeduce.c9a: %GetNoDeduce.type.766 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.fe1: = require_complete_type %tuple.type.30b [symbolic] +// CHECK:STDOUT: %Get.specific_fn.f73: = specific_function %Get.cf9, @Get(%T, %U) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.b54: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %GetNoDeduce.specific_fn.536: = specific_function %GetNoDeduce.c9a, @GetNoDeduce(%T, %U) [symbolic] +// CHECK:STDOUT: %Class.480: type = class_type @Class, @Class(%A) [template] // CHECK:STDOUT: %tuple.type.cc6: type = tuple_type (%A, %B) [template] // CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [template] // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [template] -// CHECK:STDOUT: %Get.type.c9b: type = fn_type @Get, @Class(%A) [template] -// CHECK:STDOUT: %Get.0f1: %Get.type.c9b = struct_value () [template] -// CHECK:STDOUT: %GetNoDeduce.type.bd6: type = fn_type @GetNoDeduce, @Class(%A) [template] -// CHECK:STDOUT: %GetNoDeduce.073: %GetNoDeduce.type.bd6 = struct_value () [template] -// CHECK:STDOUT: %Get.specific_fn.f78: = specific_function %Get.0f1, @Get(%A, %B) [template] +// CHECK:STDOUT: %Get.type.501: type = fn_type @Get, @Class(%A) [template] +// CHECK:STDOUT: %Get.f37: %Get.type.501 = struct_value () [template] +// CHECK:STDOUT: %GetNoDeduce.type.5d6: type = fn_type @GetNoDeduce, @Class(%A) [template] +// CHECK:STDOUT: %GetNoDeduce.162: %GetNoDeduce.type.5d6 = struct_value () [template] +// CHECK:STDOUT: %Get.specific_fn.213: = specific_function %Get.f37, @Get(%A, %B) [template] // CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam.type: type = fn_type @CallGenericMethodWithNonDeducedParam [template] // CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam: %CallGenericMethodWithNonDeducedParam.type = struct_value () [template] -// CHECK:STDOUT: %GetNoDeduce.specific_fn.21a: = specific_function %GetNoDeduce.073, @GetNoDeduce(%A, %B) [template] +// CHECK:STDOUT: %GetNoDeduce.specific_fn.438: = specific_function %GetNoDeduce.162, @GetNoDeduce(%A, %B) [template] // CHECK:STDOUT: %A.val: %A = struct_value () [template] // CHECK:STDOUT: %complete_type.56a: = complete_type_witness %tuple.type.cc6 [template] // CHECK:STDOUT: } @@ -92,8 +92,8 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.loc14_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc14_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [template = constants.%CallGenericMethod] { -// CHECK:STDOUT: %c.patt: %Class.b0a = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %Class.b0a = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: %Class.480 = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %Class.480 = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %tuple.type.cc6 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %tuple.type.cc6 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -101,19 +101,19 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %B.ref.loc19: type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %.loc19_43.1: %tuple.type.24b = tuple_literal (%A.ref.loc19_39, %B.ref.loc19) // CHECK:STDOUT: %.loc19_43.2: type = converted %.loc19_43.1, constants.%tuple.type.cc6 [template = constants.%tuple.type.cc6] -// CHECK:STDOUT: %c.param: %Class.b0a = value_param runtime_param0 -// CHECK:STDOUT: %.loc19_32: type = splice_block %Class [template = constants.%Class.b0a] { +// CHECK:STDOUT: %c.param: %Class.480 = value_param runtime_param0 +// CHECK:STDOUT: %.loc19_32: type = splice_block %Class [template = constants.%Class.480] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic] // CHECK:STDOUT: %A.ref.loc19_31: type = name_ref A, file.%A.decl [template = constants.%A] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%A) [template = constants.%Class.b0a] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%A) [template = constants.%Class.480] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %Class.b0a = bind_name c, %c.param +// CHECK:STDOUT: %c: %Class.480 = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref %tuple.type.cc6 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %tuple.type.cc6 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam.decl: %CallGenericMethodWithNonDeducedParam.type = fn_decl @CallGenericMethodWithNonDeducedParam [template = constants.%CallGenericMethodWithNonDeducedParam] { -// CHECK:STDOUT: %c.patt: %Class.b0a = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %Class.b0a = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: %Class.480 = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %Class.480 = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %tuple.type.cc6 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %tuple.type.cc6 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -121,13 +121,13 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %B.ref.loc23: type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %.loc23_62.1: %tuple.type.24b = tuple_literal (%A.ref.loc23_58, %B.ref.loc23) // CHECK:STDOUT: %.loc23_62.2: type = converted %.loc23_62.1, constants.%tuple.type.cc6 [template = constants.%tuple.type.cc6] -// CHECK:STDOUT: %c.param: %Class.b0a = value_param runtime_param0 -// CHECK:STDOUT: %.loc23_51: type = splice_block %Class [template = constants.%Class.b0a] { +// CHECK:STDOUT: %c.param: %Class.480 = value_param runtime_param0 +// CHECK:STDOUT: %.loc23_51: type = splice_block %Class [template = constants.%Class.480] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic] // CHECK:STDOUT: %A.ref.loc23_50: type = name_ref A, file.%A.decl [template = constants.%A] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%A) [template = constants.%Class.b0a] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%A) [template = constants.%Class.480] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %Class.b0a = bind_name c, %c.param +// CHECK:STDOUT: %c: %Class.480 = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref %tuple.type.cc6 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %tuple.type.cc6 = return_slot %return.param // CHECK:STDOUT: } @@ -154,51 +154,51 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.patt.loc14_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc14_13.2) [symbolic = %Get.type (constants.%Get.type.6c9)] -// CHECK:STDOUT: %Get: @Class.%Get.type (%Get.type.6c9) = struct_value () [symbolic = %Get (constants.%Get.ca7)] -// CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T.loc14_13.2) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.2b9)] -// CHECK:STDOUT: %GetNoDeduce: @Class.%GetNoDeduce.type (%GetNoDeduce.type.2b9) = struct_value () [symbolic = %GetNoDeduce (constants.%GetNoDeduce.9f5)] +// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc14_13.2) [symbolic = %Get.type (constants.%Get.type.fd9)] +// CHECK:STDOUT: %Get: @Class.%Get.type (%Get.type.fd9) = struct_value () [symbolic = %Get (constants.%Get.cf9)] +// CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T.loc14_13.2) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.766)] +// CHECK:STDOUT: %GetNoDeduce: @Class.%GetNoDeduce.type (%GetNoDeduce.type.766) = struct_value () [symbolic = %GetNoDeduce (constants.%GetNoDeduce.c9a)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Get.decl: @Class.%Get.type (%Get.type.6c9) = fn_decl @Get [symbolic = @Class.%Get (constants.%Get.ca7)] { +// CHECK:STDOUT: %Get.decl: @Class.%Get.type (%Get.type.fd9) = fn_decl @Get [symbolic = @Class.%Get (constants.%Get.cf9)] { // CHECK:STDOUT: %U.patt.loc15_10.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc15_10.1 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc15_10.2, runtime_param [symbolic = %U.patt.loc15_10.1 (constants.%U.patt)] -// CHECK:STDOUT: %return.patt: @Get.%tuple.type (%tuple.type.cab) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @Get.%tuple.type (%tuple.type.cab) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @Get.%tuple.type (%tuple.type.30b) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @Get.%tuple.type (%tuple.type.30b) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc14_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %U.ref.loc15_27: type = name_ref U, %U.loc15_10.2 [symbolic = %U.loc15_10.1 (constants.%U)] // CHECK:STDOUT: %.loc15_28.1: %tuple.type.24b = tuple_literal (%T.ref, %U.ref.loc15_27) -// CHECK:STDOUT: %.loc15_28.2: type = converted %.loc15_28.1, constants.%tuple.type.cab [symbolic = %tuple.type (constants.%tuple.type.cab)] +// CHECK:STDOUT: %.loc15_28.2: type = converted %.loc15_28.1, constants.%tuple.type.30b [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %U.param: type = value_param runtime_param // CHECK:STDOUT: %U.loc15_10.2: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc15_10.1 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @Get.%tuple.type (%tuple.type.cab) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @Get.%tuple.type (%tuple.type.cab) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Get.%tuple.type (%tuple.type.30b) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @Get.%tuple.type (%tuple.type.30b) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %GetNoDeduce.decl: @Class.%GetNoDeduce.type (%GetNoDeduce.type.2b9) = fn_decl @GetNoDeduce [symbolic = @Class.%GetNoDeduce (constants.%GetNoDeduce.9f5)] { +// CHECK:STDOUT: %GetNoDeduce.decl: @Class.%GetNoDeduce.type (%GetNoDeduce.type.766) = fn_decl @GetNoDeduce [symbolic = @Class.%GetNoDeduce (constants.%GetNoDeduce.c9a)] { // CHECK:STDOUT: %x.patt: @GetNoDeduce.%T (%T) = binding_pattern x // CHECK:STDOUT: %x.param_patt: @GetNoDeduce.%T (%T) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %U.patt.loc16_24.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc16_24.1 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc16_24.2, runtime_param [symbolic = %U.patt.loc16_24.1 (constants.%U.patt)] -// CHECK:STDOUT: %return.patt: @GetNoDeduce.%tuple.type (%tuple.type.cab) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @GetNoDeduce.%tuple.type (%tuple.type.cab) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: @GetNoDeduce.%tuple.type (%tuple.type.30b) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @GetNoDeduce.%tuple.type (%tuple.type.30b) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc16_38: type = name_ref T, @Class.%T.loc14_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %U.ref.loc16_41: type = name_ref U, %U.loc16_24.2 [symbolic = %U.loc16_24.1 (constants.%U)] // CHECK:STDOUT: %.loc16_42.1: %tuple.type.24b = tuple_literal (%T.ref.loc16_38, %U.ref.loc16_41) -// CHECK:STDOUT: %.loc16_42.2: type = converted %.loc16_42.1, constants.%tuple.type.cab [symbolic = %tuple.type (constants.%tuple.type.cab)] +// CHECK:STDOUT: %.loc16_42.2: type = converted %.loc16_42.1, constants.%tuple.type.30b [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %x.param: @GetNoDeduce.%T (%T) = value_param runtime_param0 // CHECK:STDOUT: %T.ref.loc16_21: type = name_ref T, @Class.%T.loc14_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %x: @GetNoDeduce.%T (%T) = bind_name x, %x.param // CHECK:STDOUT: %U.param: type = value_param runtime_param // CHECK:STDOUT: %U.loc16_24.2: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc16_24.1 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @GetNoDeduce.%tuple.type (%tuple.type.cab) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @GetNoDeduce.%tuple.type (%tuple.type.cab) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @GetNoDeduce.%tuple.type (%tuple.type.30b) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @GetNoDeduce.%tuple.type (%tuple.type.30b) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.2c9 +// CHECK:STDOUT: .Self = constants.%Class.fe1 // CHECK:STDOUT: .Get = %Get.decl // CHECK:STDOUT: .GetNoDeduce = %GetNoDeduce.decl // CHECK:STDOUT: complete_type_witness = %complete_type @@ -209,25 +209,25 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %U.loc15_10.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc15_10.1 (constants.%U)] // CHECK:STDOUT: %U.patt.loc15_10.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc15_10.1 (constants.%U.patt)] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@Get.%T (%T), @Get.%U.loc15_10.1 (%U)) [symbolic = %tuple.type (constants.%tuple.type.cab)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@Get.%T (%T), @Get.%U.loc15_10.1 (%U)) [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_20: = require_complete_type @Get.%tuple.type (%tuple.type.cab) [symbolic = %require_complete.loc15_20 (constants.%require_complete.73f)] -// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T) [symbolic = %Get.type (constants.%Get.type.6c9)] -// CHECK:STDOUT: %Get: @Get.%Get.type (%Get.type.6c9) = struct_value () [symbolic = %Get (constants.%Get.ca7)] -// CHECK:STDOUT: %Get.specific_fn.loc15_39.2: = specific_function %Get, @Get(%T, %U.loc15_10.1) [symbolic = %Get.specific_fn.loc15_39.2 (constants.%Get.specific_fn.62e)] -// CHECK:STDOUT: %require_complete.loc15_44.1: = require_complete_type @Get.%T (%T) [symbolic = %require_complete.loc15_44.1 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc15_44.2: = require_complete_type @Get.%U.loc15_10.1 (%U) [symbolic = %require_complete.loc15_44.2 (constants.%require_complete.427)] +// CHECK:STDOUT: %require_complete.loc15_20: = require_complete_type @Get.%tuple.type (%tuple.type.30b) [symbolic = %require_complete.loc15_20 (constants.%require_complete.fe1)] +// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T) [symbolic = %Get.type (constants.%Get.type.fd9)] +// CHECK:STDOUT: %Get: @Get.%Get.type (%Get.type.fd9) = struct_value () [symbolic = %Get (constants.%Get.cf9)] +// CHECK:STDOUT: %Get.specific_fn.loc15_39.2: = specific_function %Get, @Get(%T, %U.loc15_10.1) [symbolic = %Get.specific_fn.loc15_39.2 (constants.%Get.specific_fn.f73)] +// CHECK:STDOUT: %require_complete.loc15_44.1: = require_complete_type @Get.%T (%T) [symbolic = %require_complete.loc15_44.1 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc15_44.2: = require_complete_type @Get.%U.loc15_10.1 (%U) [symbolic = %require_complete.loc15_44.2 (constants.%require_complete.b54)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.param_patt: type) -> %return.param_patt: @Get.%tuple.type (%tuple.type.cab) { +// CHECK:STDOUT: fn(%U.param_patt: type) -> %return.param_patt: @Get.%tuple.type (%tuple.type.30b) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc15_39: @Get.%Get.type (%Get.type.6c9) = specific_constant @Class.%Get.decl, @Class(constants.%T) [symbolic = %Get (constants.%Get.ca7)] -// CHECK:STDOUT: %Get.ref: @Get.%Get.type (%Get.type.6c9) = name_ref Get, %.loc15_39 [symbolic = %Get (constants.%Get.ca7)] +// CHECK:STDOUT: %.loc15_39: @Get.%Get.type (%Get.type.fd9) = specific_constant @Class.%Get.decl, @Class(constants.%T) [symbolic = %Get (constants.%Get.cf9)] +// CHECK:STDOUT: %Get.ref: @Get.%Get.type (%Get.type.fd9) = name_ref Get, %.loc15_39 [symbolic = %Get (constants.%Get.cf9)] // CHECK:STDOUT: %U.ref.loc15_43: type = name_ref U, %U.loc15_10.2 [symbolic = %U.loc15_10.1 (constants.%U)] -// CHECK:STDOUT: %Get.specific_fn.loc15_39.1: = specific_function %Get.ref, @Get(constants.%T, constants.%U) [symbolic = %Get.specific_fn.loc15_39.2 (constants.%Get.specific_fn.62e)] -// CHECK:STDOUT: %.loc15_44.1: ref @Get.%tuple.type (%tuple.type.cab) = temporary_storage -// CHECK:STDOUT: %Get.call: init @Get.%tuple.type (%tuple.type.cab) = call %Get.specific_fn.loc15_39.1() to %.loc15_44.1 -// CHECK:STDOUT: %.loc15_44.2: ref @Get.%tuple.type (%tuple.type.cab) = temporary %.loc15_44.1, %Get.call +// CHECK:STDOUT: %Get.specific_fn.loc15_39.1: = specific_function %Get.ref, @Get(constants.%T, constants.%U) [symbolic = %Get.specific_fn.loc15_39.2 (constants.%Get.specific_fn.f73)] +// CHECK:STDOUT: %.loc15_44.1: ref @Get.%tuple.type (%tuple.type.30b) = temporary_storage +// CHECK:STDOUT: %Get.call: init @Get.%tuple.type (%tuple.type.30b) = call %Get.specific_fn.loc15_39.1() to %.loc15_44.1 +// CHECK:STDOUT: %.loc15_44.2: ref @Get.%tuple.type (%tuple.type.30b) = temporary %.loc15_44.1, %Get.call // CHECK:STDOUT: %tuple.elem0.loc15_44.1: ref @Get.%T (%T) = tuple_access %.loc15_44.2, element0 // CHECK:STDOUT: %.loc15_44.3: @Get.%T (%T) = bind_value %tuple.elem0.loc15_44.1 // CHECK:STDOUT: %tuple.elem0.loc15_44.2: ref @Get.%T (%T) = tuple_access %return, element0 @@ -236,8 +236,8 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %.loc15_44.5: @Get.%U.loc15_10.1 (%U) = bind_value %tuple.elem1.loc15_44.1 // CHECK:STDOUT: %tuple.elem1.loc15_44.2: ref @Get.%U.loc15_10.1 (%U) = tuple_access %return, element1 // CHECK:STDOUT: %.loc15_44.6: init @Get.%U.loc15_10.1 (%U) = initialize_from %.loc15_44.5 to %tuple.elem1.loc15_44.2 -// CHECK:STDOUT: %.loc15_44.7: init @Get.%tuple.type (%tuple.type.cab) = tuple_init (%.loc15_44.4, %.loc15_44.6) to %return -// CHECK:STDOUT: %.loc15_45: init @Get.%tuple.type (%tuple.type.cab) = converted %Get.call, %.loc15_44.7 +// CHECK:STDOUT: %.loc15_44.7: init @Get.%tuple.type (%tuple.type.30b) = tuple_init (%.loc15_44.4, %.loc15_44.6) to %return +// CHECK:STDOUT: %.loc15_45: init @Get.%tuple.type (%tuple.type.30b) = converted %Get.call, %.loc15_44.7 // CHECK:STDOUT: return %.loc15_45 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -246,26 +246,26 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %U.loc16_24.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc16_24.1 (constants.%U)] // CHECK:STDOUT: %U.patt.loc16_24.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc16_24.1 (constants.%U.patt)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@GetNoDeduce.%T (%T), @GetNoDeduce.%U.loc16_24.1 (%U)) [symbolic = %tuple.type (constants.%tuple.type.cab)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@GetNoDeduce.%T (%T), @GetNoDeduce.%U.loc16_24.1 (%U)) [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16_19: = require_complete_type @GetNoDeduce.%T (%T) [symbolic = %require_complete.loc16_19 (constants.%require_complete.db1)] -// CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.2b9)] -// CHECK:STDOUT: %GetNoDeduce: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.2b9) = struct_value () [symbolic = %GetNoDeduce (constants.%GetNoDeduce.9f5)] -// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc16_53.2: = specific_function %GetNoDeduce, @GetNoDeduce(%T, %U.loc16_24.1) [symbolic = %GetNoDeduce.specific_fn.loc16_53.2 (constants.%GetNoDeduce.specific_fn.157)] -// CHECK:STDOUT: %require_complete.loc16_70: = require_complete_type @GetNoDeduce.%tuple.type (%tuple.type.cab) [symbolic = %require_complete.loc16_70 (constants.%require_complete.73f)] -// CHECK:STDOUT: %require_complete.loc16_69: = require_complete_type @GetNoDeduce.%U.loc16_24.1 (%U) [symbolic = %require_complete.loc16_69 (constants.%require_complete.427)] +// CHECK:STDOUT: %require_complete.loc16_19: = require_complete_type @GetNoDeduce.%T (%T) [symbolic = %require_complete.loc16_19 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.766)] +// CHECK:STDOUT: %GetNoDeduce: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.766) = struct_value () [symbolic = %GetNoDeduce (constants.%GetNoDeduce.c9a)] +// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc16_53.2: = specific_function %GetNoDeduce, @GetNoDeduce(%T, %U.loc16_24.1) [symbolic = %GetNoDeduce.specific_fn.loc16_53.2 (constants.%GetNoDeduce.specific_fn.536)] +// CHECK:STDOUT: %require_complete.loc16_70: = require_complete_type @GetNoDeduce.%tuple.type (%tuple.type.30b) [symbolic = %require_complete.loc16_70 (constants.%require_complete.fe1)] +// CHECK:STDOUT: %require_complete.loc16_69: = require_complete_type @GetNoDeduce.%U.loc16_24.1 (%U) [symbolic = %require_complete.loc16_69 (constants.%require_complete.b54)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param_patt: @GetNoDeduce.%T (%T), %U.param_patt: type) -> %return.param_patt: @GetNoDeduce.%tuple.type (%tuple.type.cab) { +// CHECK:STDOUT: fn(%x.param_patt: @GetNoDeduce.%T (%T), %U.param_patt: type) -> %return.param_patt: @GetNoDeduce.%tuple.type (%tuple.type.30b) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc16_53: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.2b9) = specific_constant @Class.%GetNoDeduce.decl, @Class(constants.%T) [symbolic = %GetNoDeduce (constants.%GetNoDeduce.9f5)] -// CHECK:STDOUT: %GetNoDeduce.ref: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.2b9) = name_ref GetNoDeduce, %.loc16_53 [symbolic = %GetNoDeduce (constants.%GetNoDeduce.9f5)] +// CHECK:STDOUT: %.loc16_53: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.766) = specific_constant @Class.%GetNoDeduce.decl, @Class(constants.%T) [symbolic = %GetNoDeduce (constants.%GetNoDeduce.c9a)] +// CHECK:STDOUT: %GetNoDeduce.ref: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.766) = name_ref GetNoDeduce, %.loc16_53 [symbolic = %GetNoDeduce (constants.%GetNoDeduce.c9a)] // CHECK:STDOUT: %x.ref: @GetNoDeduce.%T (%T) = name_ref x, %x // CHECK:STDOUT: %U.ref.loc16_68: type = name_ref U, %U.loc16_24.2 [symbolic = %U.loc16_24.1 (constants.%U)] -// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc16_53.1: = specific_function %GetNoDeduce.ref, @GetNoDeduce(constants.%T, constants.%U) [symbolic = %GetNoDeduce.specific_fn.loc16_53.2 (constants.%GetNoDeduce.specific_fn.157)] -// CHECK:STDOUT: %.loc16_69.1: ref @GetNoDeduce.%tuple.type (%tuple.type.cab) = temporary_storage -// CHECK:STDOUT: %GetNoDeduce.call: init @GetNoDeduce.%tuple.type (%tuple.type.cab) = call %GetNoDeduce.specific_fn.loc16_53.1(%x.ref) to %.loc16_69.1 -// CHECK:STDOUT: %.loc16_69.2: ref @GetNoDeduce.%tuple.type (%tuple.type.cab) = temporary %.loc16_69.1, %GetNoDeduce.call +// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc16_53.1: = specific_function %GetNoDeduce.ref, @GetNoDeduce(constants.%T, constants.%U) [symbolic = %GetNoDeduce.specific_fn.loc16_53.2 (constants.%GetNoDeduce.specific_fn.536)] +// CHECK:STDOUT: %.loc16_69.1: ref @GetNoDeduce.%tuple.type (%tuple.type.30b) = temporary_storage +// CHECK:STDOUT: %GetNoDeduce.call: init @GetNoDeduce.%tuple.type (%tuple.type.30b) = call %GetNoDeduce.specific_fn.loc16_53.1(%x.ref) to %.loc16_69.1 +// CHECK:STDOUT: %.loc16_69.2: ref @GetNoDeduce.%tuple.type (%tuple.type.30b) = temporary %.loc16_69.1, %GetNoDeduce.call // CHECK:STDOUT: %tuple.elem0.loc16_69.1: ref @GetNoDeduce.%T (%T) = tuple_access %.loc16_69.2, element0 // CHECK:STDOUT: %.loc16_69.3: @GetNoDeduce.%T (%T) = bind_value %tuple.elem0.loc16_69.1 // CHECK:STDOUT: %tuple.elem0.loc16_69.2: ref @GetNoDeduce.%T (%T) = tuple_access %return, element0 @@ -274,32 +274,32 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %.loc16_69.5: @GetNoDeduce.%U.loc16_24.1 (%U) = bind_value %tuple.elem1.loc16_69.1 // CHECK:STDOUT: %tuple.elem1.loc16_69.2: ref @GetNoDeduce.%U.loc16_24.1 (%U) = tuple_access %return, element1 // CHECK:STDOUT: %.loc16_69.6: init @GetNoDeduce.%U.loc16_24.1 (%U) = initialize_from %.loc16_69.5 to %tuple.elem1.loc16_69.2 -// CHECK:STDOUT: %.loc16_69.7: init @GetNoDeduce.%tuple.type (%tuple.type.cab) = tuple_init (%.loc16_69.4, %.loc16_69.6) to %return -// CHECK:STDOUT: %.loc16_70: init @GetNoDeduce.%tuple.type (%tuple.type.cab) = converted %GetNoDeduce.call, %.loc16_69.7 +// CHECK:STDOUT: %.loc16_69.7: init @GetNoDeduce.%tuple.type (%tuple.type.30b) = tuple_init (%.loc16_69.4, %.loc16_69.6) to %return +// CHECK:STDOUT: %.loc16_70: init @GetNoDeduce.%tuple.type (%tuple.type.30b) = converted %GetNoDeduce.call, %.loc16_69.7 // CHECK:STDOUT: return %.loc16_70 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallGenericMethod(%c.param_patt: %Class.b0a) -> %return.param_patt: %tuple.type.cc6 { +// CHECK:STDOUT: fn @CallGenericMethod(%c.param_patt: %Class.480) -> %return.param_patt: %tuple.type.cc6 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %Class.b0a = name_ref c, %c -// CHECK:STDOUT: %.loc20: %Get.type.c9b = specific_constant @Class.%Get.decl, @Class(constants.%A) [template = constants.%Get.0f1] -// CHECK:STDOUT: %Get.ref: %Get.type.c9b = name_ref Get, %.loc20 [template = constants.%Get.0f1] +// CHECK:STDOUT: %c.ref: %Class.480 = name_ref c, %c +// CHECK:STDOUT: %.loc20: %Get.type.501 = specific_constant @Class.%Get.decl, @Class(constants.%A) [template = constants.%Get.f37] +// CHECK:STDOUT: %Get.ref: %Get.type.501 = name_ref Get, %.loc20 [template = constants.%Get.f37] // CHECK:STDOUT: %B.ref.loc20: type = name_ref B, file.%B.decl [template = constants.%B] -// CHECK:STDOUT: %Get.specific_fn: = specific_function %Get.ref, @Get(constants.%A, constants.%B) [template = constants.%Get.specific_fn.f78] +// CHECK:STDOUT: %Get.specific_fn: = specific_function %Get.ref, @Get(constants.%A, constants.%B) [template = constants.%Get.specific_fn.213] // CHECK:STDOUT: %.loc19_35: ref %tuple.type.cc6 = splice_block %return {} // CHECK:STDOUT: %Get.call: init %tuple.type.cc6 = call %Get.specific_fn() to %.loc19_35 // CHECK:STDOUT: return %Get.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallGenericMethodWithNonDeducedParam(%c.param_patt: %Class.b0a) -> %return.param_patt: %tuple.type.cc6 { +// CHECK:STDOUT: fn @CallGenericMethodWithNonDeducedParam(%c.param_patt: %Class.480) -> %return.param_patt: %tuple.type.cc6 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %Class.b0a = name_ref c, %c -// CHECK:STDOUT: %.loc24_11: %GetNoDeduce.type.bd6 = specific_constant @Class.%GetNoDeduce.decl, @Class(constants.%A) [template = constants.%GetNoDeduce.073] -// CHECK:STDOUT: %GetNoDeduce.ref: %GetNoDeduce.type.bd6 = name_ref GetNoDeduce, %.loc24_11 [template = constants.%GetNoDeduce.073] +// CHECK:STDOUT: %c.ref: %Class.480 = name_ref c, %c +// CHECK:STDOUT: %.loc24_11: %GetNoDeduce.type.5d6 = specific_constant @Class.%GetNoDeduce.decl, @Class(constants.%A) [template = constants.%GetNoDeduce.162] +// CHECK:STDOUT: %GetNoDeduce.ref: %GetNoDeduce.type.5d6 = name_ref GetNoDeduce, %.loc24_11 [template = constants.%GetNoDeduce.162] // CHECK:STDOUT: %.loc24_25.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %B.ref.loc24: type = name_ref B, file.%B.decl [template = constants.%B] -// CHECK:STDOUT: %GetNoDeduce.specific_fn: = specific_function %GetNoDeduce.ref, @GetNoDeduce(constants.%A, constants.%B) [template = constants.%GetNoDeduce.specific_fn.21a] +// CHECK:STDOUT: %GetNoDeduce.specific_fn: = specific_function %GetNoDeduce.ref, @GetNoDeduce(constants.%A, constants.%B) [template = constants.%GetNoDeduce.specific_fn.438] // CHECK:STDOUT: %.loc23_54: ref %tuple.type.cc6 = splice_block %return {} // CHECK:STDOUT: %.loc24_25.2: ref %A = temporary_storage // CHECK:STDOUT: %.loc24_25.3: init %A = class_init (), %.loc24_25.2 [template = constants.%A.val] @@ -315,40 +315,40 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.patt.loc14_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Get.type => constants.%Get.type.6c9 -// CHECK:STDOUT: %Get => constants.%Get.ca7 -// CHECK:STDOUT: %GetNoDeduce.type => constants.%GetNoDeduce.type.2b9 -// CHECK:STDOUT: %GetNoDeduce => constants.%GetNoDeduce.9f5 +// CHECK:STDOUT: %Get.type => constants.%Get.type.fd9 +// CHECK:STDOUT: %Get => constants.%Get.cf9 +// CHECK:STDOUT: %GetNoDeduce.type => constants.%GetNoDeduce.type.766 +// CHECK:STDOUT: %GetNoDeduce => constants.%GetNoDeduce.c9a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%T, constants.%U) { // CHECK:STDOUT: %U.loc15_10.1 => constants.%U // CHECK:STDOUT: %U.patt.loc15_10.1 => constants.%U // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.cab +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_20 => constants.%require_complete.73f -// CHECK:STDOUT: %Get.type => constants.%Get.type.6c9 -// CHECK:STDOUT: %Get => constants.%Get.ca7 -// CHECK:STDOUT: %Get.specific_fn.loc15_39.2 => constants.%Get.specific_fn.62e -// CHECK:STDOUT: %require_complete.loc15_44.1 => constants.%require_complete.db1 -// CHECK:STDOUT: %require_complete.loc15_44.2 => constants.%require_complete.427 +// CHECK:STDOUT: %require_complete.loc15_20 => constants.%require_complete.fe1 +// CHECK:STDOUT: %Get.type => constants.%Get.type.fd9 +// CHECK:STDOUT: %Get => constants.%Get.cf9 +// CHECK:STDOUT: %Get.specific_fn.loc15_39.2 => constants.%Get.specific_fn.f73 +// CHECK:STDOUT: %require_complete.loc15_44.1 => constants.%require_complete.4ae +// CHECK:STDOUT: %require_complete.loc15_44.2 => constants.%require_complete.b54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GetNoDeduce(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %U.loc16_24.1 => constants.%U // CHECK:STDOUT: %U.patt.loc16_24.1 => constants.%U -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.cab +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16_19 => constants.%require_complete.db1 -// CHECK:STDOUT: %GetNoDeduce.type => constants.%GetNoDeduce.type.2b9 -// CHECK:STDOUT: %GetNoDeduce => constants.%GetNoDeduce.9f5 -// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc16_53.2 => constants.%GetNoDeduce.specific_fn.157 -// CHECK:STDOUT: %require_complete.loc16_70 => constants.%require_complete.73f -// CHECK:STDOUT: %require_complete.loc16_69 => constants.%require_complete.427 +// CHECK:STDOUT: %require_complete.loc16_19 => constants.%require_complete.4ae +// CHECK:STDOUT: %GetNoDeduce.type => constants.%GetNoDeduce.type.766 +// CHECK:STDOUT: %GetNoDeduce => constants.%GetNoDeduce.c9a +// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc16_53.2 => constants.%GetNoDeduce.specific_fn.536 +// CHECK:STDOUT: %require_complete.loc16_70 => constants.%require_complete.fe1 +// CHECK:STDOUT: %require_complete.loc16_69 => constants.%require_complete.b54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(%T.loc14_13.2) {} @@ -366,10 +366,10 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.patt.loc14_13.2 => constants.%A // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Get.type => constants.%Get.type.c9b -// CHECK:STDOUT: %Get => constants.%Get.0f1 -// CHECK:STDOUT: %GetNoDeduce.type => constants.%GetNoDeduce.type.bd6 -// CHECK:STDOUT: %GetNoDeduce => constants.%GetNoDeduce.073 +// CHECK:STDOUT: %Get.type => constants.%Get.type.501 +// CHECK:STDOUT: %Get => constants.%Get.f37 +// CHECK:STDOUT: %GetNoDeduce.type => constants.%GetNoDeduce.type.5d6 +// CHECK:STDOUT: %GetNoDeduce => constants.%GetNoDeduce.162 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%A, constants.%B) { @@ -380,9 +380,9 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc15_20 => constants.%complete_type.56a -// CHECK:STDOUT: %Get.type => constants.%Get.type.c9b -// CHECK:STDOUT: %Get => constants.%Get.0f1 -// CHECK:STDOUT: %Get.specific_fn.loc15_39.2 => constants.%Get.specific_fn.f78 +// CHECK:STDOUT: %Get.type => constants.%Get.type.501 +// CHECK:STDOUT: %Get => constants.%Get.f37 +// CHECK:STDOUT: %Get.specific_fn.loc15_39.2 => constants.%Get.specific_fn.213 // CHECK:STDOUT: %require_complete.loc15_44.1 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc15_44.2 => constants.%complete_type.357 // CHECK:STDOUT: } @@ -395,9 +395,9 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc16_19 => constants.%complete_type.357 -// CHECK:STDOUT: %GetNoDeduce.type => constants.%GetNoDeduce.type.bd6 -// CHECK:STDOUT: %GetNoDeduce => constants.%GetNoDeduce.073 -// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc16_53.2 => constants.%GetNoDeduce.specific_fn.21a +// CHECK:STDOUT: %GetNoDeduce.type => constants.%GetNoDeduce.type.5d6 +// CHECK:STDOUT: %GetNoDeduce => constants.%GetNoDeduce.162 +// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc16_53.2 => constants.%GetNoDeduce.specific_fn.438 // CHECK:STDOUT: %require_complete.loc16_70 => constants.%complete_type.56a // CHECK:STDOUT: %require_complete.loc16_69 => constants.%complete_type.357 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/redeclare.carbon b/toolchain/check/testdata/class/generic/redeclare.carbon index bed465ec4238..8effd07f3993 100644 --- a/toolchain/check/testdata/class/generic/redeclare.carbon +++ b/toolchain/check/testdata/class/generic/redeclare.carbon @@ -155,7 +155,7 @@ class E(U:! type) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.a77: type = class_type @.1, @.1(%T) [symbolic] +// CHECK:STDOUT: %.e41: type = class_type @.1, @.1(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } @@ -195,7 +195,7 @@ class E(U:! type) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.a77 +// CHECK:STDOUT: .Self = constants.%.e41 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -210,24 +210,24 @@ class E(U:! type) {} // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %B.type: type = generic_class_type @B [template] // CHECK:STDOUT: %B.generic: %B.type = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %N.27f: %T = bind_symbolic_name N, 1 [symbolic] -// CHECK:STDOUT: %N.patt.451: %T = symbolic_binding_pattern N, 1 [symbolic] +// CHECK:STDOUT: %N.f22: %T = bind_symbolic_name N, 1 [symbolic] +// CHECK:STDOUT: %N.patt.51c: %T = symbolic_binding_pattern N, 1 [symbolic] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.aab: type = class_type @.1, @.1(%T, %N.27f) [symbolic] +// CHECK:STDOUT: %.943: type = class_type @.1, @.1(%T, %N.f22) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -240,33 +240,33 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %B.decl: %B.type = class_decl @B [template = constants.%B.generic] { -// CHECK:STDOUT: %N.patt.loc4_9.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_9.1, runtime_param [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc4_9.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_9.1, runtime_param [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: } { // CHECK:STDOUT: %N.param: %i32 = value_param runtime_param // CHECK:STDOUT: %.loc4: type = splice_block %i32 [template = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_9.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_9.2 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.generic] { // CHECK:STDOUT: %T.patt.loc12_9.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_9.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc12_9.1, runtime_param [symbolic = %T.patt.loc12_9.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.patt.loc12_19.1: @.1.%T.loc12_9.2 (%T) = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc12_19.2 (constants.%N.patt.451)] -// CHECK:STDOUT: %N.param_patt: @.1.%T.loc12_9.2 (%T) = value_param_pattern %N.patt.loc12_19.1, runtime_param [symbolic = %N.patt.loc12_19.2 (constants.%N.patt.451)] +// CHECK:STDOUT: %N.patt.loc12_19.1: @.1.%T.loc12_9.2 (%T) = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc12_19.2 (constants.%N.patt.51c)] +// CHECK:STDOUT: %N.param_patt: @.1.%T.loc12_9.2 (%T) = value_param_pattern %N.patt.loc12_19.1, runtime_param [symbolic = %N.patt.loc12_19.2 (constants.%N.patt.51c)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc12_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_9.2 (constants.%T)] // CHECK:STDOUT: %N.param: @.1.%T.loc12_9.2 (%T) = value_param runtime_param // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc12_9.1 [symbolic = %T.loc12_9.2 (constants.%T)] -// CHECK:STDOUT: %N.loc12_19.1: @.1.%T.loc12_9.2 (%T) = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc12_19.2 (constants.%N.27f)] +// CHECK:STDOUT: %N.loc12_19.1: @.1.%T.loc12_9.2 (%T) = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc12_19.2 (constants.%N.f22)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @B(%N.loc4_9.1: %i32) { -// CHECK:STDOUT: %N.loc4_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc4_9.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc4_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc4_9.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } @@ -274,8 +274,8 @@ class E(U:! type) {} // CHECK:STDOUT: generic class @.1(%T.loc12_9.1: type, %N.loc12_19.1: @.1.%T.loc12_9.2 (%T)) { // CHECK:STDOUT: %T.loc12_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc12_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_9.2 (constants.%T.patt)] -// CHECK:STDOUT: %N.loc12_19.2: %T = bind_symbolic_name N, 1 [symbolic = %N.loc12_19.2 (constants.%N.27f)] -// CHECK:STDOUT: %N.patt.loc12_19.2: %T = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc12_19.2 (constants.%N.patt.451)] +// CHECK:STDOUT: %N.loc12_19.2: %T = bind_symbolic_name N, 1 [symbolic = %N.loc12_19.2 (constants.%N.f22)] +// CHECK:STDOUT: %N.patt.loc12_19.2: %T = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc12_19.2 (constants.%N.patt.51c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -283,21 +283,21 @@ class E(U:! type) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.aab +// CHECK:STDOUT: .Self = constants.%.943 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc4_9.2 => constants.%N.3e4 +// CHECK:STDOUT: specific @B(constants.%N.51e) { +// CHECK:STDOUT: %N.loc4_9.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc4_9.2 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T, constants.%N.27f) { +// CHECK:STDOUT: specific @.1(constants.%T, constants.%N.f22) { // CHECK:STDOUT: %T.loc12_9.2 => constants.%T // CHECK:STDOUT: %T.patt.loc12_9.2 => constants.%T -// CHECK:STDOUT: %N.loc12_19.2 => constants.%N.27f -// CHECK:STDOUT: %N.patt.loc12_19.2 => constants.%N.27f +// CHECK:STDOUT: %N.loc12_19.2 => constants.%N.f22 +// CHECK:STDOUT: %N.patt.loc12_19.2 => constants.%N.f22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_count.carbon @@ -313,14 +313,14 @@ class E(U:! type) {} // CHECK:STDOUT: %U.patt: %i32 = symbolic_binding_pattern U, 1 [symbolic] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.b25: type = class_type @.1, @.1(%T, %U) [symbolic] +// CHECK:STDOUT: %.c28: type = class_type @.1, @.1(%T, %U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -375,7 +375,7 @@ class E(U:! type) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.b25 +// CHECK:STDOUT: .Self = constants.%.c28 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -395,24 +395,24 @@ class E(U:! type) {} // CHECK:STDOUT: --- fail_mismatch_param_type.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %T.6ba: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.d86: type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e01: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %D.type: type = generic_class_type @D [template] // CHECK:STDOUT: %D.generic: %D.type = struct_value () [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %T.0de: %i32 = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.92b: %i32 = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.51e: %i32 = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.8e2: %i32 = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.3b8: type = class_type @.1, @.1(%T.0de) [symbolic] +// CHECK:STDOUT: %.f5e: type = class_type @.1, @.1(%T.51e) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -425,35 +425,35 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %D.decl: %D.type = class_decl @D [template = constants.%D.generic] { -// CHECK:STDOUT: %T.patt.loc4_9.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_9.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_9.1, runtime_param [symbolic = %T.patt.loc4_9.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.patt.loc4_9.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_9.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_9.1, runtime_param [symbolic = %T.patt.loc4_9.2 (constants.%T.patt.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T.6ba)] +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.generic] { -// CHECK:STDOUT: %T.patt.loc12_9.1: %i32 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_9.2 (constants.%T.patt.92b)] -// CHECK:STDOUT: %T.param_patt: %i32 = value_param_pattern %T.patt.loc12_9.1, runtime_param [symbolic = %T.patt.loc12_9.2 (constants.%T.patt.92b)] +// CHECK:STDOUT: %T.patt.loc12_9.1: %i32 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_9.2 (constants.%T.patt.8e2)] +// CHECK:STDOUT: %T.param_patt: %i32 = value_param_pattern %T.patt.loc12_9.1, runtime_param [symbolic = %T.patt.loc12_9.2 (constants.%T.patt.8e2)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: %i32 = value_param runtime_param // CHECK:STDOUT: %.loc12: type = splice_block %i32 [template = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc12_9.1: %i32 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_9.2 (constants.%T.0de)] +// CHECK:STDOUT: %T.loc12_9.1: %i32 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_9.2 (constants.%T.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @D(%T.loc4_9.1: type) { -// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc4_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_9.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc4_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_9.2 (constants.%T.patt.e01)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @.1(%T.loc12_9.1: %i32) { -// CHECK:STDOUT: %T.loc12_9.2: %i32 = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T.0de)] -// CHECK:STDOUT: %T.patt.loc12_9.2: %i32 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_9.2 (constants.%T.patt.92b)] +// CHECK:STDOUT: %T.loc12_9.2: %i32 = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T.51e)] +// CHECK:STDOUT: %T.patt.loc12_9.2: %i32 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_9.2 (constants.%T.patt.8e2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -461,19 +461,19 @@ class E(U:! type) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.3b8 +// CHECK:STDOUT: .Self = constants.%.f5e // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D(constants.%T.6ba) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc4_9.2 => constants.%T.6ba +// CHECK:STDOUT: specific @D(constants.%T.8b3) { +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc4_9.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T.0de) { -// CHECK:STDOUT: %T.loc12_9.2 => constants.%T.0de -// CHECK:STDOUT: %T.patt.loc12_9.2 => constants.%T.0de +// CHECK:STDOUT: specific @.1(constants.%T.51e) { +// CHECK:STDOUT: %T.loc12_9.2 => constants.%T.51e +// CHECK:STDOUT: %T.patt.loc12_9.2 => constants.%T.51e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_name.carbon @@ -487,7 +487,7 @@ class E(U:! type) {} // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.fc8: type = class_type @.1, @.1(%U) [symbolic] +// CHECK:STDOUT: %.e41: type = class_type @.1, @.1(%U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } @@ -538,7 +538,7 @@ class E(U:! type) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.fc8 +// CHECK:STDOUT: .Self = constants.%.e41 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/stringify.carbon b/toolchain/check/testdata/class/generic/stringify.carbon index 742145dfa8fd..953a704186be 100644 --- a/toolchain/check/testdata/class/generic/stringify.carbon +++ b/toolchain/check/testdata/class/generic/stringify.carbon @@ -100,7 +100,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -154,29 +154,29 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [template] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [template] -// CHECK:STDOUT: %Outer.cc3: type = class_type @Outer, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Outer.9d6: type = class_type @Outer, @Outer(%T) [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %Inner.type.099: type = generic_class_type @Inner, @Outer(%T) [symbolic] -// CHECK:STDOUT: %Inner.generic.c26: %Inner.type.099 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.188: type = class_type @Inner, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %Inner.type.eae: type = generic_class_type @Inner, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Inner.generic.137: %Inner.type.eae = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.c71: type = class_type @Inner, @Inner(%T, %U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [template] -// CHECK:STDOUT: %Outer.246: type = class_type @Outer, @Outer(%ptr.c28) [template] -// CHECK:STDOUT: %Inner.type.5f0: type = generic_class_type @Inner, @Outer(%ptr.c28) [template] -// CHECK:STDOUT: %Inner.generic.521: %Inner.type.5f0 = struct_value () [template] +// CHECK:STDOUT: %Outer.614: type = class_type @Outer, @Outer(%ptr.c28) [template] +// CHECK:STDOUT: %Inner.type.5d2: type = generic_class_type @Inner, @Outer(%ptr.c28) [template] +// CHECK:STDOUT: %Inner.generic.8e6: %Inner.type.5d2 = struct_value () [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %ptr.1b6: type = ptr_type %struct_type.a [template] -// CHECK:STDOUT: %Inner.fef: type = class_type @Inner, @Inner(%ptr.c28, %ptr.1b6) [template] +// CHECK:STDOUT: %ptr.1bb: type = ptr_type %struct_type.a [template] +// CHECK:STDOUT: %Inner.277: type = class_type @Inner, @Inner(%ptr.c28, %ptr.1bb) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -197,10 +197,10 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %Outer.246 = var v -// CHECK:STDOUT: %v: ref %Outer.246 = bind_name v, %v.var -// CHECK:STDOUT: %w.var: ref %Inner.fef = var w -// CHECK:STDOUT: %w: ref %Inner.fef = bind_name w, %w.var +// CHECK:STDOUT: %v.var: ref %Outer.614 = var v +// CHECK:STDOUT: %v: ref %Outer.614 = bind_name v, %v.var +// CHECK:STDOUT: %w.var: ref %Inner.277 = var w +// CHECK:STDOUT: %w: ref %Inner.277 = bind_name w, %w.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Outer(%T.loc4_13.1: type) { @@ -208,11 +208,11 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.2) [symbolic = %Inner.type (constants.%Inner.type.099)] -// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.099) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.c26)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.099) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.c26)] { +// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.eae) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.137)] { // CHECK:STDOUT: %U.patt.loc5_15.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc5_15.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc5_15.1, runtime_param [symbolic = %U.patt.loc5_15.2 (constants.%U.patt)] // CHECK:STDOUT: } { @@ -222,7 +222,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.cc3 +// CHECK:STDOUT: .Self = constants.%Outer.9d6 // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } @@ -238,15 +238,15 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.188 +// CHECK:STDOUT: .Self = constants.%Inner.c71 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.ref: ref %Outer.246 = name_ref v, file.%v -// CHECK:STDOUT: %.loc19: %Inner.fef = converted %v.ref, [template = ] +// CHECK:STDOUT: %v.ref: ref %Outer.614 = name_ref v, file.%v +// CHECK:STDOUT: %.loc19: %Inner.277 = converted %v.ref, [template = ] // CHECK:STDOUT: assign file.%w.var, // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -268,13 +268,13 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%ptr.c28 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5f0 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.521 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5d2 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.8e6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%ptr.c28, constants.%ptr.1b6) { -// CHECK:STDOUT: %U.loc5_15.2 => constants.%ptr.1b6 -// CHECK:STDOUT: %U.patt.loc5_15.2 => constants.%ptr.1b6 +// CHECK:STDOUT: specific @Inner(constants.%ptr.c28, constants.%ptr.1bb) { +// CHECK:STDOUT: %U.loc5_15.2 => constants.%ptr.1bb +// CHECK:STDOUT: %U.patt.loc5_15.2 => constants.%ptr.1bb // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -285,21 +285,21 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.3b9: type = class_type @C, @C(%N.3e4) [symbolic] +// CHECK:STDOUT: %C.506: type = class_type @C, @C(%N.51e) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %int_123.641: %i32 = int_value 123 [template] -// CHECK:STDOUT: %C.af0: type = class_type @C, @C(%int_123.641) [template] +// CHECK:STDOUT: %int_123.f7f: %i32 = int_value 123 [template] +// CHECK:STDOUT: %C.4c3: type = class_type @C, @C(%int_123.f7f) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -313,23 +313,23 @@ 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 [template = constants.%C.generic] { -// CHECK:STDOUT: %N.patt.loc4_9.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_9.1, runtime_param [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc4_9.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_9.1, runtime_param [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: } { // CHECK:STDOUT: %N.param: %i32 = value_param runtime_param // CHECK:STDOUT: %.loc4: type = splice_block %i32 [template = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_9.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_9.2 (constants.%N.51e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %C.af0 = var v -// CHECK:STDOUT: %v: ref %C.af0 = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref %C.4c3 = var v +// CHECK:STDOUT: %v: ref %C.4c3 = bind_name v, %v.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(%N.loc4_9.1: %i32) { -// CHECK:STDOUT: %N.loc4_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc4_9.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc4_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc4_9.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_9.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -337,7 +337,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.3b9 +// CHECK:STDOUT: .Self = constants.%C.506 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -345,19 +345,19 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc13_18: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc13_19: %C.af0 = converted %.loc13_18, [template = ] +// CHECK:STDOUT: %.loc13_19: %C.4c3 = converted %.loc13_18, [template = ] // CHECK:STDOUT: assign file.%v.var, // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc4_9.2 => constants.%N.3e4 +// CHECK:STDOUT: specific @C(constants.%N.51e) { +// CHECK:STDOUT: %N.loc4_9.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc4_9.2 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_123.641) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_123.641 -// CHECK:STDOUT: %N.patt.loc4_9.2 => constants.%int_123.641 +// CHECK:STDOUT: specific @C(constants.%int_123.f7f) { +// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_123.f7f +// CHECK:STDOUT: %N.patt.loc4_9.2 => constants.%int_123.f7f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -369,8 +369,8 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %i32 [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b.3de [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b.501 [template] // CHECK:STDOUT: %F: %D = bind_symbolic_name F, 0 [symbolic] // CHECK:STDOUT: %F.patt: %D = symbolic_binding_pattern F, 0 [symbolic] // CHECK:STDOUT: %E.type: type = generic_class_type @E [template] @@ -379,25 +379,25 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %D.val.e2a: %D = struct_value (%int_3.25b, %int_4.2ec) [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %D.val.835: %D = struct_value (%int_3.822, %int_4.940) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -427,7 +427,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: class @D { // CHECK:STDOUT: %.loc5: %D.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc6: %D.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D @@ -459,22 +459,22 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %.loc24_53.1: %struct_type.a.b.cfd = struct_literal (%int_3, %int_4) // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %impl.elem0.loc24_53.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc24_53.1: = bound_method %int_3, %impl.elem0.loc24_53.1 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc24_53.1: = specific_function %Convert.bound.loc24_53.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc24_53.1: init %i32 = call %Convert.specific_fn.loc24_53.1(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc24_53.2: init %i32 = converted %int_3, %int.convert_checked.loc24_53.1 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc24_53.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc24_53.1: = bound_method %int_3, %impl.elem0.loc24_53.1 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc24_53.1: = specific_function %Convert.bound.loc24_53.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc24_53.1: init %i32 = call %Convert.specific_fn.loc24_53.1(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc24_53.2: init %i32 = converted %int_3, %int.convert_checked.loc24_53.1 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc24_53.3: ref %D = temporary_storage // CHECK:STDOUT: %.loc24_53.4: ref %i32 = class_element_access %.loc24_53.3, element0 -// CHECK:STDOUT: %.loc24_53.5: init %i32 = initialize_from %.loc24_53.2 to %.loc24_53.4 [template = constants.%int_3.25b] -// CHECK:STDOUT: %impl.elem0.loc24_53.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc24_53.2: = bound_method %int_4, %impl.elem0.loc24_53.2 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc24_53.2: = specific_function %Convert.bound.loc24_53.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc24_53.2: init %i32 = call %Convert.specific_fn.loc24_53.2(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc24_53.6: init %i32 = converted %int_4, %int.convert_checked.loc24_53.2 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %.loc24_53.5: init %i32 = initialize_from %.loc24_53.2 to %.loc24_53.4 [template = constants.%int_3.822] +// CHECK:STDOUT: %impl.elem0.loc24_53.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc24_53.2: = bound_method %int_4, %impl.elem0.loc24_53.2 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc24_53.2: = specific_function %Convert.bound.loc24_53.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc24_53.2: init %i32 = call %Convert.specific_fn.loc24_53.2(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc24_53.6: init %i32 = converted %int_4, %int.convert_checked.loc24_53.2 [template = constants.%int_4.940] // CHECK:STDOUT: %.loc24_53.7: ref %i32 = class_element_access %.loc24_53.3, element1 -// CHECK:STDOUT: %.loc24_53.8: init %i32 = initialize_from %.loc24_53.6 to %.loc24_53.7 [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc24_53.9: init %D = class_init (%.loc24_53.5, %.loc24_53.8), %.loc24_53.3 [template = constants.%D.val.e2a] +// CHECK:STDOUT: %.loc24_53.8: init %i32 = initialize_from %.loc24_53.6 to %.loc24_53.7 [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc24_53.9: init %D = class_init (%.loc24_53.5, %.loc24_53.8), %.loc24_53.3 [template = constants.%D.val.835] // CHECK:STDOUT: %.loc24_53.10: ref %D = temporary %.loc24_53.3, %.loc24_53.9 // CHECK:STDOUT: %.loc24_55.1: ref %D = converted %.loc24_53.1, %.loc24_53.10 // CHECK:STDOUT: %.loc24_55.2: %D = bind_value %.loc24_55.1 diff --git a/toolchain/check/testdata/class/generic_method.carbon b/toolchain/check/testdata/class/generic_method.carbon index ec8f0f5b76d0..ed6a649d0859 100644 --- a/toolchain/check/testdata/class/generic_method.carbon +++ b/toolchain/check/testdata/class/generic_method.carbon @@ -23,13 +23,13 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T) [symbolic] // CHECK:STDOUT: %F: %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.723: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %require_complete.4f8: = require_complete_type %Class [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,7 +77,7 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: %T.patt.loc11_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc11_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Class.%T.loc11_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type @Class.%Class (%Class), @Class.%T.loc11_13.2 (%T) [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type)] @@ -118,8 +118,8 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc13) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16_26: = require_complete_type @F.%Class (%Class) [symbolic = %require_complete.loc16_26 (constants.%require_complete.723)] -// CHECK:STDOUT: %require_complete.loc16_35: = require_complete_type @F.%T.loc13 (%T) [symbolic = %require_complete.loc16_35 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc16_26: = require_complete_type @F.%Class (%Class) [symbolic = %require_complete.loc16_26 (constants.%require_complete.4f8)] +// CHECK:STDOUT: %require_complete.loc16_35: = require_complete_type @F.%T.loc13 (%T) [symbolic = %require_complete.loc16_35 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: %Class](%n.param_patt: %T) { // CHECK:STDOUT: !entry: @@ -132,7 +132,7 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: %T.patt.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %F.type => constants.%F.type diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index 5aa195469ef1..67c740e4950f 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -60,7 +60,7 @@ fn Run() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Field.elem: type = unbound_element_type %Field, %i32 [template] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x [template] // CHECK:STDOUT: %ForwardDeclared: type = class_type @ForwardDeclared [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] @@ -72,7 +72,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -104,7 +104,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @Field { // CHECK:STDOUT: %.loc8: %Field.elem = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Field @@ -161,23 +161,23 @@ fn Run() { // CHECK:STDOUT: %Field: type = class_type @Field [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.x.6d6: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.555: = complete_type_witness %struct_type.x.6d6 [template] +// CHECK:STDOUT: %struct_type.x.767: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.c07: = complete_type_witness %struct_type.x.767 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.x.c96: type = struct_type {.x: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.e4d: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.059: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Field.val: %Field = struct_value (%int_1.059) [template] +// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.b97: = impl_witness (imports.%import_ref.a86), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.43e: = bound_method %int_1.5b8, %Convert.16d [template] +// CHECK:STDOUT: %Convert.specific_fn.c37: = specific_function %Convert.bound.43e, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.47b: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Field.val: %Field = struct_value (%int_1.47b) [template] // CHECK:STDOUT: %Field.elem: type = unbound_element_type %Field, %i32 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.ed9: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.918: = bound_method %int_2.ecc, %Convert.16d [template] +// CHECK:STDOUT: %Convert.specific_fn.5a4: = specific_function %Convert.bound.918, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.d0d: %i32 = int_value 2 [template] // CHECK:STDOUT: %ForwardDeclared.7b34f2.1: type = class_type @ForwardDeclared.1 [template] // CHECK:STDOUT: %ForwardDeclared.val: %ForwardDeclared.7b34f2.1 = struct_value () [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] @@ -190,36 +190,36 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.b50: type = import_ref Main//a, Empty, loaded [template = constants.%Empty] -// CHECK:STDOUT: %import_ref.ad2: type = import_ref Main//a, Field, loaded [template = constants.%Field] -// CHECK:STDOUT: %import_ref.a15: type = import_ref Main//a, ForwardDeclared, loaded [template = constants.%ForwardDeclared.7b34f2.1] -// CHECK:STDOUT: %import_ref.81e: type = import_ref Main//a, Incomplete, loaded [template = constants.%Incomplete] +// CHECK:STDOUT: %import_ref.e6e: type = import_ref Main//a, Empty, loaded [template = constants.%Empty] +// CHECK:STDOUT: %import_ref.53b: type = import_ref Main//a, Field, loaded [template = constants.%Field] +// CHECK:STDOUT: %import_ref.046: type = import_ref Main//a, ForwardDeclared, loaded [template = constants.%ForwardDeclared.7b34f2.1] +// CHECK:STDOUT: %import_ref.9b0: type = import_ref Main//a, Incomplete, loaded [template = constants.%Incomplete] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//a, loc5_1, loaded [template = constants.%complete_type.357] // CHECK:STDOUT: %import_ref.fd7 = import_ref Main//a, inst16 [no loc], unloaded -// CHECK:STDOUT: %import_ref.377: = import_ref Main//a, loc9_1, loaded [template = constants.%complete_type.555] +// CHECK:STDOUT: %import_ref.709: = import_ref Main//a, loc9_1, loaded [template = constants.%complete_type.c07] // CHECK:STDOUT: %import_ref.845 = import_ref Main//a, inst21 [no loc], unloaded -// CHECK:STDOUT: %import_ref.64e: %Field.elem = import_ref Main//a, loc8_8, loaded [template = %.259] +// CHECK:STDOUT: %import_ref.4d2: %Field.elem = import_ref Main//a, loc8_8, loaded [template = %.d33] // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//a, loc16_1, loaded [template = constants.%complete_type.357] // CHECK:STDOUT: %import_ref.39e731.1 = import_ref Main//a, inst56 [no loc], unloaded -// CHECK:STDOUT: %import_ref.40e: %F.type = import_ref Main//a, loc14_21, loaded [template = constants.%F] -// CHECK:STDOUT: %import_ref.876: %G.type = import_ref Main//a, loc15_27, loaded [template = constants.%G] +// CHECK:STDOUT: %import_ref.760: %F.type = import_ref Main//a, loc14_21, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.26e: %G.type = import_ref Main//a, loc15_27, loaded [template = constants.%G] // CHECK:STDOUT: %import_ref.8f24d3.3: = import_ref Main//a, loc16_1, loaded [template = constants.%complete_type.357] // CHECK:STDOUT: %import_ref.39e731.2 = import_ref Main//a, inst56 [no loc], unloaded -// CHECK:STDOUT: %import_ref.31e = import_ref Main//a, loc14_21, unloaded -// CHECK:STDOUT: %import_ref.ed7 = import_ref Main//a, loc15_27, unloaded +// CHECK:STDOUT: %import_ref.42a = import_ref Main//a, loc14_21, unloaded +// CHECK:STDOUT: %import_ref.67a = import_ref Main//a, loc15_27, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Empty = imports.%import_ref.b50 -// CHECK:STDOUT: .Field = imports.%import_ref.ad2 -// CHECK:STDOUT: .ForwardDeclared = imports.%import_ref.a15 -// CHECK:STDOUT: .Incomplete = imports.%import_ref.81e +// CHECK:STDOUT: .Empty = imports.%import_ref.e6e +// CHECK:STDOUT: .Field = imports.%import_ref.53b +// CHECK:STDOUT: .ForwardDeclared = imports.%import_ref.046 +// CHECK:STDOUT: .Incomplete = imports.%import_ref.9b0 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .Run = %Run.decl // CHECK:STDOUT: } @@ -237,23 +237,23 @@ fn Run() { // CHECK:STDOUT: class @Field [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.845 -// CHECK:STDOUT: .x = imports.%import_ref.64e -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.377 +// CHECK:STDOUT: .x = imports.%import_ref.4d2 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.709 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared.1 [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.39e731.1 -// CHECK:STDOUT: .F = imports.%import_ref.40e -// CHECK:STDOUT: .G = imports.%import_ref.876 +// CHECK:STDOUT: .F = imports.%import_ref.760 +// CHECK:STDOUT: .G = imports.%import_ref.26e // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared.2 [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.39e731.2 -// CHECK:STDOUT: .F = imports.%import_ref.31e -// CHECK:STDOUT: .G = imports.%import_ref.ed7 +// CHECK:STDOUT: .F = imports.%import_ref.42a +// CHECK:STDOUT: .G = imports.%import_ref.67a // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.3 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -271,25 +271,25 @@ fn Run() { // CHECK:STDOUT: %b: ref %Field = bind_name b, %b.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_25.1: %struct_type.x.c96 = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0.loc9: %Convert.type.e4d = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc9: = bound_method %int_1, %impl.elem0.loc9 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc9: = specific_function %Convert.bound.loc9, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc9: init %i32 = call %Convert.specific_fn.loc9(%int_1) [template = constants.%int_1.059] -// CHECK:STDOUT: %.loc9_25.2: init %i32 = converted %int_1, %int.convert_checked.loc9 [template = constants.%int_1.059] +// CHECK:STDOUT: %impl.elem0.loc9: %Convert.type.6da = impl_witness_access constants.%impl_witness.b97, element0 [template = constants.%Convert.16d] +// CHECK:STDOUT: %Convert.bound.loc9: = bound_method %int_1, %impl.elem0.loc9 [template = constants.%Convert.bound.43e] +// CHECK:STDOUT: %Convert.specific_fn.loc9: = specific_function %Convert.bound.loc9, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c37] +// CHECK:STDOUT: %int.convert_checked.loc9: init %i32 = call %Convert.specific_fn.loc9(%int_1) [template = constants.%int_1.47b] +// CHECK:STDOUT: %.loc9_25.2: init %i32 = converted %int_1, %int.convert_checked.loc9 [template = constants.%int_1.47b] // CHECK:STDOUT: %.loc9_25.3: ref %i32 = class_element_access %b.var, element0 -// CHECK:STDOUT: %.loc9_25.4: init %i32 = initialize_from %.loc9_25.2 to %.loc9_25.3 [template = constants.%int_1.059] +// CHECK:STDOUT: %.loc9_25.4: init %i32 = initialize_from %.loc9_25.2 to %.loc9_25.3 [template = constants.%int_1.47b] // CHECK:STDOUT: %.loc9_25.5: init %Field = class_init (%.loc9_25.4), %b.var [template = constants.%Field.val] // CHECK:STDOUT: %.loc9_26: init %Field = converted %.loc9_25.1, %.loc9_25.5 [template = constants.%Field.val] // CHECK:STDOUT: assign %b.var, %.loc9_26 // CHECK:STDOUT: %b.ref: ref %Field = name_ref b, %b -// CHECK:STDOUT: %x.ref: %Field.elem = name_ref x, imports.%import_ref.64e [template = imports.%.259] +// CHECK:STDOUT: %x.ref: %Field.elem = name_ref x, imports.%import_ref.4d2 [template = imports.%.d33] // CHECK:STDOUT: %.loc10_4: ref %i32 = class_element_access %b.ref, element0 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc10: %Convert.type.e4d = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc10: = bound_method %int_2, %impl.elem0.loc10 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc10: = specific_function %Convert.bound.loc10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc10: init %i32 = call %Convert.specific_fn.loc10(%int_2) [template = constants.%int_2.ed9] -// CHECK:STDOUT: %.loc10_7: init %i32 = converted %int_2, %int.convert_checked.loc10 [template = constants.%int_2.ed9] +// CHECK:STDOUT: %impl.elem0.loc10: %Convert.type.6da = impl_witness_access constants.%impl_witness.b97, element0 [template = constants.%Convert.16d] +// CHECK:STDOUT: %Convert.bound.loc10: = bound_method %int_2, %impl.elem0.loc10 [template = constants.%Convert.bound.918] +// CHECK:STDOUT: %Convert.specific_fn.loc10: = specific_function %Convert.bound.loc10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.5a4] +// CHECK:STDOUT: %int.convert_checked.loc10: init %i32 = call %Convert.specific_fn.loc10(%int_2) [template = constants.%int_2.d0d] +// CHECK:STDOUT: %.loc10_7: init %i32 = converted %int_2, %int.convert_checked.loc10 [template = constants.%int_2.d0d] // CHECK:STDOUT: assign %.loc10_4, %.loc10_7 // CHECK:STDOUT: %c.var: ref %ForwardDeclared.7b34f2.1 = var c // CHECK:STDOUT: %c: ref %ForwardDeclared.7b34f2.1 = bind_name c, %c.var @@ -298,12 +298,12 @@ fn Run() { // CHECK:STDOUT: %.loc12_30: init %ForwardDeclared.7b34f2.1 = converted %.loc12_29.1, %.loc12_29.2 [template = constants.%ForwardDeclared.val] // CHECK:STDOUT: assign %c.var, %.loc12_30 // CHECK:STDOUT: %c.ref.loc13: ref %ForwardDeclared.7b34f2.1 = name_ref c, %c -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.40e [template = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.760 [template = constants.%F] // CHECK:STDOUT: %F.bound: = bound_method %c.ref.loc13, %F.ref // CHECK:STDOUT: %.loc13: %ForwardDeclared.7b34f2.1 = bind_value %c.ref.loc13 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.bound(%.loc13) // CHECK:STDOUT: %c.ref.loc14: ref %ForwardDeclared.7b34f2.1 = name_ref c, %c -// CHECK:STDOUT: %G.ref: %G.type = name_ref G, imports.%import_ref.876 [template = constants.%G] +// CHECK:STDOUT: %G.ref: %G.type = name_ref G, imports.%import_ref.26e [template = constants.%G] // CHECK:STDOUT: %G.bound: = bound_method %c.ref.loc14, %G.ref // CHECK:STDOUT: %addr.loc14: %ptr.6cf = addr_of %c.ref.loc14 // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.bound(%addr.loc14) diff --git a/toolchain/check/testdata/class/import_base.carbon b/toolchain/check/testdata/class/import_base.carbon index 4057c7c4079a..1fb5f60182db 100644 --- a/toolchain/check/testdata/class/import_base.carbon +++ b/toolchain/check/testdata/class/import_base.carbon @@ -48,7 +48,7 @@ fn Run() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [template] // CHECK:STDOUT: %struct_type.x.unused: type = struct_type {.x: %i32, .unused: %i32} [template] -// CHECK:STDOUT: %complete_type.39a: = complete_type_witness %struct_type.x.unused [template] +// CHECK:STDOUT: %complete_type.20c: = complete_type_witness %struct_type.x.unused [template] // CHECK:STDOUT: %Child: type = class_type @Child [template] // CHECK:STDOUT: %Child.elem: type = unbound_element_type %Child, %Base [template] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %Base} [template] @@ -57,7 +57,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -93,7 +93,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8: %Base.elem = field_decl x, element0 [template] // CHECK:STDOUT: %.loc9: %Base.elem = field_decl unused, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.unused [template = constants.%complete_type.39a] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.unused [template = constants.%complete_type.20c] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base @@ -130,59 +130,59 @@ fn Run() { // CHECK:STDOUT: %Base: type = class_type @Base [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.x.unused.53c: type = struct_type {.x: %i32, .unused: %i32} [template] -// CHECK:STDOUT: %complete_type.847: = complete_type_witness %struct_type.x.unused.53c [template] +// CHECK:STDOUT: %struct_type.x.unused.7d5: type = struct_type {.x: %i32, .unused: %i32} [template] +// CHECK:STDOUT: %complete_type.90f: = complete_type_witness %struct_type.x.unused.7d5 [template] // CHECK:STDOUT: %struct_type.base.b1e: type = struct_type {.base: %Base} [template] // CHECK:STDOUT: %complete_type.15c: = complete_type_witness %struct_type.base.b1e [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.x.unused.c45: type = struct_type {.x: Core.IntLiteral, .unused: Core.IntLiteral} [template] // CHECK:STDOUT: %struct_type.base.6c7: type = struct_type {.base: %struct_type.x.unused.c45} [template] -// CHECK:STDOUT: %Convert.type.e4d: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.300: %i32 = int_value 0 [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.059: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Base.val: %Base = struct_value (%int_0.300, %int_1.059) [template] +// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.b97: = impl_witness (imports.%import_ref.a86), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.9aa: = bound_method %int_0.5c6, %Convert.16d [template] +// CHECK:STDOUT: %Convert.specific_fn.bae: = specific_function %Convert.bound.9aa, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.263: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.bound.43e: = bound_method %int_1.5b8, %Convert.16d [template] +// CHECK:STDOUT: %Convert.specific_fn.c37: = specific_function %Convert.bound.43e, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.47b: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Base.val: %Base = struct_value (%int_0.263, %int_1.47b) [template] // CHECK:STDOUT: %Child.val: %Child = struct_value (%Base.val) [template] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.ed9: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.918: = bound_method %int_2.ecc, %Convert.16d [template] +// CHECK:STDOUT: %Convert.specific_fn.5a4: = specific_function %Convert.bound.918, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.d0d: %i32 = int_value 2 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.fb5 = import_ref Main//a, Base, unloaded -// CHECK:STDOUT: %import_ref.d08d: type = import_ref Main//a, Child, loaded [template = constants.%Child] +// CHECK:STDOUT: %import_ref.1eb = import_ref Main//a, Base, unloaded +// CHECK:STDOUT: %import_ref.794: type = import_ref Main//a, Child, loaded [template = constants.%Child] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.38f: = import_ref Main//a, loc10_1, loaded [template = constants.%complete_type.847] +// CHECK:STDOUT: %import_ref.239: = import_ref Main//a, loc10_1, loaded [template = constants.%complete_type.90f] // CHECK:STDOUT: %import_ref.1f3 = import_ref Main//a, inst16 [no loc], unloaded -// CHECK:STDOUT: %import_ref.1e1: %F.type = import_ref Main//a, loc5_21, loaded [template = constants.%F] -// CHECK:STDOUT: %import_ref.a0a = import_ref Main//a, loc6_26, unloaded -// CHECK:STDOUT: %import_ref.56c: %Base.elem = import_ref Main//a, loc8_8, loaded [template = %.09f] -// CHECK:STDOUT: %import_ref.7c5 = import_ref Main//a, loc9_13, unloaded +// CHECK:STDOUT: %import_ref.e8f: %F.type = import_ref Main//a, loc5_21, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.8bf = import_ref Main//a, loc6_26, unloaded +// CHECK:STDOUT: %import_ref.e67: %Base.elem = import_ref Main//a, loc8_8, loaded [template = %.720] +// CHECK:STDOUT: %import_ref.2e4 = import_ref Main//a, loc9_13, unloaded // CHECK:STDOUT: %import_ref.c5f: = import_ref Main//a, loc14_1, loaded [template = constants.%complete_type.15c] // CHECK:STDOUT: %import_ref.9a9 = import_ref Main//a, inst70 [no loc], unloaded -// CHECK:STDOUT: %import_ref.000 = import_ref Main//a, loc13_20, unloaded -// CHECK:STDOUT: %import_ref.909ec2.2: type = import_ref Main//a, loc13_16, loaded [template = constants.%Base] +// CHECK:STDOUT: %import_ref.7e5 = import_ref Main//a, loc13_20, unloaded +// CHECK:STDOUT: %import_ref.a21640.2: type = import_ref Main//a, loc13_16, loaded [template = constants.%Base] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Base = imports.%import_ref.fb5 -// CHECK:STDOUT: .Child = imports.%import_ref.d08d +// CHECK:STDOUT: .Base = imports.%import_ref.1eb +// CHECK:STDOUT: .Child = imports.%import_ref.794 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .Run = %Run.decl // CHECK:STDOUT: } @@ -194,19 +194,19 @@ fn Run() { // CHECK:STDOUT: class @Child [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.9a9 -// CHECK:STDOUT: .base = imports.%import_ref.000 -// CHECK:STDOUT: extend imports.%import_ref.909ec2.2 +// CHECK:STDOUT: .base = imports.%import_ref.7e5 +// CHECK:STDOUT: extend imports.%import_ref.a21640.2 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.c5f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.1f3 -// CHECK:STDOUT: .F = imports.%import_ref.1e1 -// CHECK:STDOUT: .Unused = imports.%import_ref.a0a -// CHECK:STDOUT: .x = imports.%import_ref.56c -// CHECK:STDOUT: .unused = imports.%import_ref.7c5 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.38f +// CHECK:STDOUT: .F = imports.%import_ref.e8f +// CHECK:STDOUT: .Unused = imports.%import_ref.8bf +// CHECK:STDOUT: .x = imports.%import_ref.e67 +// CHECK:STDOUT: .unused = imports.%import_ref.2e4 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.239 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -217,40 +217,40 @@ fn Run() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc7_47.1: %struct_type.x.unused.c45 = struct_literal (%int_0, %int_1) // CHECK:STDOUT: %.loc7_48.1: %struct_type.base.6c7 = struct_literal (%.loc7_47.1) -// CHECK:STDOUT: %impl.elem0.loc7_47.1: %Convert.type.e4d = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc7_47.1: = bound_method %int_0, %impl.elem0.loc7_47.1 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc7_47.1: = specific_function %Convert.bound.loc7_47.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc7_47.1: init %i32 = call %Convert.specific_fn.loc7_47.1(%int_0) [template = constants.%int_0.300] -// CHECK:STDOUT: %.loc7_47.2: init %i32 = converted %int_0, %int.convert_checked.loc7_47.1 [template = constants.%int_0.300] +// CHECK:STDOUT: %impl.elem0.loc7_47.1: %Convert.type.6da = impl_witness_access constants.%impl_witness.b97, element0 [template = constants.%Convert.16d] +// CHECK:STDOUT: %Convert.bound.loc7_47.1: = bound_method %int_0, %impl.elem0.loc7_47.1 [template = constants.%Convert.bound.9aa] +// CHECK:STDOUT: %Convert.specific_fn.loc7_47.1: = specific_function %Convert.bound.loc7_47.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.bae] +// CHECK:STDOUT: %int.convert_checked.loc7_47.1: init %i32 = call %Convert.specific_fn.loc7_47.1(%int_0) [template = constants.%int_0.263] +// CHECK:STDOUT: %.loc7_47.2: init %i32 = converted %int_0, %int.convert_checked.loc7_47.1 [template = constants.%int_0.263] // CHECK:STDOUT: %.loc7_48.2: ref %Base = class_element_access %a.var, element0 // CHECK:STDOUT: %.loc7_47.3: ref %i32 = class_element_access %.loc7_48.2, element0 -// CHECK:STDOUT: %.loc7_47.4: init %i32 = initialize_from %.loc7_47.2 to %.loc7_47.3 [template = constants.%int_0.300] -// CHECK:STDOUT: %impl.elem0.loc7_47.2: %Convert.type.e4d = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc7_47.2: = bound_method %int_1, %impl.elem0.loc7_47.2 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc7_47.2: = specific_function %Convert.bound.loc7_47.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc7_47.2: init %i32 = call %Convert.specific_fn.loc7_47.2(%int_1) [template = constants.%int_1.059] -// CHECK:STDOUT: %.loc7_47.5: init %i32 = converted %int_1, %int.convert_checked.loc7_47.2 [template = constants.%int_1.059] +// CHECK:STDOUT: %.loc7_47.4: init %i32 = initialize_from %.loc7_47.2 to %.loc7_47.3 [template = constants.%int_0.263] +// CHECK:STDOUT: %impl.elem0.loc7_47.2: %Convert.type.6da = impl_witness_access constants.%impl_witness.b97, element0 [template = constants.%Convert.16d] +// CHECK:STDOUT: %Convert.bound.loc7_47.2: = bound_method %int_1, %impl.elem0.loc7_47.2 [template = constants.%Convert.bound.43e] +// CHECK:STDOUT: %Convert.specific_fn.loc7_47.2: = specific_function %Convert.bound.loc7_47.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c37] +// CHECK:STDOUT: %int.convert_checked.loc7_47.2: init %i32 = call %Convert.specific_fn.loc7_47.2(%int_1) [template = constants.%int_1.47b] +// CHECK:STDOUT: %.loc7_47.5: init %i32 = converted %int_1, %int.convert_checked.loc7_47.2 [template = constants.%int_1.47b] // CHECK:STDOUT: %.loc7_47.6: ref %i32 = class_element_access %.loc7_48.2, element1 -// CHECK:STDOUT: %.loc7_47.7: init %i32 = initialize_from %.loc7_47.5 to %.loc7_47.6 [template = constants.%int_1.059] +// CHECK:STDOUT: %.loc7_47.7: init %i32 = initialize_from %.loc7_47.5 to %.loc7_47.6 [template = constants.%int_1.47b] // CHECK:STDOUT: %.loc7_47.8: init %Base = class_init (%.loc7_47.4, %.loc7_47.7), %.loc7_48.2 [template = constants.%Base.val] // CHECK:STDOUT: %.loc7_48.3: init %Base = converted %.loc7_47.1, %.loc7_47.8 [template = constants.%Base.val] // CHECK:STDOUT: %.loc7_48.4: init %Child = class_init (%.loc7_48.3), %a.var [template = constants.%Child.val] // CHECK:STDOUT: %.loc7_49: init %Child = converted %.loc7_48.1, %.loc7_48.4 [template = constants.%Child.val] // CHECK:STDOUT: assign %a.var, %.loc7_49 // CHECK:STDOUT: %a.ref.loc8: ref %Child = name_ref a, %a -// CHECK:STDOUT: %x.ref: %Base.elem = name_ref x, imports.%import_ref.56c [template = imports.%.09f] +// CHECK:STDOUT: %x.ref: %Base.elem = name_ref x, imports.%import_ref.e67 [template = imports.%.720] // 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 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc8: %Convert.type.e4d = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc8: = bound_method %int_2, %impl.elem0.loc8 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc8: = specific_function %Convert.bound.loc8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc8: init %i32 = call %Convert.specific_fn.loc8(%int_2) [template = constants.%int_2.ed9] -// CHECK:STDOUT: %.loc8_7: init %i32 = converted %int_2, %int.convert_checked.loc8 [template = constants.%int_2.ed9] +// CHECK:STDOUT: %impl.elem0.loc8: %Convert.type.6da = impl_witness_access constants.%impl_witness.b97, element0 [template = constants.%Convert.16d] +// CHECK:STDOUT: %Convert.bound.loc8: = bound_method %int_2, %impl.elem0.loc8 [template = constants.%Convert.bound.918] +// CHECK:STDOUT: %Convert.specific_fn.loc8: = specific_function %Convert.bound.loc8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.5a4] +// CHECK:STDOUT: %int.convert_checked.loc8: init %i32 = call %Convert.specific_fn.loc8(%int_2) [template = constants.%int_2.d0d] +// CHECK:STDOUT: %.loc8_7: init %i32 = converted %int_2, %int.convert_checked.loc8 [template = constants.%int_2.d0d] // CHECK:STDOUT: assign %.loc8_4.3, %.loc8_7 // CHECK:STDOUT: %a.ref.loc9: ref %Child = name_ref a, %a -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.1e1 [template = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.e8f [template = constants.%F] // CHECK:STDOUT: %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 diff --git a/toolchain/check/testdata/class/import_indirect.carbon b/toolchain/check/testdata/class/import_indirect.carbon index 634d02d2d032..22f3078d987b 100644 --- a/toolchain/check/testdata/class/import_indirect.carbon +++ b/toolchain/check/testdata/class/import_indirect.carbon @@ -143,7 +143,7 @@ var ptr: E* = &val; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//a, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//a, C, loaded [template = constants.%C] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -154,7 +154,7 @@ var ptr: E* = &val; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .D = %D // CHECK:STDOUT: .b_val = %b_val @@ -162,8 +162,8 @@ var ptr: E* = &val; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %b_val.var: ref %C = var b_val // CHECK:STDOUT: %b_val: ref %C = bind_name b_val, %b_val.var // CHECK:STDOUT: %b_ptr.var: ref %ptr.019 = var b_ptr @@ -199,7 +199,7 @@ var ptr: E* = &val; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//a, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//a, C, loaded [template = constants.%C] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -210,7 +210,7 @@ var ptr: E* = &val; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .E = %E // CHECK:STDOUT: .c_val = %c_val @@ -218,8 +218,8 @@ var ptr: E* = &val; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %E: type = bind_alias E, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %E: type = bind_alias E, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %c_val.var: ref %C = var c_val // CHECK:STDOUT: %c_val: ref %C = bind_name c_val, %c_val.var // CHECK:STDOUT: %c_ptr.var: ref %ptr.019 = var c_ptr @@ -255,8 +255,8 @@ var ptr: E* = &val; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//a, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.af7: type = import_ref Main//b, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//a, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.ff6: type = import_ref Main//b, D, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.0da = import_ref Main//b, b_val, unloaded // CHECK:STDOUT: %import_ref.ff5 = import_ref Main//b, b_ptr, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { @@ -269,8 +269,8 @@ var ptr: E* = &val; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac -// CHECK:STDOUT: .D = imports.%import_ref.af7 +// CHECK:STDOUT: .C = imports.%import_ref.3b0 +// CHECK:STDOUT: .D = imports.%import_ref.ff6 // CHECK:STDOUT: .b_val = imports.%import_ref.0da // CHECK:STDOUT: .b_ptr = imports.%import_ref.ff5 // CHECK:STDOUT: .Core = imports.%Core @@ -314,10 +314,10 @@ var ptr: E* = &val; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.af7: type = import_ref Main//b, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.ff6: type = import_ref Main//b, D, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.0da = import_ref Main//b, b_val, unloaded // CHECK:STDOUT: %import_ref.ff5 = import_ref Main//b, b_ptr, unloaded -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//a, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//a, C, loaded [template = constants.%C] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -328,10 +328,10 @@ var ptr: E* = &val; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .D = imports.%import_ref.af7 +// CHECK:STDOUT: .D = imports.%import_ref.ff6 // CHECK:STDOUT: .b_val = imports.%import_ref.0da // CHECK:STDOUT: .b_ptr = imports.%import_ref.ff5 -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .val = %val // CHECK:STDOUT: .ptr = %ptr @@ -373,10 +373,10 @@ var ptr: E* = &val; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.af7: type = import_ref Main//b, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.ff6: type = import_ref Main//b, D, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.0da = import_ref Main//b, b_val, unloaded // CHECK:STDOUT: %import_ref.ff5 = import_ref Main//b, b_ptr, unloaded -// CHECK:STDOUT: %import_ref.bbb: type = import_ref Main//c, E, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.2c9: type = import_ref Main//c, E, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.963 = import_ref Main//c, c_val, unloaded // CHECK:STDOUT: %import_ref.be6 = import_ref Main//c, c_ptr, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { @@ -389,10 +389,10 @@ var ptr: E* = &val; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .D = imports.%import_ref.af7 +// CHECK:STDOUT: .D = imports.%import_ref.ff6 // CHECK:STDOUT: .b_val = imports.%import_ref.0da // CHECK:STDOUT: .b_ptr = imports.%import_ref.ff5 -// CHECK:STDOUT: .E = imports.%import_ref.bbb +// CHECK:STDOUT: .E = imports.%import_ref.2c9 // CHECK:STDOUT: .c_val = imports.%import_ref.963 // CHECK:STDOUT: .c_ptr = imports.%import_ref.be6 // CHECK:STDOUT: .Core = imports.%Core @@ -436,10 +436,10 @@ var ptr: E* = &val; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.bbb: type = import_ref Main//c, E, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.2c9: type = import_ref Main//c, E, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.963 = import_ref Main//c, c_val, unloaded // CHECK:STDOUT: %import_ref.be6 = import_ref Main//c, c_ptr, unloaded -// CHECK:STDOUT: %import_ref.af7: type = import_ref Main//b, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.ff6: type = import_ref Main//b, D, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.0da = import_ref Main//b, b_val, unloaded // CHECK:STDOUT: %import_ref.ff5 = import_ref Main//b, b_ptr, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { @@ -452,10 +452,10 @@ var ptr: E* = &val; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .E = imports.%import_ref.bbb +// CHECK:STDOUT: .E = imports.%import_ref.2c9 // CHECK:STDOUT: .c_val = imports.%import_ref.963 // CHECK:STDOUT: .c_ptr = imports.%import_ref.be6 -// CHECK:STDOUT: .D = imports.%import_ref.af7 +// CHECK:STDOUT: .D = imports.%import_ref.ff6 // CHECK:STDOUT: .b_val = imports.%import_ref.0da // CHECK:STDOUT: .b_ptr = imports.%import_ref.ff5 // CHECK:STDOUT: .Core = imports.%Core diff --git a/toolchain/check/testdata/class/import_member_cycle.carbon b/toolchain/check/testdata/class/import_member_cycle.carbon index 977a06826a84..a4b5b66acab7 100644 --- a/toolchain/check/testdata/class/import_member_cycle.carbon +++ b/toolchain/check/testdata/class/import_member_cycle.carbon @@ -74,7 +74,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.a2c: type = import_ref Main//a, Cycle, loaded [template = constants.%Cycle] +// CHECK:STDOUT: %import_ref.c07: type = import_ref Main//a, Cycle, loaded [template = constants.%Cycle] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -86,7 +86,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Cycle = imports.%import_ref.a2c +// CHECK:STDOUT: .Cycle = imports.%import_ref.c07 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .Run = %Run.decl // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/import_struct_cyle.carbon b/toolchain/check/testdata/class/import_struct_cyle.carbon index 1d4f51c73dca..9846d8f206c5 100644 --- a/toolchain/check/testdata/class/import_struct_cyle.carbon +++ b/toolchain/check/testdata/class/import_struct_cyle.carbon @@ -86,7 +86,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.498 = import_ref Main//a, Cycle, unloaded +// CHECK:STDOUT: %import_ref.103 = import_ref Main//a, Cycle, unloaded // CHECK:STDOUT: %import_ref.e18: ref %struct_type.b = import_ref Main//a, a, loaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude @@ -99,7 +99,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Cycle = imports.%import_ref.498 +// CHECK:STDOUT: .Cycle = imports.%import_ref.103 // CHECK:STDOUT: .a = imports.%import_ref.e18 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .Run = %Run.decl diff --git a/toolchain/check/testdata/class/inheritance_access.carbon b/toolchain/check/testdata/class/inheritance_access.carbon index b32dc3cff4fa..e9070a4b3977 100644 --- a/toolchain/check/testdata/class/inheritance_access.carbon +++ b/toolchain/check/testdata/class/inheritance_access.carbon @@ -234,11 +234,11 @@ class B { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Shape.elem: type = unbound_element_type %Shape, %i32 [template] // CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %i32, .y: %i32} [template] -// CHECK:STDOUT: %complete_type.032: = complete_type_witness %struct_type.x.y [template] +// CHECK:STDOUT: %complete_type.70a: = complete_type_witness %struct_type.x.y [template] // CHECK:STDOUT: %Circle: type = class_type @Circle [template] // CHECK:STDOUT: %Circle.elem: type = unbound_element_type %Circle, %Shape [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %GetPosition.type: type = fn_type @GetPosition [template] // CHECK:STDOUT: %GetPosition: %GetPosition.type = struct_value () [template] // CHECK:STDOUT: %struct_type.base.0ed: type = struct_type {.base: %Shape} [template] @@ -247,7 +247,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -267,7 +267,7 @@ class B { // CHECK:STDOUT: class @Shape { // CHECK:STDOUT: %.loc5: %Shape.elem = field_decl x, element0 [template] // CHECK:STDOUT: %.loc6: %Shape.elem = field_decl y, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y [template = constants.%complete_type.032] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.y [template = constants.%complete_type.70a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Shape @@ -282,20 +282,20 @@ class B { // CHECK:STDOUT: %GetPosition.decl: %GetPosition.type = fn_decl @GetPosition [template = constants.%GetPosition] { // CHECK:STDOUT: %self.patt: %Circle = binding_pattern self // CHECK:STDOUT: %self.param_patt: %Circle = value_param_pattern %self.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %tuple.type.471 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.471 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %tuple.type.d07 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.d07 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc12_36: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_36: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc12_41: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_41: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc12_44.1: %tuple.type.24b = tuple_literal (%i32.loc12_36, %i32.loc12_41) -// CHECK:STDOUT: %.loc12_44.2: type = converted %.loc12_44.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc12_44.2: type = converted %.loc12_44.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: %self.param: %Circle = value_param runtime_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Circle [template = constants.%Circle] // CHECK:STDOUT: %self: %Circle = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref %tuple.type.471 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %tuple.type.471 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %tuple.type.d07 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %tuple.type.d07 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.0ed [template = constants.%complete_type.a2b] // CHECK:STDOUT: @@ -307,7 +307,7 @@ class B { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @GetPosition[%self.param_patt: %Circle]() -> %return.param_patt: %tuple.type.471 { +// CHECK:STDOUT: fn @GetPosition[%self.param_patt: %Circle]() -> %return.param_patt: %tuple.type.d07 { // 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 [template = @Shape.%.loc5] @@ -319,15 +319,15 @@ 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.471 = tuple_literal (%.loc13_17.3, %.loc13_25.3) +// CHECK:STDOUT: %.loc13_27.1: %tuple.type.d07 = tuple_literal (%.loc13_17.3, %.loc13_25.3) // CHECK:STDOUT: %.loc13_17.4: %i32 = bind_value %.loc13_17.3 // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return, element0 // CHECK:STDOUT: %.loc13_27.2: init %i32 = initialize_from %.loc13_17.4 to %tuple.elem0 // CHECK:STDOUT: %.loc13_25.4: %i32 = bind_value %.loc13_25.3 // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return, element1 // CHECK:STDOUT: %.loc13_27.3: init %i32 = initialize_from %.loc13_25.4 to %tuple.elem1 -// CHECK:STDOUT: %.loc13_27.4: init %tuple.type.471 = tuple_init (%.loc13_27.2, %.loc13_27.3) to %return -// CHECK:STDOUT: %.loc13_28: init %tuple.type.471 = converted %.loc13_27.1, %.loc13_27.4 +// CHECK:STDOUT: %.loc13_27.4: init %tuple.type.d07 = tuple_init (%.loc13_27.2, %.loc13_27.3) to %return +// CHECK:STDOUT: %.loc13_28: init %tuple.type.d07 = converted %.loc13_27.1, %.loc13_27.4 // CHECK:STDOUT: return %.loc13_28 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -335,17 +335,17 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A: type = class_type @A [template] -// CHECK:STDOUT: %F.type.76a: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.649: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.a9f: %F.type.76a = struct_value () [template] +// CHECK:STDOUT: %F.485: %F.type.649 = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %F.type.e92: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.d7d: %F.type.e92 = struct_value () [template] +// CHECK:STDOUT: %F.type.8c6: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.92a: %F.type.8c6 = struct_value () [template] // CHECK:STDOUT: %struct_type.base.953: type = struct_type {.base: %A} [template] // CHECK:STDOUT: %complete_type.020: = complete_type_witness %struct_type.base.953 [template] // CHECK:STDOUT: %C: type = class_type @C [template] @@ -359,7 +359,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -379,7 +379,7 @@ class B { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A { -// CHECK:STDOUT: %F.decl: %F.type.76a = fn_decl @F.1 [template = constants.%F.a9f] {} {} +// CHECK:STDOUT: %F.decl: %F.type.649 = fn_decl @F.1 [template = constants.%F.485] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -391,7 +391,7 @@ class B { // CHECK:STDOUT: class @B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [template] -// CHECK:STDOUT: %F.decl: %F.type.e92 = fn_decl @F.2 [template = constants.%F.d7d] { +// CHECK:STDOUT: %F.decl: %F.type.8c6 = fn_decl @F.2 [template = constants.%F.92a] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -444,7 +444,7 @@ class B { // CHECK:STDOUT: fn @G[%self.param_patt: %C]() -> %empty_tuple.type { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: %C = name_ref self, %self -// CHECK:STDOUT: %F.ref: %F.type.76a = name_ref F, @A.%F.decl [template = constants.%F.a9f] +// CHECK:STDOUT: %F.ref: %F.type.649 = name_ref F, @A.%F.decl [template = constants.%F.485] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: %.loc15_44.1: ref %empty_tuple.type = temporary_storage // CHECK:STDOUT: %.loc15_44.2: ref %empty_tuple.type = temporary %.loc15_44.1, %F.call @@ -460,13 +460,13 @@ class B { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] // CHECK:STDOUT: %SomeProtectedFunction.type: type = fn_type @SomeProtectedFunction [template] // CHECK:STDOUT: %SomeProtectedFunction: %SomeProtectedFunction.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] @@ -483,8 +483,8 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -503,12 +503,12 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc5_39.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc5_39.2: %i32 = converted %int_5, %.loc5_39.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc5_39.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc5_39.2: %i32 = converted %int_5, %.loc5_39.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %SOME_CONSTANT: %i32 = bind_name SOME_CONSTANT, %.loc5_39.2 // CHECK:STDOUT: %SomeProtectedFunction.decl: %SomeProtectedFunction.type = fn_decl @SomeProtectedFunction [template = constants.%SomeProtectedFunction] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -563,12 +563,12 @@ class B { // CHECK:STDOUT: fn @SomeProtectedFunction() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc7_13.2: %i32 = converted %int_5, %.loc7_13.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc7_13.2: %i32 = converted %int_5, %.loc7_13.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: return %.loc7_13.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -597,7 +597,7 @@ class B { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Shape.elem: type = unbound_element_type %Shape, %i32 [template] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %i32} [template] -// CHECK:STDOUT: %complete_type.5e2: = complete_type_witness %struct_type.y [template] +// CHECK:STDOUT: %complete_type.0f9: = complete_type_witness %struct_type.y [template] // CHECK:STDOUT: %Square: type = class_type @Square [template] // CHECK:STDOUT: %Square.elem: type = unbound_element_type %Square, %Shape [template] // CHECK:STDOUT: %GetPosition.type: type = fn_type @GetPosition [template] @@ -608,7 +608,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -627,7 +627,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @Shape { // CHECK:STDOUT: %.loc5: %Shape.elem = field_decl y, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.y [template = constants.%complete_type.5e2] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.y [template = constants.%complete_type.0f9] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Shape @@ -926,13 +926,13 @@ class B { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Internal: type = class_type @Internal [template] @@ -948,8 +948,8 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -970,20 +970,20 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %int_5.loc5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc5: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc5: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc5: = bound_method %int_5.loc5, %impl.elem0.loc5 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc5: = specific_function %Convert.bound.loc5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc5: init %i32 = call %Convert.specific_fn.loc5(%int_5.loc5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc5_49.1: %i32 = value_of_initializer %int.convert_checked.loc5 [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc5_49.2: %i32 = converted %int_5.loc5, %.loc5_49.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked.loc5: init %i32 = call %Convert.specific_fn.loc5(%int_5.loc5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc5_49.1: %i32 = value_of_initializer %int.convert_checked.loc5 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc5_49.2: %i32 = converted %int_5.loc5, %.loc5_49.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %SOME_PROTECTED_CONSTANT: %i32 = bind_name SOME_PROTECTED_CONSTANT, %.loc5_49.2 // CHECK:STDOUT: %int_5.loc6: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc6: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc6: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc6: = bound_method %int_5.loc6, %impl.elem0.loc6 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc6: = specific_function %Convert.bound.loc6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %Convert.specific_fn.loc6(%int_5.loc6) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc6_45.1: %i32 = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc6_45.2: %i32 = converted %int_5.loc6, %.loc6_45.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %Convert.specific_fn.loc6(%int_5.loc6) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc6_45.1: %i32 = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc6_45.2: %i32 = converted %int_5.loc6, %.loc6_45.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %SOME_PRIVATE_CONSTANT: %i32 = bind_name SOME_PRIVATE_CONSTANT, %.loc6_45.2 // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: @@ -996,12 +996,12 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @Internal { // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc10_43.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc10_43.2: %i32 = converted %int_5, %.loc10_43.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc10_43.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc10_43.2: %i32 = converted %int_5, %.loc10_43.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %INTERNAL_CONSTANT: %i32 = bind_name INTERNAL_CONSTANT, %.loc10_43.2 // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: @@ -1073,7 +1073,7 @@ class B { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] @@ -1084,7 +1084,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1103,7 +1103,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -1148,7 +1148,7 @@ class B { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] @@ -1159,7 +1159,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1178,7 +1178,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A diff --git a/toolchain/check/testdata/class/init.carbon b/toolchain/check/testdata/class/init.carbon index e5165b5e4ec5..7244fb17d0e2 100644 --- a/toolchain/check/testdata/class/init.carbon +++ b/toolchain/check/testdata/class/init.carbon @@ -27,11 +27,11 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: %Class: type = class_type @Class [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Class.elem.0a0: type = unbound_element_type %Class, %i32 [template] +// CHECK:STDOUT: %Class.elem.c91: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [template] // CHECK:STDOUT: %Class.elem.0c0: type = unbound_element_type %Class, %ptr.e71 [template] // CHECK:STDOUT: %struct_type.n.next: type = struct_type {.n: %i32, .next: %ptr.e71} [template] -// CHECK:STDOUT: %complete_type.0a9: = complete_type_witness %struct_type.n.next [template] +// CHECK:STDOUT: %complete_type.78f: = complete_type_witness %struct_type.n.next [template] // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] // CHECK:STDOUT: %MakeReorder.type: type = fn_type @MakeReorder [template] @@ -41,7 +41,7 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -107,9 +107,9 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { -// CHECK:STDOUT: %.loc12: %Class.elem.0a0 = field_decl n, element0 [template] +// CHECK:STDOUT: %.loc12: %Class.elem.c91 = field_decl n, element0 [template] // CHECK:STDOUT: %.loc13: %Class.elem.0c0 = field_decl next, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n.next [template = constants.%complete_type.0a9] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n.next [template = constants.%complete_type.78f] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index 2e910fded1e5..e30c70eab28f 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -24,30 +24,30 @@ fn F() -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b.3de [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b.501 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -75,7 +75,7 @@ fn F() -> i32 { // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc12: %Class.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc13: %Class.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -90,21 +90,21 @@ fn F() -> i32 { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc17_26.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [template = constants.%Class] -// CHECK:STDOUT: %impl.elem0.loc17_26.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17_26.1: = bound_method %int_1, %impl.elem0.loc17_26.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc17_26.1: = specific_function %Convert.bound.loc17_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc17_26.1: init %i32 = call %Convert.specific_fn.loc17_26.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc17_26.2: init %i32 = converted %int_1, %int.convert_checked.loc17_26.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc17_26.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17_26.1: = bound_method %int_1, %impl.elem0.loc17_26.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc17_26.1: = specific_function %Convert.bound.loc17_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc17_26.1: init %i32 = call %Convert.specific_fn.loc17_26.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc17_26.2: init %i32 = converted %int_1, %int.convert_checked.loc17_26.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc17_26.3: ref %Class = temporary_storage // CHECK:STDOUT: %.loc17_26.4: ref %i32 = class_element_access %.loc17_26.3, element0 -// CHECK:STDOUT: %.loc17_26.5: init %i32 = initialize_from %.loc17_26.2 to %.loc17_26.4 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc17_26.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17_26.2: = bound_method %int_2, %impl.elem0.loc17_26.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc17_26.2: = specific_function %Convert.bound.loc17_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc17_26.2: init %i32 = call %Convert.specific_fn.loc17_26.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc17_26.6: init %i32 = converted %int_2, %int.convert_checked.loc17_26.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc17_26.5: init %i32 = initialize_from %.loc17_26.2 to %.loc17_26.4 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc17_26.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17_26.2: = bound_method %int_2, %impl.elem0.loc17_26.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc17_26.2: = specific_function %Convert.bound.loc17_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc17_26.2: init %i32 = call %Convert.specific_fn.loc17_26.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc17_26.6: init %i32 = converted %int_2, %int.convert_checked.loc17_26.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc17_26.7: ref %i32 = class_element_access %.loc17_26.3, element1 -// CHECK:STDOUT: %.loc17_26.8: init %i32 = initialize_from %.loc17_26.6 to %.loc17_26.7 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc17_26.8: init %i32 = initialize_from %.loc17_26.6 to %.loc17_26.7 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc17_26.9: init %Class = class_init (%.loc17_26.5, %.loc17_26.8), %.loc17_26.3 [template = constants.%Class.val] // CHECK:STDOUT: %.loc17_26.10: ref %Class = temporary %.loc17_26.3, %.loc17_26.9 // CHECK:STDOUT: %.loc17_28: ref %Class = converted %.loc17_26.1, %.loc17_26.10 diff --git a/toolchain/check/testdata/class/init_nested.carbon b/toolchain/check/testdata/class/init_nested.carbon index 3c1c2b2097fa..9e218f88d3fa 100644 --- a/toolchain/check/testdata/class/init_nested.carbon +++ b/toolchain/check/testdata/class/init_nested.carbon @@ -32,7 +32,7 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %i32 [template] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b [template] // CHECK:STDOUT: %MakeInner.type: type = fn_type @MakeInner [template] // CHECK:STDOUT: %MakeInner: %MakeInner.type = struct_value () [template] // CHECK:STDOUT: %Outer: type = class_type @Outer [template] @@ -45,7 +45,7 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -83,7 +83,7 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: class @Inner { // CHECK:STDOUT: %.loc12: %Inner.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc13: %Inner.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Inner diff --git a/toolchain/check/testdata/class/method.carbon b/toolchain/check/testdata/class/method.carbon index babec8d6af28..a411a798d3b4 100644 --- a/toolchain/check/testdata/class/method.carbon +++ b/toolchain/check/testdata/class/method.carbon @@ -70,8 +70,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] -// CHECK:STDOUT: %struct_type.k.990: type = struct_type {.k: %i32} [template] -// CHECK:STDOUT: %complete_type.631: = complete_type_witness %struct_type.k.990 [template] +// CHECK:STDOUT: %struct_type.k.0bf: type = struct_type {.k: %i32} [template] +// CHECK:STDOUT: %complete_type.954: = complete_type_witness %struct_type.k.0bf [template] // CHECK:STDOUT: %Call.type: type = fn_type @Call [template] // CHECK:STDOUT: %Call: %Call.type = struct_value () [template] // CHECK:STDOUT: %CallAlias.type: type = fn_type @CallAlias [template] @@ -80,14 +80,14 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %CallOnConstBoundMethod: %CallOnConstBoundMethod.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.k.240: type = struct_type {.k: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.c60) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.5d2) [template] // CHECK:STDOUT: %CallWithAddr.type: type = fn_type @CallWithAddr [template] // CHECK:STDOUT: %CallWithAddr: %CallWithAddr.type = struct_value () [template] // CHECK:STDOUT: %CallFThroughPointer.type: type = fn_type @CallFThroughPointer [template] @@ -104,8 +104,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -285,7 +285,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %F.ref: %F.type = name_ref F, %F.decl [template = constants.%F] // CHECK:STDOUT: %A: %F.type = bind_alias A, %F.decl [template = constants.%F] // CHECK:STDOUT: %.loc17: %Class.elem = field_decl k, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k.990 [template = constants.%complete_type.631] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k.0bf [template = constants.%complete_type.954] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -334,14 +334,14 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc35_18.1: %struct_type.k.240 = struct_literal (%int_1) // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [template = constants.%Class] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc35_18.2: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc35_18.2: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc35_18.3: ref %Class = temporary_storage // CHECK:STDOUT: %.loc35_18.4: ref %i32 = class_element_access %.loc35_18.3, element0 -// CHECK:STDOUT: %.loc35_18.5: init %i32 = initialize_from %.loc35_18.2 to %.loc35_18.4 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc35_18.5: init %i32 = initialize_from %.loc35_18.2 to %.loc35_18.4 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc35_18.6: init %Class = class_init (%.loc35_18.5), %.loc35_18.3 [template = constants.%Class.val] // CHECK:STDOUT: %.loc35_18.7: ref %Class = temporary %.loc35_18.3, %.loc35_18.6 // CHECK:STDOUT: %.loc35_20.1: ref %Class = converted %.loc35_18.1, %.loc35_18.7 diff --git a/toolchain/check/testdata/class/nested.carbon b/toolchain/check/testdata/class/nested.carbon index cdbee2136c31..af5e78b9c7c3 100644 --- a/toolchain/check/testdata/class/nested.carbon +++ b/toolchain/check/testdata/class/nested.carbon @@ -53,23 +53,23 @@ fn F(a: Outer*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Outer: type = class_type @Outer [template] -// CHECK:STDOUT: %F.type.3b3: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.d9a: %F.type.3b3 = struct_value () [template] +// CHECK:STDOUT: %F.type.288: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bd8: %F.type.288 = struct_value () [template] // CHECK:STDOUT: %Inner: type = class_type @Inner [template] -// CHECK:STDOUT: %ptr.0ea: type = ptr_type %Inner [template] -// CHECK:STDOUT: %Inner.elem.8be: type = unbound_element_type %Inner, %ptr.0ea [template] +// CHECK:STDOUT: %ptr.36a: type = ptr_type %Inner [template] +// CHECK:STDOUT: %Inner.elem.640: type = unbound_element_type %Inner, %ptr.36a [template] // CHECK:STDOUT: %ptr.5df: type = ptr_type %Outer [template] -// CHECK:STDOUT: %Inner.elem.18c: type = unbound_element_type %Inner, %ptr.5df [template] +// CHECK:STDOUT: %Inner.elem.c30: type = unbound_element_type %Inner, %ptr.5df [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %struct_type.pi.po.qi: type = struct_type {.pi: %ptr.0ea, .po: %ptr.5df, .qi: %ptr.0ea} [template] -// CHECK:STDOUT: %complete_type.32c: = complete_type_witness %struct_type.pi.po.qi [template] +// CHECK:STDOUT: %struct_type.pi.po.qi: type = struct_type {.pi: %ptr.36a, .po: %ptr.5df, .qi: %ptr.36a} [template] +// CHECK:STDOUT: %complete_type.7ae: = complete_type_witness %struct_type.pi.po.qi [template] // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] // CHECK:STDOUT: %Outer.elem.a16: type = unbound_element_type %Outer, %ptr.5df [template] -// CHECK:STDOUT: %Outer.elem.0fc: type = unbound_element_type %Outer, %ptr.0ea [template] -// CHECK:STDOUT: %struct_type.po.qo.pi: type = struct_type {.po: %ptr.5df, .qo: %ptr.5df, .pi: %ptr.0ea} [template] -// CHECK:STDOUT: %complete_type.d40: = complete_type_witness %struct_type.po.qo.pi [template] +// CHECK:STDOUT: %Outer.elem.fe9: type = unbound_element_type %Outer, %ptr.36a [template] +// CHECK:STDOUT: %struct_type.po.qo.pi: type = struct_type {.po: %ptr.5df, .qo: %ptr.5df, .pi: %ptr.36a} [template] +// CHECK:STDOUT: %complete_type.e99: = complete_type_witness %struct_type.po.qo.pi [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] // CHECK:STDOUT: } @@ -103,13 +103,13 @@ fn F(a: Outer*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Outer { -// CHECK:STDOUT: %F.decl: %F.type.3b3 = fn_decl @F.1 [template = constants.%F.d9a] {} {} +// CHECK:STDOUT: %F.decl: %F.type.288 = fn_decl @F.1 [template = constants.%F.bd8] {} {} // CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [template = constants.%Inner] {} {} // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] {} {} // CHECK:STDOUT: %.loc36: %Outer.elem.a16 = field_decl po, element0 [template] // CHECK:STDOUT: %.loc37: %Outer.elem.a16 = field_decl qo, element1 [template] -// CHECK:STDOUT: %.loc38: %Outer.elem.0fc = field_decl pi, element2 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.po.qo.pi [template = constants.%complete_type.d40] +// CHECK:STDOUT: %.loc38: %Outer.elem.fe9 = field_decl pi, element2 [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.po.qo.pi [template = constants.%complete_type.e99] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Outer @@ -123,11 +123,11 @@ fn F(a: Outer*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Inner { -// CHECK:STDOUT: %.loc19: %Inner.elem.8be = field_decl pi, element0 [template] -// CHECK:STDOUT: %.loc20: %Inner.elem.18c = field_decl po, element1 [template] -// CHECK:STDOUT: %.loc21: %Inner.elem.8be = field_decl qi, element2 [template] +// CHECK:STDOUT: %.loc19: %Inner.elem.640 = field_decl pi, element0 [template] +// CHECK:STDOUT: %.loc20: %Inner.elem.c30 = field_decl po, element1 [template] +// CHECK:STDOUT: %.loc21: %Inner.elem.640 = field_decl qi, element2 [template] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.pi.po.qi [template = constants.%complete_type.32c] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.pi.po.qi [template = constants.%complete_type.7ae] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Inner @@ -169,10 +169,10 @@ fn F(a: Outer*) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref.loc42: %ptr.5df = name_ref a, %a // CHECK:STDOUT: %.loc42_26: ref %Outer = deref %a.ref.loc42 -// CHECK:STDOUT: %pi.ref.loc42: %Outer.elem.0fc = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] -// CHECK:STDOUT: %.loc42_29.1: ref %ptr.0ea = class_element_access %.loc42_26, element2 -// CHECK:STDOUT: %.loc42_29.2: %ptr.0ea = bind_value %.loc42_29.1 -// CHECK:STDOUT: %b: %ptr.0ea = bind_name b, %.loc42_29.2 +// CHECK:STDOUT: %pi.ref.loc42: %Outer.elem.fe9 = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] +// CHECK:STDOUT: %.loc42_29.1: ref %ptr.36a = class_element_access %.loc42_26, element2 +// CHECK:STDOUT: %.loc42_29.2: %ptr.36a = bind_value %.loc42_29.1 +// CHECK:STDOUT: %b: %ptr.36a = bind_name b, %.loc42_29.2 // CHECK:STDOUT: %a.ref.loc44_3: %ptr.5df = name_ref a, %a // CHECK:STDOUT: %.loc44_4.1: ref %Outer = deref %a.ref.loc44_3 // CHECK:STDOUT: %po.ref.loc44: %Outer.elem.a16 = name_ref po, @Outer.%.loc36 [template = @Outer.%.loc36] @@ -187,39 +187,39 @@ fn F(a: Outer*) { // CHECK:STDOUT: assign %.loc45_4.2, %a.ref.loc45_11 // CHECK:STDOUT: %a.ref.loc46_3: %ptr.5df = name_ref a, %a // CHECK:STDOUT: %.loc46_4.1: ref %Outer = deref %a.ref.loc46_3 -// CHECK:STDOUT: %pi.ref.loc46_4: %Outer.elem.0fc = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] -// CHECK:STDOUT: %.loc46_4.2: ref %ptr.0ea = class_element_access %.loc46_4.1, element2 +// CHECK:STDOUT: %pi.ref.loc46_4: %Outer.elem.fe9 = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] +// CHECK:STDOUT: %.loc46_4.2: ref %ptr.36a = class_element_access %.loc46_4.1, element2 // CHECK:STDOUT: %a.ref.loc46_11: %ptr.5df = name_ref a, %a // CHECK:STDOUT: %.loc46_12.1: ref %Outer = deref %a.ref.loc46_11 -// CHECK:STDOUT: %pi.ref.loc46_12: %Outer.elem.0fc = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] -// CHECK:STDOUT: %.loc46_12.2: ref %ptr.0ea = class_element_access %.loc46_12.1, element2 -// CHECK:STDOUT: %.loc46_12.3: %ptr.0ea = bind_value %.loc46_12.2 +// CHECK:STDOUT: %pi.ref.loc46_12: %Outer.elem.fe9 = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] +// CHECK:STDOUT: %.loc46_12.2: ref %ptr.36a = class_element_access %.loc46_12.1, element2 +// CHECK:STDOUT: %.loc46_12.3: %ptr.36a = bind_value %.loc46_12.2 // CHECK:STDOUT: assign %.loc46_4.2, %.loc46_12.3 -// CHECK:STDOUT: %b.ref.loc47: %ptr.0ea = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc47: %ptr.36a = name_ref b, %b // CHECK:STDOUT: %.loc47_4.1: ref %Inner = deref %b.ref.loc47 -// CHECK:STDOUT: %po.ref.loc47: %Inner.elem.18c = name_ref po, @Inner.%.loc20 [template = @Inner.%.loc20] +// CHECK:STDOUT: %po.ref.loc47: %Inner.elem.c30 = name_ref po, @Inner.%.loc20 [template = @Inner.%.loc20] // CHECK:STDOUT: %.loc47_4.2: ref %ptr.5df = class_element_access %.loc47_4.1, element1 // CHECK:STDOUT: %a.ref.loc47: %ptr.5df = name_ref a, %a // CHECK:STDOUT: assign %.loc47_4.2, %a.ref.loc47 -// CHECK:STDOUT: %b.ref.loc48: %ptr.0ea = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc48: %ptr.36a = name_ref b, %b // CHECK:STDOUT: %.loc48_4.1: ref %Inner = deref %b.ref.loc48 -// CHECK:STDOUT: %pi.ref.loc48_4: %Inner.elem.8be = name_ref pi, @Inner.%.loc19 [template = @Inner.%.loc19] -// CHECK:STDOUT: %.loc48_4.2: ref %ptr.0ea = class_element_access %.loc48_4.1, element0 +// CHECK:STDOUT: %pi.ref.loc48_4: %Inner.elem.640 = name_ref pi, @Inner.%.loc19 [template = @Inner.%.loc19] +// CHECK:STDOUT: %.loc48_4.2: ref %ptr.36a = class_element_access %.loc48_4.1, element0 // CHECK:STDOUT: %a.ref.loc48: %ptr.5df = name_ref a, %a // CHECK:STDOUT: %.loc48_12.1: ref %Outer = deref %a.ref.loc48 -// CHECK:STDOUT: %pi.ref.loc48_12: %Outer.elem.0fc = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] -// CHECK:STDOUT: %.loc48_12.2: ref %ptr.0ea = class_element_access %.loc48_12.1, element2 -// CHECK:STDOUT: %.loc48_12.3: %ptr.0ea = bind_value %.loc48_12.2 +// CHECK:STDOUT: %pi.ref.loc48_12: %Outer.elem.fe9 = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] +// CHECK:STDOUT: %.loc48_12.2: ref %ptr.36a = class_element_access %.loc48_12.1, element2 +// CHECK:STDOUT: %.loc48_12.3: %ptr.36a = bind_value %.loc48_12.2 // CHECK:STDOUT: assign %.loc48_4.2, %.loc48_12.3 -// CHECK:STDOUT: %b.ref.loc49: %ptr.0ea = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc49: %ptr.36a = name_ref b, %b // CHECK:STDOUT: %.loc49_4.1: ref %Inner = deref %b.ref.loc49 -// CHECK:STDOUT: %qi.ref: %Inner.elem.8be = name_ref qi, @Inner.%.loc21 [template = @Inner.%.loc21] -// CHECK:STDOUT: %.loc49_4.2: ref %ptr.0ea = class_element_access %.loc49_4.1, element2 +// CHECK:STDOUT: %qi.ref: %Inner.elem.640 = name_ref qi, @Inner.%.loc21 [template = @Inner.%.loc21] +// CHECK:STDOUT: %.loc49_4.2: ref %ptr.36a = class_element_access %.loc49_4.1, element2 // CHECK:STDOUT: %a.ref.loc49: %ptr.5df = name_ref a, %a // CHECK:STDOUT: %.loc49_12.1: ref %Outer = deref %a.ref.loc49 -// CHECK:STDOUT: %pi.ref.loc49: %Outer.elem.0fc = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] -// CHECK:STDOUT: %.loc49_12.2: ref %ptr.0ea = class_element_access %.loc49_12.1, element2 -// CHECK:STDOUT: %.loc49_12.3: %ptr.0ea = bind_value %.loc49_12.2 +// CHECK:STDOUT: %pi.ref.loc49: %Outer.elem.fe9 = name_ref pi, @Outer.%.loc38 [template = @Outer.%.loc38] +// CHECK:STDOUT: %.loc49_12.2: ref %ptr.36a = class_element_access %.loc49_12.1, element2 +// CHECK:STDOUT: %.loc49_12.3: %ptr.36a = bind_value %.loc49_12.2 // CHECK:STDOUT: assign %.loc49_4.2, %.loc49_12.3 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index 1343046b635d..8b51f672bd56 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -31,7 +31,7 @@ fn G(o: Outer) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %i32 [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] @@ -42,7 +42,7 @@ fn G(o: Outer) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -96,7 +96,7 @@ fn G(o: Outer) { // CHECK:STDOUT: // CHECK:STDOUT: class @Inner { // CHECK:STDOUT: %.loc13: %Inner.elem = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Inner diff --git a/toolchain/check/testdata/class/no_prelude/export_name.carbon b/toolchain/check/testdata/class/no_prelude/export_name.carbon index 542d878cf9e3..28db482e9e15 100644 --- a/toolchain/check/testdata/class/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/class/no_prelude/export_name.carbon @@ -70,7 +70,7 @@ var c: C = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//base, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: } @@ -80,7 +80,7 @@ var c: C = {}; // CHECK:STDOUT: .C = %C // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -99,14 +99,14 @@ var c: C = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8db: = import_ref Main//export, inst19 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export, inst20 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import diff --git a/toolchain/check/testdata/class/no_prelude/extern.carbon b/toolchain/check/testdata/class/no_prelude/extern.carbon index d8cb699b63b1..3c88fb38b1da 100644 --- a/toolchain/check/testdata/class/no_prelude/extern.carbon +++ b/toolchain/check/testdata/class/no_prelude/extern.carbon @@ -495,12 +495,12 @@ extern class C; // CHECK:STDOUT: --- fail_import_extern_decl_then_decl.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//extern_decl, C, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//extern_decl, C, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: } @@ -508,12 +508,12 @@ extern class C; // CHECK:STDOUT: --- fail_import_decl_then_extern_decl.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//decl, C, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//decl, C, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: } @@ -521,12 +521,12 @@ extern class C; // CHECK:STDOUT: --- fail_import_extern_decl_then_def.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//extern_decl, C, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//extern_decl, C, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: } @@ -534,12 +534,12 @@ extern class C; // CHECK:STDOUT: --- fail_import_ownership_conflict.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//extern_decl, C, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//extern_decl, C, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: } @@ -547,12 +547,12 @@ extern class C; // CHECK:STDOUT: --- fail_todo_import_extern_decl_copy.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//extern_decl, C, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//extern_decl, C, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon b/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon index ae2eb83dbd4e..c503a5f1fd9b 100644 --- a/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon +++ b/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon @@ -66,27 +66,27 @@ fn F(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %GenericAndParams.type.c8d: type = generic_class_type @GenericAndParams.1 [template] // CHECK:STDOUT: %GenericAndParams.generic.1e4: %GenericAndParams.type.c8d = struct_value () [template] -// CHECK:STDOUT: %GenericAndParams.9d2: type = class_type @GenericAndParams.1, @GenericAndParams.1(%T) [symbolic] +// CHECK:STDOUT: %GenericAndParams.2ce: type = class_type @GenericAndParams.1, @GenericAndParams.1(%T) [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %GenericNoParams.0a9: type = class_type @GenericNoParams [template] -// CHECK:STDOUT: %GenericNoParams.495: type = class_type @GenericNoParams, @GenericNoParams(%T) [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %GenericNoParams.72f: type = class_type @GenericNoParams [template] +// CHECK:STDOUT: %GenericNoParams.fbf: type = class_type @GenericNoParams, @GenericNoParams(%T) [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %GenericAndParams.type.889: type = generic_class_type @GenericAndParams.2, @C(%T) [symbolic] -// CHECK:STDOUT: %GenericAndParams.generic.7c2: %GenericAndParams.type.889 = struct_value () [symbolic] -// CHECK:STDOUT: %GenericAndParams.b6f: type = class_type @GenericAndParams.2, @GenericAndParams.2(%T, %U) [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.3ce: type = generic_class_type @GenericAndParams.2, @C(%T) [symbolic] +// CHECK:STDOUT: %GenericAndParams.generic.54a: %GenericAndParams.type.3ce = struct_value () [symbolic] +// CHECK:STDOUT: %GenericAndParams.425: type = class_type @GenericAndParams.2, @GenericAndParams.2(%T, %U) [symbolic] // CHECK:STDOUT: %X: type = class_type @X [template] // CHECK:STDOUT: %NotGenericNoParams.val: %NotGenericNoParams = struct_value () [template] // CHECK:STDOUT: %NotGenericButParams.val: %NotGenericButParams = struct_value () [template] -// CHECK:STDOUT: %GenericAndParams.0da: type = class_type @GenericAndParams.1, @GenericAndParams.1(%X) [template] -// CHECK:STDOUT: %GenericAndParams.val.378: %GenericAndParams.0da = struct_value () [template] -// CHECK:STDOUT: %GenericAndParams.type.531: type = generic_class_type @GenericAndParams.2, @C(%X) [template] -// CHECK:STDOUT: %GenericAndParams.generic.6cc: %GenericAndParams.type.531 = struct_value () [template] -// CHECK:STDOUT: %GenericNoParams.val: %GenericNoParams.0a9 = struct_value () [template] -// CHECK:STDOUT: %GenericAndParams.ace: type = class_type @GenericAndParams.2, @GenericAndParams.2(%X, %X) [template] -// CHECK:STDOUT: %GenericAndParams.val.32a: %GenericAndParams.ace = struct_value () [template] +// CHECK:STDOUT: %GenericAndParams.2bb: type = class_type @GenericAndParams.1, @GenericAndParams.1(%X) [template] +// CHECK:STDOUT: %GenericAndParams.val.0b2: %GenericAndParams.2bb = struct_value () [template] +// CHECK:STDOUT: %GenericAndParams.type.c20: type = generic_class_type @GenericAndParams.2, @C(%X) [template] +// CHECK:STDOUT: %GenericAndParams.generic.a55: %GenericAndParams.type.c20 = struct_value () [template] +// CHECK:STDOUT: %GenericNoParams.val: %GenericNoParams.72f = struct_value () [template] +// CHECK:STDOUT: %GenericAndParams.91f: type = class_type @GenericAndParams.2, @GenericAndParams.2(%X, %X) [template] +// CHECK:STDOUT: %GenericAndParams.val.99b: %GenericAndParams.91f = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -123,12 +123,12 @@ fn F(T:! type) { // CHECK:STDOUT: %a: ref %NotGenericNoParams = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %NotGenericButParams = var b // CHECK:STDOUT: %b: ref %NotGenericButParams = bind_name b, %b.var -// CHECK:STDOUT: %c.var: ref %GenericAndParams.0da = var c -// CHECK:STDOUT: %c: ref %GenericAndParams.0da = bind_name c, %c.var -// CHECK:STDOUT: %d.var: ref %GenericNoParams.0a9 = var d -// CHECK:STDOUT: %d: ref %GenericNoParams.0a9 = bind_name d, %d.var -// CHECK:STDOUT: %e.var: ref %GenericAndParams.ace = var e -// CHECK:STDOUT: %e: ref %GenericAndParams.ace = bind_name e, %e.var +// CHECK:STDOUT: %c.var: ref %GenericAndParams.2bb = var c +// CHECK:STDOUT: %c: ref %GenericAndParams.2bb = bind_name c, %c.var +// CHECK:STDOUT: %d.var: ref %GenericNoParams.72f = var d +// CHECK:STDOUT: %d: ref %GenericNoParams.72f = bind_name d, %d.var +// CHECK:STDOUT: %e.var: ref %GenericAndParams.91f = var e +// CHECK:STDOUT: %e: ref %GenericAndParams.91f = bind_name e, %e.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NotGenericNoParams { @@ -157,7 +157,7 @@ fn F(T:! type) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%GenericAndParams.9d2 +// CHECK:STDOUT: .Self = constants.%GenericAndParams.2ce // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -167,12 +167,12 @@ fn F(T:! type) { // CHECK:STDOUT: %T.patt.loc8_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_9.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type: type = generic_class_type @GenericAndParams.2, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.889)] -// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.889) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.7c2)] +// CHECK:STDOUT: %GenericAndParams.type: type = generic_class_type @GenericAndParams.2, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.3ce)] +// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.3ce) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.54a)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %GenericNoParams.decl: type = class_decl @GenericNoParams [template = constants.%GenericNoParams.0a9] {} {} -// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.889) = class_decl @GenericAndParams.2 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.7c2)] { +// CHECK:STDOUT: %GenericNoParams.decl: type = class_decl @GenericNoParams [template = constants.%GenericNoParams.72f] {} {} +// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.3ce) = class_decl @GenericAndParams.2 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.54a)] { // CHECK:STDOUT: %U.patt.loc10_26.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc10_26.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc10_26.1, runtime_param [symbolic = %U.patt.loc10_26.2 (constants.%U.patt)] // CHECK:STDOUT: } { @@ -182,7 +182,7 @@ fn F(T:! type) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: .GenericNoParams = %GenericNoParams.decl // CHECK:STDOUT: .GenericAndParams = %GenericAndParams.decl // CHECK:STDOUT: complete_type_witness = %complete_type @@ -196,7 +196,7 @@ fn F(T:! type) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%GenericNoParams.495 +// CHECK:STDOUT: .Self = constants.%GenericNoParams.fbf // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -211,7 +211,7 @@ fn F(T:! type) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%GenericAndParams.b6f +// CHECK:STDOUT: .Self = constants.%GenericAndParams.425 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -235,16 +235,16 @@ fn F(T:! type) { // CHECK:STDOUT: %.loc16_34: init %NotGenericButParams = converted %.loc16_33.1, %.loc16_33.2 [template = constants.%NotGenericButParams.val] // CHECK:STDOUT: assign file.%b.var, %.loc16_34 // CHECK:STDOUT: %.loc17_31.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc17_31.2: init %GenericAndParams.0da = class_init (), file.%c.var [template = constants.%GenericAndParams.val.378] -// CHECK:STDOUT: %.loc17_32: init %GenericAndParams.0da = converted %.loc17_31.1, %.loc17_31.2 [template = constants.%GenericAndParams.val.378] +// CHECK:STDOUT: %.loc17_31.2: init %GenericAndParams.2bb = class_init (), file.%c.var [template = constants.%GenericAndParams.val.0b2] +// CHECK:STDOUT: %.loc17_32: init %GenericAndParams.2bb = converted %.loc17_31.1, %.loc17_31.2 [template = constants.%GenericAndParams.val.0b2] // CHECK:STDOUT: assign file.%c.var, %.loc17_32 // CHECK:STDOUT: %.loc18_32.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc18_32.2: init %GenericNoParams.0a9 = class_init (), file.%d.var [template = constants.%GenericNoParams.val] -// CHECK:STDOUT: %.loc18_33: init %GenericNoParams.0a9 = converted %.loc18_32.1, %.loc18_32.2 [template = constants.%GenericNoParams.val] +// CHECK:STDOUT: %.loc18_32.2: init %GenericNoParams.72f = class_init (), file.%d.var [template = constants.%GenericNoParams.val] +// CHECK:STDOUT: %.loc18_33: init %GenericNoParams.72f = converted %.loc18_32.1, %.loc18_32.2 [template = constants.%GenericNoParams.val] // CHECK:STDOUT: assign file.%d.var, %.loc18_33 // CHECK:STDOUT: %.loc19_36.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc19_36.2: init %GenericAndParams.ace = class_init (), file.%e.var [template = constants.%GenericAndParams.val.32a] -// CHECK:STDOUT: %.loc19_37: init %GenericAndParams.ace = converted %.loc19_36.1, %.loc19_36.2 [template = constants.%GenericAndParams.val.32a] +// CHECK:STDOUT: %.loc19_36.2: init %GenericAndParams.91f = class_init (), file.%e.var [template = constants.%GenericAndParams.val.99b] +// CHECK:STDOUT: %.loc19_37: init %GenericAndParams.91f = converted %.loc19_36.1, %.loc19_36.2 [template = constants.%GenericAndParams.val.99b] // CHECK:STDOUT: assign file.%e.var, %.loc19_37 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -280,8 +280,8 @@ fn F(T:! type) { // CHECK:STDOUT: %T.patt.loc8_9.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.531 -// CHECK:STDOUT: %GenericAndParams.generic => constants.%GenericAndParams.generic.6cc +// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.c20 +// CHECK:STDOUT: %GenericAndParams.generic => constants.%GenericAndParams.generic.a55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.2(constants.%X, constants.%X) { diff --git a/toolchain/check/testdata/class/no_prelude/implicit_import.carbon b/toolchain/check/testdata/class/no_prelude/implicit_import.carbon index c8122a153a85..a528487694d3 100644 --- a/toolchain/check/testdata/class/no_prelude/implicit_import.carbon +++ b/toolchain/check/testdata/class/no_prelude/implicit_import.carbon @@ -207,14 +207,14 @@ class B {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//redef_after_def, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//redef_after_def, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//redef_after_def, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//redef_after_def, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import @@ -263,14 +263,14 @@ class B {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//def_alias, C, unloaded -// CHECK:STDOUT: %import_ref.79a: type = import_ref Main//def_alias, B, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//def_alias, C, unloaded +// CHECK:STDOUT: %import_ref.8bd: type = import_ref Main//def_alias, B, loaded [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d -// CHECK:STDOUT: .B = imports.%import_ref.79a +// CHECK:STDOUT: .C = imports.%import_ref.f42 +// CHECK:STDOUT: .B = imports.%import_ref.8bd // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import diff --git a/toolchain/check/testdata/class/no_prelude/import_access.carbon b/toolchain/check/testdata/class/no_prelude/import_access.carbon index 96dadad50191..04e5401dd368 100644 --- a/toolchain/check/testdata/class/no_prelude/import_access.carbon +++ b/toolchain/check/testdata/class/no_prelude/import_access.carbon @@ -207,14 +207,14 @@ private class Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.9e9: type = import_ref Test//def, Def, loaded [template = constants.%Def] +// CHECK:STDOUT: %import_ref.c21: type = import_ref Test//def, Def, loaded [template = constants.%Def] // CHECK:STDOUT: %import_ref.8f2: = import_ref Test//def, loc4_20, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.4ce = import_ref Test//def, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Def [private] = imports.%import_ref.9e9 +// CHECK:STDOUT: .Def [private] = imports.%import_ref.c21 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test @@ -299,14 +299,14 @@ private class Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.570: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [template = constants.%ForwardWithDef] +// CHECK:STDOUT: %import_ref.142: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [template = constants.%ForwardWithDef] // CHECK:STDOUT: %import_ref.8f2: = import_ref Test//forward_with_def, loc6_23, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.414 = import_ref Test//forward_with_def, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .ForwardWithDef [private] = imports.%import_ref.570 +// CHECK:STDOUT: .ForwardWithDef [private] = imports.%import_ref.142 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test diff --git a/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon b/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon index b2804511c80c..17a2161ac51b 100644 --- a/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon +++ b/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon @@ -154,10 +154,10 @@ var x: () = D.C.F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//a, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//a, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//a, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//a, inst14 [no loc], unloaded -// CHECK:STDOUT: %import_ref.d18 = import_ref Main//a, loc5_10, unloaded +// CHECK:STDOUT: %import_ref.2cf = import_ref Main//a, loc5_10, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -165,13 +165,13 @@ var x: () = D.C.F(); // CHECK:STDOUT: .C = %C // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.2c4 -// CHECK:STDOUT: .F = imports.%import_ref.d18 +// CHECK:STDOUT: .F = imports.%import_ref.2cf // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -198,15 +198,15 @@ var x: () = D.C.F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//c, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//c, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8db: = import_ref Main//c, inst19 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//c, inst20 [indirect], unloaded -// CHECK:STDOUT: %import_ref.3b6 = import_ref Main//c, inst21 [indirect], unloaded +// CHECK:STDOUT: %import_ref.230 = import_ref Main//c, inst21 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .D = %D.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -215,8 +215,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: class @D { // CHECK:STDOUT: %package.ref: = name_ref package, package [template = package] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.4a7 [template = constants.%C] -// CHECK:STDOUT: %C: type = bind_alias C, imports.%import_ref.4a7 [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.06e [template = constants.%C] +// CHECK:STDOUT: %C: type = bind_alias C, imports.%import_ref.06e [template = constants.%C] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -228,7 +228,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: class @C [from "c.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6a9 -// CHECK:STDOUT: .F = imports.%import_ref.3b6 +// CHECK:STDOUT: .F = imports.%import_ref.230 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8db // CHECK:STDOUT: } // CHECK:STDOUT: @@ -257,15 +257,15 @@ var x: () = D.C.F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//a, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//a, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//a, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//a, inst14 [no loc], unloaded -// CHECK:STDOUT: %import_ref.a6e: %F.type = import_ref Main//a, loc5_10, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.943: %F.type = import_ref Main//a, loc5_10, loaded [template = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -276,7 +276,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: class @C [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.2c4 -// CHECK:STDOUT: .F = imports.%import_ref.a6e +// CHECK:STDOUT: .F = imports.%import_ref.943 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -284,8 +284,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.a6e [template = constants.%F] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.943 [template = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %F.call // CHECK:STDOUT: return @@ -303,15 +303,15 @@ var x: () = D.C.F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//c, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//c, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8db: = import_ref Main//c, inst19 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//c, inst20 [indirect], unloaded -// CHECK:STDOUT: %import_ref.861: %F.type = import_ref Main//c, inst21 [indirect], loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.5d3: %F.type = import_ref Main//c, inst21 [indirect], loaded [template = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -322,7 +322,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: class @C [from "c.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6a9 -// CHECK:STDOUT: .F = imports.%import_ref.861 +// CHECK:STDOUT: .F = imports.%import_ref.5d3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8db // CHECK:STDOUT: } // CHECK:STDOUT: @@ -330,8 +330,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.4a7 [template = constants.%C] -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.861 [template = constants.%F] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.06e [template = constants.%C] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.5d3 [template = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %F.call // CHECK:STDOUT: return @@ -349,15 +349,15 @@ var x: () = D.C.F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//c, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//c, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8db: = import_ref Main//c, inst19 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//c, inst20 [indirect], unloaded -// CHECK:STDOUT: %import_ref.861: %F.type = import_ref Main//c, inst21 [indirect], loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.5d3: %F.type = import_ref Main//c, inst21 [indirect], loaded [template = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -368,7 +368,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: class @C [from "c.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6a9 -// CHECK:STDOUT: .F = imports.%import_ref.861 +// CHECK:STDOUT: .F = imports.%import_ref.5d3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8db // CHECK:STDOUT: } // CHECK:STDOUT: @@ -376,8 +376,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.4a7 [template = constants.%C] -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.861 [template = constants.%F] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.06e [template = constants.%C] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.5d3 [template = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %F.call // CHECK:STDOUT: return @@ -396,18 +396,18 @@ var x: () = D.C.F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.275: type = import_ref Main//e, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.b0a: type = import_ref Main//e, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//e, loc8_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.cab = import_ref Main//e, inst16 [no loc], unloaded -// CHECK:STDOUT: %import_ref.08c: type = import_ref Main//e, loc7_9, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.bf1: type = import_ref Main//e, loc7_9, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f3: = import_ref Main//e, inst22 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.db8 = import_ref Main//e, inst23 [indirect], unloaded -// CHECK:STDOUT: %import_ref.e47: %F.type = import_ref Main//e, inst24 [indirect], loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.c85: %F.type = import_ref Main//e, inst24 [indirect], loaded [template = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .D = imports.%import_ref.275 +// CHECK:STDOUT: .D = imports.%import_ref.b0a // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -418,14 +418,14 @@ var x: () = D.C.F(); // CHECK:STDOUT: class @D [from "e.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.cab -// CHECK:STDOUT: .C = imports.%import_ref.08c +// CHECK:STDOUT: .C = imports.%import_ref.bf1 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "e.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.db8 -// CHECK:STDOUT: .F = imports.%import_ref.e47 +// CHECK:STDOUT: .F = imports.%import_ref.c85 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f3 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -433,9 +433,9 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.08c [template = constants.%C] -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.e47 [template = constants.%F] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0a [template = constants.%D] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.bf1 [template = constants.%C] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.c85 [template = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %F.call // CHECK:STDOUT: return @@ -454,18 +454,18 @@ var x: () = D.C.F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.275: type = import_ref Main//e, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.b0a: type = import_ref Main//e, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//e, loc8_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.cab = import_ref Main//e, inst16 [no loc], unloaded -// CHECK:STDOUT: %import_ref.08c: type = import_ref Main//e, loc7_9, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.bf1: type = import_ref Main//e, loc7_9, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f3: = import_ref Main//e, inst22 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.db8 = import_ref Main//e, inst23 [indirect], unloaded -// CHECK:STDOUT: %import_ref.e47: %F.type = import_ref Main//e, inst24 [indirect], loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.c85: %F.type = import_ref Main//e, inst24 [indirect], loaded [template = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .D = imports.%import_ref.275 +// CHECK:STDOUT: .D = imports.%import_ref.b0a // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -476,14 +476,14 @@ var x: () = D.C.F(); // CHECK:STDOUT: class @D [from "e.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.cab -// CHECK:STDOUT: .C = imports.%import_ref.08c +// CHECK:STDOUT: .C = imports.%import_ref.bf1 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "e.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.db8 -// CHECK:STDOUT: .F = imports.%import_ref.e47 +// CHECK:STDOUT: .F = imports.%import_ref.c85 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f3 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -491,9 +491,9 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.08c [template = constants.%C] -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.e47 [template = constants.%F] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0a [template = constants.%D] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.bf1 [template = constants.%C] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.c85 [template = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %F.call // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon index 1faf4b94a056..f811f7b6be14 100644 --- a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon @@ -364,7 +364,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.12f: type = class_type @.1, @.1(%a) [symbolic] +// CHECK:STDOUT: %.cb8: type = class_type @.1, @.1(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -416,7 +416,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.12f +// CHECK:STDOUT: .Self = constants.%.cb8 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -587,16 +587,16 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//two_file, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.930: type = import_ref Main//two_file, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//two_file, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.05a: type = import_ref Main//two_file, D, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//two_file, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac -// CHECK:STDOUT: .D = imports.%import_ref.930 +// CHECK:STDOUT: .C = imports.%import_ref.3b0 +// CHECK:STDOUT: .D = imports.%import_ref.05a // CHECK:STDOUT: .Foo = %Foo.decl // CHECK:STDOUT: .Bar = %Bar.decl // CHECK:STDOUT: } @@ -607,7 +607,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc4, runtime_param [symbolic = constants.%a.patt] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param runtime_param -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %a.loc4: %C = bind_symbolic_name a, 0, %a.param [symbolic = constants.%a] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type = class_decl @Bar [template = constants.%Bar.generic] { @@ -615,7 +615,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc5, runtime_param [symbolic = constants.%a.patt] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param runtime_param -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.930 [template = constants.%C] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.05a [template = constants.%C] // CHECK:STDOUT: %a.loc5: %C = bind_symbolic_name a, 0, %a.param [symbolic = constants.%a] // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -680,7 +680,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %b.patt: %C = symbolic_binding_pattern b, 0 [symbolic] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.374: type = class_type @.1, @.1(%b) [symbolic] +// CHECK:STDOUT: %.cb8: type = class_type @.1, @.1(%b) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -735,7 +735,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.374 +// CHECK:STDOUT: .Self = constants.%.cb8 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -762,7 +762,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.1c1: type = class_type @.1, @.1(%a) [symbolic] +// CHECK:STDOUT: %.cb8: type = class_type @.1, @.1(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -817,7 +817,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.1c1 +// CHECK:STDOUT: .Self = constants.%.cb8 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -844,7 +844,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.1c1: type = class_type @.1, @.1(%a) [symbolic] +// CHECK:STDOUT: %.cb8: type = class_type @.1, @.1(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -899,7 +899,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.1c1 +// CHECK:STDOUT: .Self = constants.%.cb8 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -976,21 +976,21 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//alias_two_file, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//alias_two_file, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//alias_two_file, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .Foo = %Foo.decl // CHECK:STDOUT: .D = %D // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %Foo.decl: %Foo.type = class_decl @Foo [template = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt.loc6: %C = symbolic_binding_pattern a, 0 [symbolic = constants.%a.patt] // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc6, runtime_param [symbolic = constants.%a.patt] @@ -1040,7 +1040,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.5f5: type = class_type @.1, @.1(%a) [symbolic] +// CHECK:STDOUT: %.8e9: type = class_type @.1, @.1(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1099,7 +1099,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.5f5 +// CHECK:STDOUT: .Self = constants.%.8e9 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1126,7 +1126,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_tuple.type} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template] // CHECK:STDOUT: %.type: type = fn_type @.1 [template] -// CHECK:STDOUT: %.bf1: %.type = struct_value () [template] +// CHECK:STDOUT: %.ad0: %.type = struct_value () [template] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1135,7 +1135,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Base = %Base.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Base.decl: type = class_decl @Base [template = constants.%Base] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.bf1] { +// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.ad0] { // CHECK:STDOUT: %self.patt: %ptr.11f = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.11f = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc16_11: auto = addr_pattern %self.param_patt diff --git a/toolchain/check/testdata/class/raw_self.carbon b/toolchain/check/testdata/class/raw_self.carbon index 9e8be6b18d38..dd4ce9b7d877 100644 --- a/toolchain/check/testdata/class/raw_self.carbon +++ b/toolchain/check/testdata/class/raw_self.carbon @@ -32,17 +32,17 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -80,15 +80,15 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %self.param_patt.loc21_16: %Class = value_param_pattern %self.patt.loc21_12, runtime_param0 // CHECK:STDOUT: %self.patt.loc21_24: %i32 = binding_pattern r#self // CHECK:STDOUT: %self.param_patt.loc21_30: %i32 = value_param_pattern %self.patt.loc21_24, runtime_param1 -// CHECK:STDOUT: %return.patt: %tuple.type.471 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.471 = out_param_pattern %return.patt, runtime_param2 +// CHECK:STDOUT: %return.patt: %tuple.type.d07 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.d07 = out_param_pattern %return.patt, runtime_param2 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc21_41: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc21_41: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc21_46: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc21_46: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc21_49.1: %tuple.type.24b = tuple_literal (%i32.loc21_41, %i32.loc21_46) -// CHECK:STDOUT: %.loc21_49.2: type = converted %.loc21_49.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc21_49.2: type = converted %.loc21_49.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: %self.param.loc21_16: %Class = value_param runtime_param0 // CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Class [template = constants.%Class] // CHECK:STDOUT: %self.loc21_12: %Class = bind_name self, %self.param.loc21_16 @@ -98,8 +98,8 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %i32.loc21_32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc21_24: %i32 = bind_name r#self, %self.param.loc21_30 -// CHECK:STDOUT: %return.param.loc21: ref %tuple.type.471 = out_param runtime_param2 -// CHECK:STDOUT: %return.loc21: ref %tuple.type.471 = return_slot %return.param.loc21 +// CHECK:STDOUT: %return.param.loc21: ref %tuple.type.d07 = out_param runtime_param2 +// CHECK:STDOUT: %return.loc21: ref %tuple.type.d07 = return_slot %return.param.loc21 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -129,15 +129,15 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %self.param_patt.loc21_16: %Class = value_param_pattern %self.patt.loc21_12, runtime_param0 // CHECK:STDOUT: %self.patt.loc21_24: %i32 = binding_pattern r#self // CHECK:STDOUT: %self.param_patt.loc21_30: %i32 = value_param_pattern %self.patt.loc21_24, runtime_param1 -// CHECK:STDOUT: %return.patt: %tuple.type.471 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.471 = out_param_pattern %return.patt, runtime_param2 +// CHECK:STDOUT: %return.patt: %tuple.type.d07 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.d07 = out_param_pattern %return.patt, runtime_param2 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc13_37: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13_37: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc13_42: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13_42: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc13_45.1: %tuple.type.24b = tuple_literal (%i32.loc13_37, %i32.loc13_42) -// CHECK:STDOUT: %.loc13_45.2: type = converted %.loc13_45.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc13_45.2: type = converted %.loc13_45.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: %self.param.loc13_12: %Class = value_param runtime_param0 // CHECK:STDOUT: %Self.ref.loc13: type = name_ref Self, constants.%Class [template = constants.%Class] // CHECK:STDOUT: %self.loc13_8: %Class = bind_name self, %self.param.loc13_12 @@ -147,11 +147,11 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %i32.loc13_28: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc13_20: %i32 = bind_name r#self, %self.param.loc13_26 -// CHECK:STDOUT: %return.param.loc13: ref %tuple.type.471 = out_param runtime_param2 -// CHECK:STDOUT: %return.loc13: ref %tuple.type.471 = return_slot %return.param.loc13 +// CHECK:STDOUT: %return.param.loc13: ref %tuple.type.d07 = out_param runtime_param2 +// CHECK:STDOUT: %return.loc13: ref %tuple.type.d07 = return_slot %return.param.loc13 // CHECK:STDOUT: } // CHECK:STDOUT: %.loc14: %Class.elem = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -172,20 +172,20 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G[%self.param_patt.loc21_16: %Class](%self.param_patt.loc21_30: %i32) -> %return.param_patt: %tuple.type.471 { +// CHECK:STDOUT: fn @G[%self.param_patt.loc21_16: %Class](%self.param_patt.loc21_30: %i32) -> %return.param_patt: %tuple.type.d07 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref.loc22_11: %Class = name_ref self, %self.loc21_12 // CHECK:STDOUT: %n.ref: %Class.elem = name_ref n, @Class.%.loc14 [template = @Class.%.loc14] // CHECK:STDOUT: %.loc22_15.1: ref %i32 = class_element_access %self.ref.loc22_11, element0 // CHECK:STDOUT: %.loc22_15.2: %i32 = bind_value %.loc22_15.1 // CHECK:STDOUT: %self.ref.loc22_19: %i32 = name_ref r#self, %self.loc21_24 -// CHECK:STDOUT: %.loc22_25.1: %tuple.type.471 = tuple_literal (%.loc22_15.2, %self.ref.loc22_19) +// CHECK:STDOUT: %.loc22_25.1: %tuple.type.d07 = tuple_literal (%.loc22_15.2, %self.ref.loc22_19) // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return.loc21, element0 // CHECK:STDOUT: %.loc22_25.2: init %i32 = initialize_from %.loc22_15.2 to %tuple.elem0 // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return.loc21, element1 // CHECK:STDOUT: %.loc22_25.3: init %i32 = initialize_from %self.ref.loc22_19 to %tuple.elem1 -// CHECK:STDOUT: %.loc22_25.4: init %tuple.type.471 = tuple_init (%.loc22_25.2, %.loc22_25.3) to %return.loc21 -// CHECK:STDOUT: %.loc22_26: init %tuple.type.471 = converted %.loc22_25.1, %.loc22_25.4 +// CHECK:STDOUT: %.loc22_25.4: init %tuple.type.d07 = tuple_init (%.loc22_25.2, %.loc22_25.3) to %return.loc21 +// CHECK:STDOUT: %.loc22_26: init %tuple.type.d07 = converted %.loc22_25.1, %.loc22_25.4 // CHECK:STDOUT: return %.loc22_26 to %return.loc21 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/raw_self_type.carbon b/toolchain/check/testdata/class/raw_self_type.carbon index a6bdb0e67e95..9444489d4c01 100644 --- a/toolchain/check/testdata/class/raw_self_type.carbon +++ b/toolchain/check/testdata/class/raw_self_type.carbon @@ -27,15 +27,15 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [template] -// CHECK:STDOUT: %F.type.945: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.ffd: %F.type.945 = struct_value () [template] +// CHECK:STDOUT: %F.type.f1b: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.1f2: %F.type.f1b = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [template] // CHECK:STDOUT: %MemberNamedSelf: type = class_type @MemberNamedSelf [template] // CHECK:STDOUT: %Self: type = class_type @Self [template] -// CHECK:STDOUT: %F.type.db9: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.7cf: %F.type.db9 = struct_value () [template] +// CHECK:STDOUT: %F.type.648: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.e97: %F.type.648 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -54,7 +54,7 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [template = constants.%Class] {} {} // CHECK:STDOUT: %MemberNamedSelf.decl: type = class_decl @MemberNamedSelf [template = constants.%MemberNamedSelf] {} {} -// CHECK:STDOUT: %F.decl: %F.type.db9 = fn_decl @F.2 [template = constants.%F.7cf] { +// CHECK:STDOUT: %F.decl: %F.type.648 = fn_decl @F.2 [template = constants.%F.e97] { // CHECK:STDOUT: %x.patt: %MemberNamedSelf = binding_pattern x // CHECK:STDOUT: %x.param_patt: %MemberNamedSelf = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %y.patt: %Self = binding_pattern y @@ -70,7 +70,7 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { -// CHECK:STDOUT: %F.decl: %F.type.945 = fn_decl @F.1 [template = constants.%F.ffd] {} {} +// CHECK:STDOUT: %F.decl: %F.type.f1b = fn_decl @F.1 [template = constants.%F.1f2] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -81,7 +81,7 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: // CHECK:STDOUT: class @MemberNamedSelf { // CHECK:STDOUT: %Self.decl: type = class_decl @Self [template = constants.%Self] {} {} -// CHECK:STDOUT: %F.decl: %F.type.db9 = fn_decl @F.2 [template = constants.%F.7cf] { +// CHECK:STDOUT: %F.decl: %F.type.648 = fn_decl @F.2 [template = constants.%F.e97] { // CHECK:STDOUT: %x.patt: %MemberNamedSelf = binding_pattern x // CHECK:STDOUT: %x.param_patt: %MemberNamedSelf = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %y.patt: %Self = binding_pattern y diff --git a/toolchain/check/testdata/class/reenter_scope.carbon b/toolchain/check/testdata/class/reenter_scope.carbon index c59437603e92..658f5c0a4a60 100644 --- a/toolchain/check/testdata/class/reenter_scope.carbon +++ b/toolchain/check/testdata/class/reenter_scope.carbon @@ -34,7 +34,7 @@ fn Class.F() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/reorder.carbon b/toolchain/check/testdata/class/reorder.carbon index 968be74b56aa..330a4544f641 100644 --- a/toolchain/check/testdata/class/reorder.carbon +++ b/toolchain/check/testdata/class/reorder.carbon @@ -31,19 +31,19 @@ class Class { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -99,12 +99,12 @@ class Class { // CHECK:STDOUT: fn @F() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc17_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc17_13.2: %i32 = converted %int_1, %.loc17_13.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc17_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc17_13.2: %i32 = converted %int_1, %.loc17_13.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc17_13.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/reorder_qualified.carbon b/toolchain/check/testdata/class/reorder_qualified.carbon index cc5b79904265..51416315e702 100644 --- a/toolchain/check/testdata/class/reorder_qualified.carbon +++ b/toolchain/check/testdata/class/reorder_qualified.carbon @@ -58,60 +58,60 @@ class A { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %i32 [template] -// CHECK:STDOUT: %struct_type.b.fc0: type = struct_type {.b: %i32} [template] -// CHECK:STDOUT: %complete_type.d62: = complete_type_witness %struct_type.b.fc0 [template] +// CHECK:STDOUT: %struct_type.b.0a3: type = struct_type {.b: %i32} [template] +// CHECK:STDOUT: %complete_type.ba8: = complete_type_witness %struct_type.b.0a3 [template] // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %DF.type: type = fn_type @DF [template] // CHECK:STDOUT: %DF: %DF.type = struct_value () [template] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %i32 [template] -// CHECK:STDOUT: %struct_type.d.227: type = struct_type {.d: %i32} [template] -// CHECK:STDOUT: %complete_type.23b: = complete_type_witness %struct_type.d.227 [template] +// CHECK:STDOUT: %struct_type.d.b7b: type = struct_type {.d: %i32} [template] +// CHECK:STDOUT: %complete_type.860: = complete_type_witness %struct_type.d.b7b [template] // CHECK:STDOUT: %CF.type: type = fn_type @CF [template] // CHECK:STDOUT: %CF: %CF.type = struct_value () [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [template] -// CHECK:STDOUT: %struct_type.c.8db: type = struct_type {.c: %i32} [template] -// CHECK:STDOUT: %complete_type.da4: = complete_type_witness %struct_type.c.8db [template] +// CHECK:STDOUT: %struct_type.c.b66: type = struct_type {.c: %i32} [template] +// CHECK:STDOUT: %complete_type.836: = complete_type_witness %struct_type.c.b66 [template] // CHECK:STDOUT: %AF.type: type = fn_type @AF [template] // CHECK:STDOUT: %AF: %AF.type = struct_value () [template] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [template] -// CHECK:STDOUT: %struct_type.a.7cc: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a.7cc [template] +// CHECK:STDOUT: %struct_type.a.ba9: type = struct_type {.a: %i32} [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a.ba9 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.c60) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.5d2) [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.b.a15: type = struct_type {.b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %B.val: %B = struct_value (%int_2.166) [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %B.val: %B = struct_value (%int_2.ef8) [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %struct_type.c.5b8: type = struct_type {.c: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_3.25b) [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %C.val: %C = struct_value (%int_3.822) [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] // CHECK:STDOUT: %struct_type.d.3ea: type = struct_type {.d: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %D.val: %D = struct_value (%int_4.2ec) [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %D.val: %D = struct_value (%int_4.940) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -131,7 +131,7 @@ class A { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %AF.decl: %AF.type = fn_decl @AF [template = constants.%AF] {} {} // CHECK:STDOUT: %.loc46: %A.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.7cc [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.ba9 [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A @@ -145,7 +145,7 @@ class A { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %BF.decl: %BF.type = fn_decl @BF [template = constants.%BF] {} {} // CHECK:STDOUT: %.loc16: %B.elem = field_decl b, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.b.fc0 [template = constants.%complete_type.d62] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.b.0a3 [template = constants.%complete_type.ba8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B @@ -160,7 +160,7 @@ class A { // CHECK:STDOUT: %DF.decl: %DF.type = fn_decl @DF [template = constants.%DF] {} {} // CHECK:STDOUT: %CF.decl: %CF.type = fn_decl @CF [template = constants.%CF] {} {} // CHECK:STDOUT: %.loc42: %C.elem = field_decl c, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.c.8db [template = constants.%complete_type.da4] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.c.b66 [template = constants.%complete_type.836] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C @@ -174,7 +174,7 @@ class A { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} // CHECK:STDOUT: %DF.decl: %DF.type = fn_decl @DF [template = constants.%DF] {} {} // CHECK:STDOUT: %.loc24: %D.elem = field_decl d, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.d.227 [template = constants.%complete_type.23b] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.d.b7b [template = constants.%complete_type.860] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D @@ -194,13 +194,13 @@ class A { // CHECK:STDOUT: %a: ref %A = bind_name a, %a.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc29_25.1: %struct_type.a.a6c = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0.loc29: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc29: = bound_method %int_1, %impl.elem0.loc29 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc29: = specific_function %Convert.bound.loc29, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc29: init %i32 = call %Convert.specific_fn.loc29(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc29_25.2: init %i32 = converted %int_1, %int.convert_checked.loc29 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc29: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc29: = bound_method %int_1, %impl.elem0.loc29 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc29: = specific_function %Convert.bound.loc29, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc29: init %i32 = call %Convert.specific_fn.loc29(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc29_25.2: init %i32 = converted %int_1, %int.convert_checked.loc29 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc29_25.3: ref %i32 = class_element_access %a.var, element0 -// CHECK:STDOUT: %.loc29_25.4: init %i32 = initialize_from %.loc29_25.2 to %.loc29_25.3 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc29_25.4: init %i32 = initialize_from %.loc29_25.2 to %.loc29_25.3 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc29_25.5: init %A = class_init (%.loc29_25.4), %a.var [template = constants.%A.val] // CHECK:STDOUT: %.loc29_26: init %A = converted %.loc29_25.1, %.loc29_25.5 [template = constants.%A.val] // CHECK:STDOUT: assign %a.var, %.loc29_26 @@ -208,13 +208,13 @@ class A { // CHECK:STDOUT: %b: ref %B = bind_name b, %b.var // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc30_25.1: %struct_type.b.a15 = struct_literal (%int_2) -// CHECK:STDOUT: %impl.elem0.loc30: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc30: = bound_method %int_2, %impl.elem0.loc30 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc30: = specific_function %Convert.bound.loc30, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc30: init %i32 = call %Convert.specific_fn.loc30(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc30_25.2: init %i32 = converted %int_2, %int.convert_checked.loc30 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc30: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc30: = bound_method %int_2, %impl.elem0.loc30 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc30: = specific_function %Convert.bound.loc30, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc30: init %i32 = call %Convert.specific_fn.loc30(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc30_25.2: init %i32 = converted %int_2, %int.convert_checked.loc30 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc30_25.3: ref %i32 = class_element_access %b.var, element0 -// CHECK:STDOUT: %.loc30_25.4: init %i32 = initialize_from %.loc30_25.2 to %.loc30_25.3 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc30_25.4: init %i32 = initialize_from %.loc30_25.2 to %.loc30_25.3 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc30_25.5: init %B = class_init (%.loc30_25.4), %b.var [template = constants.%B.val] // CHECK:STDOUT: %.loc30_26: init %B = converted %.loc30_25.1, %.loc30_25.5 [template = constants.%B.val] // CHECK:STDOUT: assign %b.var, %.loc30_26 @@ -222,13 +222,13 @@ class A { // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc31_25.1: %struct_type.c.5b8 = struct_literal (%int_3) -// CHECK:STDOUT: %impl.elem0.loc31: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc31: = bound_method %int_3, %impl.elem0.loc31 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc31: = specific_function %Convert.bound.loc31, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc31: init %i32 = call %Convert.specific_fn.loc31(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc31_25.2: init %i32 = converted %int_3, %int.convert_checked.loc31 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc31: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc31: = bound_method %int_3, %impl.elem0.loc31 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc31: = specific_function %Convert.bound.loc31, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc31: init %i32 = call %Convert.specific_fn.loc31(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc31_25.2: init %i32 = converted %int_3, %int.convert_checked.loc31 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc31_25.3: ref %i32 = class_element_access %c.var, element0 -// CHECK:STDOUT: %.loc31_25.4: init %i32 = initialize_from %.loc31_25.2 to %.loc31_25.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc31_25.4: init %i32 = initialize_from %.loc31_25.2 to %.loc31_25.3 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc31_25.5: init %C = class_init (%.loc31_25.4), %c.var [template = constants.%C.val] // CHECK:STDOUT: %.loc31_26: init %C = converted %.loc31_25.1, %.loc31_25.5 [template = constants.%C.val] // CHECK:STDOUT: assign %c.var, %.loc31_26 @@ -236,13 +236,13 @@ class A { // CHECK:STDOUT: %d: ref %D = bind_name d, %d.var // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %.loc32_25.1: %struct_type.d.3ea = struct_literal (%int_4) -// CHECK:STDOUT: %impl.elem0.loc32: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc32: = bound_method %int_4, %impl.elem0.loc32 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc32: = specific_function %Convert.bound.loc32, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc32: init %i32 = call %Convert.specific_fn.loc32(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc32_25.2: init %i32 = converted %int_4, %int.convert_checked.loc32 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc32: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc32: = bound_method %int_4, %impl.elem0.loc32 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc32: = specific_function %Convert.bound.loc32, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc32: init %i32 = call %Convert.specific_fn.loc32(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc32_25.2: init %i32 = converted %int_4, %int.convert_checked.loc32 [template = constants.%int_4.940] // CHECK:STDOUT: %.loc32_25.3: ref %i32 = class_element_access %d.var, element0 -// CHECK:STDOUT: %.loc32_25.4: init %i32 = initialize_from %.loc32_25.2 to %.loc32_25.3 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %.loc32_25.4: init %i32 = initialize_from %.loc32_25.2 to %.loc32_25.3 [template = constants.%int_4.940] // CHECK:STDOUT: %.loc32_25.5: init %D = class_init (%.loc32_25.4), %d.var [template = constants.%D.val] // CHECK:STDOUT: %.loc32_26: init %D = converted %.loc32_25.1, %.loc32_25.5 [template = constants.%D.val] // CHECK:STDOUT: assign %d.var, %.loc32_26 diff --git a/toolchain/check/testdata/class/scope.carbon b/toolchain/check/testdata/class/scope.carbon index cd688780771a..12d64ab6734b 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -33,34 +33,34 @@ fn Run() { // CHECK:STDOUT: %Class: type = class_type @Class [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %F.type.945: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.ffd: %F.type.945 = struct_value () [template] +// CHECK:STDOUT: %F.type.f1b: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.1f2: %F.type.f1b = struct_value () [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: %Run.type: type = fn_type @Run [template] // CHECK:STDOUT: %Run: %Run.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -88,7 +88,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { -// CHECK:STDOUT: %F.decl: %F.type.945 = fn_decl @F.1 [template = constants.%F.ffd] { +// CHECK:STDOUT: %F.decl: %F.type.f1b = fn_decl @F.1 [template = constants.%F.1f2] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -118,18 +118,18 @@ fn Run() { // CHECK:STDOUT: fn @F.1() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_13.2: %i32 = converted %int_1, %.loc13_13.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_13.2: %i32 = converted %int_1, %.loc13_13.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc13_13.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type.945 = name_ref F, @Class.%F.decl [template = constants.%F.ffd] +// CHECK:STDOUT: %F.ref: %F.type.f1b = name_ref F, @Class.%F.decl [template = constants.%F.1f2] // CHECK:STDOUT: %F.call: init %i32 = call %F.ref() // CHECK:STDOUT: %.loc17_15.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc17_15.2: %i32 = converted %F.call, %.loc17_15.1 @@ -139,12 +139,12 @@ fn Run() { // CHECK:STDOUT: fn @F.2() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc22_11.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc22_11.2: %i32 = converted %int_2, %.loc22_11.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc22_11.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc22_11.2: %i32 = converted %int_2, %.loc22_11.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: return %.loc22_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -158,7 +158,7 @@ fn Run() { // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [template = constants.%Class] -// CHECK:STDOUT: %F.ref.loc27: %F.type.945 = name_ref F, @Class.%F.decl [template = constants.%F.ffd] +// CHECK:STDOUT: %F.ref.loc27: %F.type.f1b = name_ref F, @Class.%F.decl [template = constants.%F.1f2] // CHECK:STDOUT: %F.call.loc27: init %i32 = call %F.ref.loc27() // CHECK:STDOUT: assign %b.var, %F.call.loc27 // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/class/self.carbon b/toolchain/check/testdata/class/self.carbon index 95e77e623c26..9f7605da0971 100644 --- a/toolchain/check/testdata/class/self.carbon +++ b/toolchain/check/testdata/class/self.carbon @@ -54,12 +54,12 @@ class Class { // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -140,7 +140,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 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class @@ -181,7 +181,7 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/self_conversion.carbon b/toolchain/check/testdata/class/self_conversion.carbon index 20ced6ef37bb..0b0265d40f8f 100644 --- a/toolchain/check/testdata/class/self_conversion.carbon +++ b/toolchain/check/testdata/class/self_conversion.carbon @@ -41,7 +41,7 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %complete_type.297: = complete_type_witness %struct_type.a [template] +// CHECK:STDOUT: %complete_type.fd7: = complete_type_witness %struct_type.a [template] // CHECK:STDOUT: %Derived: type = class_type @Derived [template] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [template] // CHECK:STDOUT: %SelfBase.type: type = fn_type @SelfBase [template] @@ -52,13 +52,13 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %struct_type.base.b1e: type = struct_type {.base: %Base} [template] // CHECK:STDOUT: %complete_type.15c: = complete_type_witness %struct_type.base.b1e [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %ptr.404: type = ptr_type %Derived [template] // CHECK:STDOUT: %Call.type: type = fn_type @Call [template] // CHECK:STDOUT: %Call: %Call.type = struct_value () [template] @@ -66,8 +66,8 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -130,7 +130,7 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %.loc12: %Base.elem = field_decl a, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.297] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [template = constants.%complete_type.fd7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base @@ -194,11 +194,11 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %a.ref: %Base.elem = name_ref a, @Base.%.loc12 [template = @Base.%.loc12] // CHECK:STDOUT: %.loc27_10: ref %i32 = class_element_access %.loc27_4, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc27_13: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc27_13: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %.loc27_10, %.loc27_13 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/self_type.carbon b/toolchain/check/testdata/class/self_type.carbon index c07dc3f39634..841bdbea25ba 100644 --- a/toolchain/check/testdata/class/self_type.carbon +++ b/toolchain/check/testdata/class/self_type.carbon @@ -40,7 +40,7 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/static_method.carbon b/toolchain/check/testdata/class/static_method.carbon index e542259e3177..c24129b5d92a 100644 --- a/toolchain/check/testdata/class/static_method.carbon +++ b/toolchain/check/testdata/class/static_method.carbon @@ -33,7 +33,7 @@ fn Run() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/syntactic_merge_literal.carbon b/toolchain/check/testdata/class/syntactic_merge_literal.carbon index b2901aa3191f..20f49adc0429 100644 --- a/toolchain/check/testdata/class/syntactic_merge_literal.carbon +++ b/toolchain/check/testdata/class/syntactic_merge_literal.carbon @@ -39,20 +39,20 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.patt: %i32 = symbolic_binding_pattern a, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.dff: type = class_type @C, @C(%a) [symbolic] +// CHECK:STDOUT: %C.506: type = class_type @C, @C(%a) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_1000.ff9: Core.IntLiteral = int_value 1000 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1000.ff9, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1000.ff9, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1000.0a4: %i32 = int_value 1000 [template] -// CHECK:STDOUT: %C.387: type = class_type @C, @C(%int_1000.0a4) [template] -// CHECK:STDOUT: %b: %C.387 = bind_symbolic_name b, 0 [symbolic] -// CHECK:STDOUT: %b.patt: %C.387 = symbolic_binding_pattern b, 0 [symbolic] +// CHECK:STDOUT: %int_1000.1b6: %i32 = int_value 1000 [template] +// CHECK:STDOUT: %C.262: type = class_type @C, @C(%int_1000.1b6) [template] +// CHECK:STDOUT: %b: %C.262 = bind_symbolic_name b, 0 [symbolic] +// CHECK:STDOUT: %b.patt: %C.262 = symbolic_binding_pattern b, 0 [symbolic] // CHECK:STDOUT: %D.type: type = generic_class_type @D [template] // CHECK:STDOUT: %D.generic: %D.type = struct_value () [template] // CHECK:STDOUT: %D: type = class_type @D, @D(%b) [symbolic] @@ -60,8 +60,8 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -86,40 +86,40 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.loc4_9.1: %i32 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc4_9.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc5: %D.type = class_decl @D [template = constants.%D.generic] { -// CHECK:STDOUT: %b.patt.loc6: %C.387 = symbolic_binding_pattern b, 0 [symbolic = constants.%b.patt] -// CHECK:STDOUT: %b.param_patt: %C.387 = value_param_pattern %b.patt.loc6, runtime_param [symbolic = constants.%b.patt] +// CHECK:STDOUT: %b.patt.loc6: %C.262 = symbolic_binding_pattern b, 0 [symbolic = constants.%b.patt] +// CHECK:STDOUT: %b.param_patt: %C.262 = value_param_pattern %b.patt.loc6, runtime_param [symbolic = constants.%b.patt] // CHECK:STDOUT: } { -// CHECK:STDOUT: %b.param.loc5: %C.387 = value_param runtime_param -// CHECK:STDOUT: %.loc5_20.1: type = splice_block %C.loc5 [template = constants.%C.387] { +// CHECK:STDOUT: %b.param.loc5: %C.262 = value_param runtime_param +// CHECK:STDOUT: %.loc5_20.1: type = splice_block %C.loc5 [template = constants.%C.262] { // CHECK:STDOUT: %C.ref.loc5: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_1000.loc5: Core.IntLiteral = int_value 1000 [template = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0.loc5: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc5: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc5: = bound_method %int_1000.loc5, %impl.elem0.loc5 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc5: = specific_function %Convert.bound.loc5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc5: init %i32 = call %Convert.specific_fn.loc5(%int_1000.loc5) [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %.loc5_20.2: %i32 = value_of_initializer %int.convert_checked.loc5 [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %.loc5_20.3: %i32 = converted %int_1000.loc5, %.loc5_20.2 [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %C.loc5: type = class_type @C, @C(constants.%int_1000.0a4) [template = constants.%C.387] +// CHECK:STDOUT: %int.convert_checked.loc5: init %i32 = call %Convert.specific_fn.loc5(%int_1000.loc5) [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %.loc5_20.2: %i32 = value_of_initializer %int.convert_checked.loc5 [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %.loc5_20.3: %i32 = converted %int_1000.loc5, %.loc5_20.2 [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %C.loc5: type = class_type @C, @C(constants.%int_1000.1b6) [template = constants.%C.262] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc5_9.1: %C.387 = bind_symbolic_name b, 0, %b.param.loc5 [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: %b.loc5_9.1: %C.262 = bind_symbolic_name b, 0, %b.param.loc5 [symbolic = %b.loc5_9.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc6: %D.type = class_decl @D [template = constants.%D.generic] { -// CHECK:STDOUT: %b.patt.loc6: %C.387 = symbolic_binding_pattern b, 0 [symbolic = constants.%b.patt] -// CHECK:STDOUT: %b.param_patt: %C.387 = value_param_pattern %b.patt.loc6, runtime_param [symbolic = constants.%b.patt] +// CHECK:STDOUT: %b.patt.loc6: %C.262 = symbolic_binding_pattern b, 0 [symbolic = constants.%b.patt] +// CHECK:STDOUT: %b.param_patt: %C.262 = value_param_pattern %b.patt.loc6, runtime_param [symbolic = constants.%b.patt] // CHECK:STDOUT: } { -// CHECK:STDOUT: %b.param.loc6: %C.387 = value_param runtime_param -// CHECK:STDOUT: %.loc6_20.1: type = splice_block %C.loc6 [template = constants.%C.387] { +// CHECK:STDOUT: %b.param.loc6: %C.262 = value_param runtime_param +// CHECK:STDOUT: %.loc6_20.1: type = splice_block %C.loc6 [template = constants.%C.262] { // CHECK:STDOUT: %C.ref.loc6: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_1000.loc6: Core.IntLiteral = int_value 1000 [template = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0.loc6: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc6: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc6: = bound_method %int_1000.loc6, %impl.elem0.loc6 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc6: = specific_function %Convert.bound.loc6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %Convert.specific_fn.loc6(%int_1000.loc6) [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %.loc6_20.2: %i32 = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %.loc6_20.3: %i32 = converted %int_1000.loc6, %.loc6_20.2 [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %C.loc6: type = class_type @C, @C(constants.%int_1000.0a4) [template = constants.%C.387] +// CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %Convert.specific_fn.loc6(%int_1000.loc6) [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %.loc6_20.2: %i32 = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %.loc6_20.3: %i32 = converted %int_1000.loc6, %.loc6_20.2 [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %C.loc6: type = class_type @C, @C(constants.%int_1000.1b6) [template = constants.%C.262] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc6: %C.387 = bind_symbolic_name b, 0, %b.param.loc6 [symbolic = constants.%b] +// CHECK:STDOUT: %b.loc6: %C.262 = bind_symbolic_name b, 0, %b.param.loc6 [symbolic = constants.%b] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -133,14 +133,14 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.dff +// CHECK:STDOUT: .Self = constants.%C.506 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%b.loc5_9.1: %C.387) { -// CHECK:STDOUT: %b.loc5_9.2: %C.387 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] -// CHECK:STDOUT: %b.patt.loc5: %C.387 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc5 (constants.%b.patt)] +// CHECK:STDOUT: generic class @D(%b.loc5_9.1: %C.262) { +// CHECK:STDOUT: %b.loc5_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: %b.patt.loc5: %C.262 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc5 (constants.%b.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -158,9 +158,9 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.patt.loc4_9.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_1000.0a4) { -// CHECK:STDOUT: %a.loc4_9.2 => constants.%int_1000.0a4 -// CHECK:STDOUT: %a.patt.loc4_9.2 => constants.%int_1000.0a4 +// CHECK:STDOUT: specific @C(constants.%int_1000.1b6) { +// CHECK:STDOUT: %a.loc4_9.2 => constants.%int_1000.1b6 +// CHECK:STDOUT: %a.patt.loc4_9.2 => constants.%int_1000.1b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%b) { @@ -177,31 +177,31 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.patt: %i32 = symbolic_binding_pattern a, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.dff: type = class_type @C, @C(%a) [symbolic] +// CHECK:STDOUT: %C.506: type = class_type @C, @C(%a) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_1000.ff9: Core.IntLiteral = int_value 1000 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1000.ff9, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1000.ff9, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1000.0a4: %i32 = int_value 1000 [template] -// CHECK:STDOUT: %C.387: type = class_type @C, @C(%int_1000.0a4) [template] -// CHECK:STDOUT: %b: %C.387 = bind_symbolic_name b, 0 [symbolic] -// CHECK:STDOUT: %b.patt: %C.387 = symbolic_binding_pattern b, 0 [symbolic] +// CHECK:STDOUT: %int_1000.1b6: %i32 = int_value 1000 [template] +// CHECK:STDOUT: %C.262: type = class_type @C, @C(%int_1000.1b6) [template] +// CHECK:STDOUT: %b: %C.262 = bind_symbolic_name b, 0 [symbolic] +// CHECK:STDOUT: %b.patt: %C.262 = symbolic_binding_pattern b, 0 [symbolic] // CHECK:STDOUT: %D.type: type = generic_class_type @D [template] // CHECK:STDOUT: %D.generic: %D.type = struct_value () [template] // CHECK:STDOUT: %.type: type = generic_class_type @.1 [template] // CHECK:STDOUT: %.generic: %.type = struct_value () [template] -// CHECK:STDOUT: %.eb9: type = class_type @.1, @.1(%b) [symbolic] +// CHECK:STDOUT: %.3d2: type = class_type @.1, @.1(%b) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -226,40 +226,40 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.loc4_9.1: %i32 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc4_9.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: %D.type = class_decl @D [template = constants.%D.generic] { -// CHECK:STDOUT: %b.patt.loc5_9.1: %C.387 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc5_9.2 (constants.%b.patt)] -// CHECK:STDOUT: %b.param_patt: %C.387 = value_param_pattern %b.patt.loc5_9.1, runtime_param [symbolic = %b.patt.loc5_9.2 (constants.%b.patt)] +// CHECK:STDOUT: %b.patt.loc5_9.1: %C.262 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc5_9.2 (constants.%b.patt)] +// CHECK:STDOUT: %b.param_patt: %C.262 = value_param_pattern %b.patt.loc5_9.1, runtime_param [symbolic = %b.patt.loc5_9.2 (constants.%b.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %b.param: %C.387 = value_param runtime_param -// CHECK:STDOUT: %.loc5_19.1: type = splice_block %C [template = constants.%C.387] { +// CHECK:STDOUT: %b.param: %C.262 = value_param runtime_param +// CHECK:STDOUT: %.loc5_19.1: type = splice_block %C [template = constants.%C.262] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_1000: Core.IntLiteral = int_value 1000 [template = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1000, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1000) [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %.loc5_19.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %.loc5_19.3: %i32 = converted %int_1000, %.loc5_19.2 [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.0a4) [template = constants.%C.387] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1000) [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %.loc5_19.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %.loc5_19.3: %i32 = converted %int_1000, %.loc5_19.2 [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.1b6) [template = constants.%C.262] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc5_9.1: %C.387 = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: %b.loc5_9.1: %C.262 = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc5_9.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.generic] { -// CHECK:STDOUT: %b.patt.loc12_9.1: %C.387 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc12_9.2 (constants.%b.patt)] -// CHECK:STDOUT: %b.param_patt: %C.387 = value_param_pattern %b.patt.loc12_9.1, runtime_param [symbolic = %b.patt.loc12_9.2 (constants.%b.patt)] +// CHECK:STDOUT: %b.patt.loc12_9.1: %C.262 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc12_9.2 (constants.%b.patt)] +// CHECK:STDOUT: %b.param_patt: %C.262 = value_param_pattern %b.patt.loc12_9.1, runtime_param [symbolic = %b.patt.loc12_9.2 (constants.%b.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %b.param: %C.387 = value_param runtime_param -// CHECK:STDOUT: %.loc12_20.1: type = splice_block %C [template = constants.%C.387] { +// CHECK:STDOUT: %b.param: %C.262 = value_param runtime_param +// CHECK:STDOUT: %.loc12_20.1: type = splice_block %C [template = constants.%C.262] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_1000: Core.IntLiteral = int_value 1000 [template = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1000, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1000) [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %.loc12_20.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %.loc12_20.3: %i32 = converted %int_1000, %.loc12_20.2 [template = constants.%int_1000.0a4] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.0a4) [template = constants.%C.387] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1000) [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %.loc12_20.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %.loc12_20.3: %i32 = converted %int_1000, %.loc12_20.2 [template = constants.%int_1000.1b6] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.1b6) [template = constants.%C.262] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc12_9.1: %C.387 = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc12_9.2 (constants.%b)] +// CHECK:STDOUT: %b.loc12_9.1: %C.262 = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc12_9.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -273,21 +273,21 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.dff +// CHECK:STDOUT: .Self = constants.%C.506 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%b.loc5_9.1: %C.387) { -// CHECK:STDOUT: %b.loc5_9.2: %C.387 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] -// CHECK:STDOUT: %b.patt.loc5_9.2: %C.387 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc5_9.2 (constants.%b.patt)] +// CHECK:STDOUT: generic class @D(%b.loc5_9.1: %C.262) { +// CHECK:STDOUT: %b.loc5_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: %b.patt.loc5_9.2: %C.262 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc5_9.2 (constants.%b.patt)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%b.loc12_9.1: %C.387) { -// CHECK:STDOUT: %b.loc12_9.2: %C.387 = bind_symbolic_name b, 0 [symbolic = %b.loc12_9.2 (constants.%b)] -// CHECK:STDOUT: %b.patt.loc12_9.2: %C.387 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc12_9.2 (constants.%b.patt)] +// CHECK:STDOUT: generic class @.1(%b.loc12_9.1: %C.262) { +// CHECK:STDOUT: %b.loc12_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc12_9.2 (constants.%b)] +// CHECK:STDOUT: %b.patt.loc12_9.2: %C.262 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc12_9.2 (constants.%b.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -295,7 +295,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.eb9 +// CHECK:STDOUT: .Self = constants.%.3d2 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -305,9 +305,9 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.patt.loc4_9.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_1000.0a4) { -// CHECK:STDOUT: %a.loc4_9.2 => constants.%int_1000.0a4 -// CHECK:STDOUT: %a.patt.loc4_9.2 => constants.%int_1000.0a4 +// CHECK:STDOUT: specific @C(constants.%int_1000.1b6) { +// CHECK:STDOUT: %a.loc4_9.2 => constants.%int_1000.1b6 +// CHECK:STDOUT: %a.patt.loc4_9.2 => constants.%int_1000.1b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%b) { diff --git a/toolchain/check/testdata/class/todo_access_modifiers.carbon b/toolchain/check/testdata/class/todo_access_modifiers.carbon index a3e55acc7921..b57b97e99a3e 100644 --- a/toolchain/check/testdata/class/todo_access_modifiers.carbon +++ b/toolchain/check/testdata/class/todo_access_modifiers.carbon @@ -31,12 +31,12 @@ class Access { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Access.elem: type = unbound_element_type %Access, %i32 [template] // CHECK:STDOUT: %struct_type.k.l: type = struct_type {.k: %i32, .l: %i32} [template] -// CHECK:STDOUT: %complete_type.4b3: = complete_type_witness %struct_type.k.l [template] +// CHECK:STDOUT: %complete_type.48a: = complete_type_witness %struct_type.k.l [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -56,7 +56,7 @@ class Access { // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {} // CHECK:STDOUT: %.loc17: %Access.elem = field_decl k, element0 [template] // CHECK:STDOUT: %.loc19: %Access.elem = field_decl l, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k.l [template = constants.%complete_type.4b3] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k.l [template = constants.%complete_type.48a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Access diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index a623ba027b7f..228b1f30b019 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -201,13 +201,13 @@ class Derived { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Modifiers: = namespace file.%Modifiers.import, [template] { -// CHECK:STDOUT: .Base = %import_ref.99d +// CHECK:STDOUT: .Base = %import_ref.917 // CHECK:STDOUT: import Modifiers//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.99d: type = import_ref Modifiers//default, Base, loaded [template = constants.%Base] +// CHECK:STDOUT: %import_ref.917: type = import_ref Modifiers//default, Base, loaded [template = constants.%Base] // CHECK:STDOUT: %import_ref.05e: = import_ref Modifiers//default, loc6_1, loaded [template = constants.%complete_type.513] // CHECK:STDOUT: %import_ref.1f3 = import_ref Modifiers//default, inst16 [no loc], unloaded -// CHECK:STDOUT: %import_ref.65c = import_ref Modifiers//default, loc5_17, unloaded +// CHECK:STDOUT: %import_ref.2cc = import_ref Modifiers//default, loc5_17, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -224,7 +224,7 @@ class Derived { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} // CHECK:STDOUT: %Modifiers.ref: = name_ref Modifiers, imports.%Modifiers [template = imports.%Modifiers] -// CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%import_ref.99d [template = constants.%Base] +// CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%import_ref.917 [template = constants.%Base] // CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Base.ref, element0 [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [template = constants.%complete_type.0e2] // CHECK:STDOUT: @@ -239,7 +239,7 @@ class Derived { // CHECK:STDOUT: class @Base [from "modifiers.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.1f3 -// CHECK:STDOUT: .H = imports.%import_ref.65c +// CHECK:STDOUT: .H = imports.%import_ref.2cc // CHECK:STDOUT: complete_type_witness = imports.%import_ref.05e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -263,12 +263,12 @@ class Derived { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Modifiers: = namespace file.%Modifiers.import, [template] { -// CHECK:STDOUT: .Base = %import_ref.99d +// CHECK:STDOUT: .Base = %import_ref.917 // CHECK:STDOUT: import Modifiers//default // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.05e: = import_ref Modifiers//default, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.1f3 = import_ref Modifiers//default, inst16 [no loc], unloaded -// CHECK:STDOUT: %import_ref.65c = import_ref Modifiers//default, loc5_17, unloaded +// CHECK:STDOUT: %import_ref.2cc = import_ref Modifiers//default, loc5_17, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -285,7 +285,7 @@ class Derived { // CHECK:STDOUT: class @Base [from "modifiers.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.1f3 -// CHECK:STDOUT: .H = imports.%import_ref.65c +// CHECK:STDOUT: .H = imports.%import_ref.2cc // CHECK:STDOUT: complete_type_witness = imports.%import_ref.05e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -307,15 +307,15 @@ class Derived { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A1: type = class_type @A1 [template] -// CHECK:STDOUT: %F.type.5cf: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.838: %F.type.5cf = struct_value () [template] +// CHECK:STDOUT: %F.type.13a: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.df5: %F.type.13a = struct_value () [template] // CHECK:STDOUT: %ptr.454: type = ptr_type [template] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr.454} [template] // CHECK:STDOUT: %complete_type.513: = complete_type_witness %struct_type.vptr [template] // CHECK:STDOUT: %A2: type = class_type @A2 [template] // CHECK:STDOUT: %A2.elem: type = unbound_element_type %A2, %A1 [template] -// CHECK:STDOUT: %F.type.c6a: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.b9e: %F.type.c6a = struct_value () [template] +// CHECK:STDOUT: %F.type.4ae: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.1d5: %F.type.4ae = struct_value () [template] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %A1} [template] // CHECK:STDOUT: %complete_type.a6f: = complete_type_witness %struct_type.base [template] // CHECK:STDOUT: } @@ -339,7 +339,7 @@ class Derived { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A1 { -// CHECK:STDOUT: %F.decl: %F.type.5cf = fn_decl @F.1 [template = constants.%F.838] {} {} +// CHECK:STDOUT: %F.decl: %F.type.13a = fn_decl @F.1 [template = constants.%F.df5] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template = constants.%complete_type.513] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -351,7 +351,7 @@ class Derived { // CHECK:STDOUT: class @A2 { // CHECK:STDOUT: %A1.ref: type = name_ref A1, file.%A1.decl [template = constants.%A1] // CHECK:STDOUT: %.loc9: %A2.elem = base_decl %A1.ref, element0 [template] -// CHECK:STDOUT: %F.decl: %F.type.c6a = fn_decl @F.2 [template = constants.%F.b9e] {} {} +// CHECK:STDOUT: %F.decl: %F.type.4ae = fn_decl @F.2 [template = constants.%F.1d5] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [template = constants.%complete_type.a6f] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -370,21 +370,21 @@ class Derived { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %B1: type = class_type @B1 [template] -// CHECK:STDOUT: %F.type.4d4: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.41d: %F.type.4d4 = struct_value () [template] +// CHECK:STDOUT: %F.type.e4c: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.8f5: %F.type.e4c = struct_value () [template] // CHECK:STDOUT: %ptr.454: type = ptr_type [template] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr.454} [template] // CHECK:STDOUT: %complete_type.513: = complete_type_witness %struct_type.vptr [template] // CHECK:STDOUT: %B2: type = class_type @B2 [template] // CHECK:STDOUT: %B2.elem: type = unbound_element_type %B2, %B1 [template] -// CHECK:STDOUT: %F.type.25f: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.6a2: %F.type.25f = struct_value () [template] +// CHECK:STDOUT: %F.type.b26: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.d48: %F.type.b26 = struct_value () [template] // CHECK:STDOUT: %struct_type.base.508: type = struct_type {.base: %B1} [template] // CHECK:STDOUT: %complete_type.5ac: = complete_type_witness %struct_type.base.508 [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B2 [template] -// CHECK:STDOUT: %F.type.675: type = fn_type @F.3 [template] -// CHECK:STDOUT: %F.2c9: %F.type.675 = struct_value () [template] +// CHECK:STDOUT: %F.type.c29: type = fn_type @F.3 [template] +// CHECK:STDOUT: %F.437: %F.type.c29 = struct_value () [template] // CHECK:STDOUT: %struct_type.base.421: type = struct_type {.base: %B2} [template] // CHECK:STDOUT: %complete_type.066: = complete_type_witness %struct_type.base.421 [template] // CHECK:STDOUT: } @@ -410,7 +410,7 @@ class Derived { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B1 { -// CHECK:STDOUT: %F.decl: %F.type.4d4 = fn_decl @F.1 [template = constants.%F.41d] {} {} +// CHECK:STDOUT: %F.decl: %F.type.e4c = fn_decl @F.1 [template = constants.%F.8f5] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template = constants.%complete_type.513] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -422,7 +422,7 @@ class Derived { // CHECK:STDOUT: class @B2 { // CHECK:STDOUT: %B1.ref: type = name_ref B1, file.%B1.decl [template = constants.%B1] // CHECK:STDOUT: %.loc9: %B2.elem = base_decl %B1.ref, element0 [template] -// CHECK:STDOUT: %F.decl: %F.type.25f = fn_decl @F.2 [template = constants.%F.6a2] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b26 = fn_decl @F.2 [template = constants.%F.d48] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.508 [template = constants.%complete_type.5ac] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -436,7 +436,7 @@ class Derived { // CHECK:STDOUT: class @C { // CHECK:STDOUT: %B2.ref: type = name_ref B2, file.%B2.decl [template = constants.%B2] // CHECK:STDOUT: %.loc14: %C.elem = base_decl %B2.ref, element0 [template] -// CHECK:STDOUT: %F.decl: %F.type.675 = fn_decl @F.3 [template = constants.%F.2c9] {} {} +// CHECK:STDOUT: %F.decl: %F.type.c29 = fn_decl @F.3 [template = constants.%F.437] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.421 [template = constants.%complete_type.066] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -499,37 +499,37 @@ class Derived { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [template] -// CHECK:STDOUT: %F.type.3ec: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.f90: %F.type.3ec = struct_value () [template] +// CHECK:STDOUT: %F.type.7c6: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.d17: %F.type.7c6 = struct_value () [template] // CHECK:STDOUT: %ptr.454: type = ptr_type [template] // CHECK:STDOUT: %struct_type.vptr.m1.m2: type = struct_type {.: %ptr.454, .m1: %i32, .m2: %i32} [template] -// CHECK:STDOUT: %complete_type.669: = complete_type_witness %struct_type.vptr.m1.m2 [template] +// CHECK:STDOUT: %complete_type.cf7: = complete_type_witness %struct_type.vptr.m1.m2 [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %struct_type.m2.m1.28f: type = struct_type {.m2: %i32, .m1: %i32} [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %struct_type.m2.m1.68c: type = struct_type {.m2: %i32, .m1: %i32} [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] // CHECK:STDOUT: %struct_type.m2.m1.5f2: type = struct_type {.m2: Core.IntLiteral, .m1: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.bound.b33: = bound_method %int_5.64b, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.89d: = specific_function %Convert.bound.b33, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] +// CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.ba9: = specific_function %Convert.bound.4e6, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -549,8 +549,8 @@ class Derived { // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %.loc5: %Base.elem = field_decl m1, element1 [template] // CHECK:STDOUT: %.loc6: %Base.elem = field_decl m2, element2 [template] -// CHECK:STDOUT: %F.decl: %F.type.3ec = fn_decl @F.1 [template = constants.%F.f90] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr.m1.m2 [template = constants.%complete_type.669] +// CHECK:STDOUT: %F.decl: %F.type.7c6 = fn_decl @F.1 [template = constants.%F.d17] {} {} +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr.m1.m2 [template = constants.%complete_type.cf7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base @@ -567,17 +567,17 @@ class Derived { // CHECK:STDOUT: %i.var: ref %i32 = var i // CHECK:STDOUT: %i: ref %i32 = bind_name i, %i.var // CHECK:STDOUT: %int_3.loc12: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_3.loc12, %impl.elem0.loc12 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_3.loc12) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_3.loc12, %int.convert_checked.loc12 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_3.loc12, %impl.elem0.loc12 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_3.loc12) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_3.loc12, %int.convert_checked.loc12 [template = constants.%int_3.822] // CHECK:STDOUT: assign %i.var, %.loc12 // CHECK:STDOUT: %b1.var: ref %Base = var b1 // CHECK:STDOUT: %b1: ref %Base = bind_name b1, %b1.var // 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.28f = struct_literal (%i.ref.loc14_25, %i.ref.loc14_34) +// CHECK:STDOUT: %.loc14_35.1: %struct_type.m2.m1.68c = 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: %.loc14_35.3: ref %ptr.454 = vtable_ptr // CHECK:STDOUT: %.loc14_35.4: init %ptr.454 = initialize_from %.loc14_35.3 to %.loc14_35.2 @@ -598,20 +598,20 @@ class Derived { // CHECK:STDOUT: %.loc15_35.2: ref %ptr.454 = class_element_access %b2.var, element0 // CHECK:STDOUT: %.loc15_35.3: ref %ptr.454 = vtable_ptr // CHECK:STDOUT: %.loc15_35.4: init %ptr.454 = initialize_from %.loc15_35.3 to %.loc15_35.2 -// CHECK:STDOUT: %impl.elem0.loc15_35.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15_35.1: = bound_method %int_5, %impl.elem0.loc15_35.1 [template = constants.%Convert.bound.b33] -// CHECK:STDOUT: %Convert.specific_fn.loc15_35.1: = specific_function %Convert.bound.loc15_35.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.89d] -// CHECK:STDOUT: %int.convert_checked.loc15_35.1: init %i32 = call %Convert.specific_fn.loc15_35.1(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc15_35.5: init %i32 = converted %int_5, %int.convert_checked.loc15_35.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %impl.elem0.loc15_35.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15_35.1: = bound_method %int_5, %impl.elem0.loc15_35.1 [template = constants.%Convert.bound.4e6] +// CHECK:STDOUT: %Convert.specific_fn.loc15_35.1: = specific_function %Convert.bound.loc15_35.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.ba9] +// CHECK:STDOUT: %int.convert_checked.loc15_35.1: init %i32 = call %Convert.specific_fn.loc15_35.1(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc15_35.5: init %i32 = converted %int_5, %int.convert_checked.loc15_35.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %.loc15_35.6: ref %i32 = class_element_access %b2.var, element2 -// CHECK:STDOUT: %.loc15_35.7: init %i32 = initialize_from %.loc15_35.5 to %.loc15_35.6 [template = constants.%int_5.70b] -// CHECK:STDOUT: %impl.elem0.loc15_35.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15_35.2: = bound_method %int_3.loc15, %impl.elem0.loc15_35.2 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc15_35.2: = specific_function %Convert.bound.loc15_35.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc15_35.2: init %i32 = call %Convert.specific_fn.loc15_35.2(%int_3.loc15) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc15_35.8: init %i32 = converted %int_3.loc15, %int.convert_checked.loc15_35.2 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc15_35.7: init %i32 = initialize_from %.loc15_35.5 to %.loc15_35.6 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %impl.elem0.loc15_35.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15_35.2: = bound_method %int_3.loc15, %impl.elem0.loc15_35.2 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc15_35.2: = specific_function %Convert.bound.loc15_35.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc15_35.2: init %i32 = call %Convert.specific_fn.loc15_35.2(%int_3.loc15) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc15_35.8: init %i32 = converted %int_3.loc15, %int.convert_checked.loc15_35.2 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc15_35.9: ref %i32 = class_element_access %b2.var, element1 -// CHECK:STDOUT: %.loc15_35.10: init %i32 = initialize_from %.loc15_35.8 to %.loc15_35.9 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc15_35.10: init %i32 = initialize_from %.loc15_35.8 to %.loc15_35.9 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc15_35.11: init %Base = class_init (%.loc15_35.4, %.loc15_35.7, %.loc15_35.10), %b2.var // CHECK:STDOUT: %.loc15_36: init %Base = converted %.loc15_35.1, %.loc15_35.11 // CHECK:STDOUT: assign %b2.var, %.loc15_36 @@ -619,11 +619,11 @@ class Derived { // CHECK:STDOUT: %m2.ref: %Base.elem = name_ref m2, @Base.%.loc6 [template = @Base.%.loc6] // CHECK:STDOUT: %.loc18_5: ref %i32 = class_element_access %b1.ref, element2 // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_4, %impl.elem0.loc18 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc18_9: init %i32 = converted %int_4, %int.convert_checked.loc18 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_4, %impl.elem0.loc18 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc18_9: init %i32 = converted %int_4, %int.convert_checked.loc18 [template = constants.%int_4.940] // CHECK:STDOUT: assign %.loc18_5, %.loc18_9 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/const/basic.carbon b/toolchain/check/testdata/const/basic.carbon index b1138ab29bf5..aebfdaa06052 100644 --- a/toolchain/check/testdata/const/basic.carbon +++ b/toolchain/check/testdata/const/basic.carbon @@ -21,20 +21,20 @@ fn B(p: const (i32*)) -> const (i32*) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %const.105: type = const_type %i32 [template] -// CHECK:STDOUT: %ptr.719: type = ptr_type %const.105 [template] -// CHECK:STDOUT: %ptr.733: type = ptr_type %ptr.719 [template] +// CHECK:STDOUT: %const.20a: type = const_type %i32 [template] +// CHECK:STDOUT: %ptr.36b: type = ptr_type %const.20a [template] +// CHECK:STDOUT: %ptr.3bc: type = ptr_type %ptr.36b [template] // CHECK:STDOUT: %A.type: type = fn_type @A [template] // CHECK:STDOUT: %A: %A.type = struct_value () [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] -// CHECK:STDOUT: %const.3f8: type = const_type %ptr.dc3 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] +// CHECK:STDOUT: %const.12f: type = const_type %ptr.235 [template] // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -48,60 +48,60 @@ fn B(p: const (i32*)) -> const (i32*) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [template = constants.%A] { -// CHECK:STDOUT: %p.patt: %ptr.733 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %ptr.733 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.733 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.733 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: %ptr.3bc = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %ptr.3bc = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %ptr.3bc = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.3bc = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc11_31: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_31: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %const.loc11_25: type = const_type %i32 [template = constants.%const.105] -// CHECK:STDOUT: %ptr.loc11_34: type = ptr_type %const.105 [template = constants.%ptr.719] -// CHECK:STDOUT: %ptr.loc11_35: type = ptr_type %ptr.719 [template = constants.%ptr.733] -// CHECK:STDOUT: %p.param: %ptr.733 = value_param runtime_param0 -// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_19 [template = constants.%ptr.733] { +// CHECK:STDOUT: %const.loc11_25: type = const_type %i32 [template = constants.%const.20a] +// CHECK:STDOUT: %ptr.loc11_34: type = ptr_type %const.20a [template = constants.%ptr.36b] +// CHECK:STDOUT: %ptr.loc11_35: type = ptr_type %ptr.36b [template = constants.%ptr.3bc] +// CHECK:STDOUT: %p.param: %ptr.3bc = value_param runtime_param0 +// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_19 [template = constants.%ptr.3bc] { // CHECK:STDOUT: %int_32.loc11_15: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_15: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %const.loc11_9: type = const_type %i32 [template = constants.%const.105] -// CHECK:STDOUT: %ptr.loc11_18: type = ptr_type %const.105 [template = constants.%ptr.719] -// CHECK:STDOUT: %ptr.loc11_19: type = ptr_type %ptr.719 [template = constants.%ptr.733] +// CHECK:STDOUT: %const.loc11_9: type = const_type %i32 [template = constants.%const.20a] +// CHECK:STDOUT: %ptr.loc11_18: type = ptr_type %const.20a [template = constants.%ptr.36b] +// CHECK:STDOUT: %ptr.loc11_19: type = ptr_type %ptr.36b [template = constants.%ptr.3bc] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.733 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.733 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.733 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.3bc = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.3bc = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.3bc = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [template = constants.%B] { -// CHECK:STDOUT: %p.patt: %const.3f8 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %const.3f8 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %const.3f8 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %const.3f8 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: %const.12f = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %const.12f = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %const.12f = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %const.12f = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc15_33: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_33: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc15_36: type = ptr_type %i32 [template = constants.%ptr.dc3] -// CHECK:STDOUT: %const.loc15_26: type = const_type %ptr.dc3 [template = constants.%const.3f8] -// CHECK:STDOUT: %p.param: %const.3f8 = value_param runtime_param0 -// CHECK:STDOUT: %.loc15: type = splice_block %const.loc15_9 [template = constants.%const.3f8] { +// CHECK:STDOUT: %ptr.loc15_36: type = ptr_type %i32 [template = constants.%ptr.235] +// CHECK:STDOUT: %const.loc15_26: type = const_type %ptr.235 [template = constants.%const.12f] +// CHECK:STDOUT: %p.param: %const.12f = value_param runtime_param0 +// CHECK:STDOUT: %.loc15: type = splice_block %const.loc15_9 [template = constants.%const.12f] { // CHECK:STDOUT: %int_32.loc15_16: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_16: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc15_19: type = ptr_type %i32 [template = constants.%ptr.dc3] -// CHECK:STDOUT: %const.loc15_9: type = const_type %ptr.dc3 [template = constants.%const.3f8] +// CHECK:STDOUT: %ptr.loc15_19: type = ptr_type %i32 [template = constants.%ptr.235] +// CHECK:STDOUT: %const.loc15_9: type = const_type %ptr.235 [template = constants.%const.12f] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %const.3f8 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %const.3f8 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %const.3f8 = return_slot %return.param +// CHECK:STDOUT: %p: %const.12f = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref %const.12f = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %const.12f = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @A(%p.param_patt: %ptr.733) -> %ptr.733 { +// CHECK:STDOUT: fn @A(%p.param_patt: %ptr.3bc) -> %ptr.3bc { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.733 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.3bc = name_ref p, %p // CHECK:STDOUT: return %p.ref // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @B(%p.param_patt: %const.3f8) -> %const.3f8 { +// CHECK:STDOUT: fn @B(%p.param_patt: %const.12f) -> %const.12f { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %const.3f8 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %const.12f = name_ref p, %p // CHECK:STDOUT: return %p.ref // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/const/collapse.carbon b/toolchain/check/testdata/const/collapse.carbon index 43c58ae3fdd7..ca252e668789 100644 --- a/toolchain/check/testdata/const/collapse.carbon +++ b/toolchain/check/testdata/const/collapse.carbon @@ -22,15 +22,15 @@ fn F(p: const i32**) -> const (const i32)** { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %const: type = const_type %i32 [template] -// CHECK:STDOUT: %ptr.719: type = ptr_type %const [template] -// CHECK:STDOUT: %ptr.733: type = ptr_type %ptr.719 [template] +// CHECK:STDOUT: %ptr.36b: type = ptr_type %const [template] +// CHECK:STDOUT: %ptr.3bc: type = ptr_type %ptr.36b [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -43,34 +43,34 @@ fn F(p: const i32**) -> const (const i32)** { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %p.patt: %ptr.733 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %ptr.733 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.733 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.733 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: %ptr.3bc = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %ptr.3bc = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %ptr.3bc = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.3bc = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc15_38: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_38: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %const.loc15_32: type = const_type %i32 [template = constants.%const] // CHECK:STDOUT: %const.loc15_25: type = const_type %const [template = constants.%const] -// CHECK:STDOUT: %ptr.loc15_42: type = ptr_type %const [template = constants.%ptr.719] -// CHECK:STDOUT: %ptr.loc15_43: type = ptr_type %ptr.719 [template = constants.%ptr.733] -// CHECK:STDOUT: %p.param: %ptr.733 = value_param runtime_param0 -// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15_19 [template = constants.%ptr.733] { +// CHECK:STDOUT: %ptr.loc15_42: type = ptr_type %const [template = constants.%ptr.36b] +// CHECK:STDOUT: %ptr.loc15_43: type = ptr_type %ptr.36b [template = constants.%ptr.3bc] +// CHECK:STDOUT: %p.param: %ptr.3bc = value_param runtime_param0 +// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15_19 [template = constants.%ptr.3bc] { // CHECK:STDOUT: %int_32.loc15_15: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_15: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %const.loc15_9: type = const_type %i32 [template = constants.%const] -// CHECK:STDOUT: %ptr.loc15_18: type = ptr_type %const [template = constants.%ptr.719] -// CHECK:STDOUT: %ptr.loc15_19: type = ptr_type %ptr.719 [template = constants.%ptr.733] +// CHECK:STDOUT: %ptr.loc15_18: type = ptr_type %const [template = constants.%ptr.36b] +// CHECK:STDOUT: %ptr.loc15_19: type = ptr_type %ptr.36b [template = constants.%ptr.3bc] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.733 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.733 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.733 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.3bc = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.3bc = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.3bc = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%p.param_patt: %ptr.733) -> %ptr.733 { +// CHECK:STDOUT: fn @F(%p.param_patt: %ptr.3bc) -> %ptr.3bc { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.733 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.3bc = name_ref p, %p // CHECK:STDOUT: return %p.ref // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/const/fail_collapse.carbon b/toolchain/check/testdata/const/fail_collapse.carbon index ac37099af6f2..570ab8ca4208 100644 --- a/toolchain/check/testdata/const/fail_collapse.carbon +++ b/toolchain/check/testdata/const/fail_collapse.carbon @@ -28,18 +28,18 @@ fn G(p: const (const i32)**) -> i32** { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %const: type = const_type %i32 [template] -// CHECK:STDOUT: %ptr.719: type = ptr_type %const [template] -// CHECK:STDOUT: %ptr.733: type = ptr_type %ptr.719 [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] -// CHECK:STDOUT: %ptr.ae0: type = ptr_type %ptr.dc3 [template] +// CHECK:STDOUT: %ptr.36b: type = ptr_type %const [template] +// CHECK:STDOUT: %ptr.3bc: type = ptr_type %ptr.36b [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -52,34 +52,34 @@ fn G(p: const (const i32)**) -> i32** { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %p.patt: %ptr.733 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %ptr.733 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.ae0 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.ae0 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: %ptr.3bc = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %ptr.3bc = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %ptr.5d5 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.5d5 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc15_33: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_33: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc15_36: type = ptr_type %i32 [template = constants.%ptr.dc3] -// CHECK:STDOUT: %ptr.loc15_37: type = ptr_type %ptr.dc3 [template = constants.%ptr.ae0] -// CHECK:STDOUT: %p.param: %ptr.733 = value_param runtime_param0 -// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15_27 [template = constants.%ptr.733] { +// CHECK:STDOUT: %ptr.loc15_36: type = ptr_type %i32 [template = constants.%ptr.235] +// CHECK:STDOUT: %ptr.loc15_37: type = ptr_type %ptr.235 [template = constants.%ptr.5d5] +// CHECK:STDOUT: %p.param: %ptr.3bc = value_param runtime_param0 +// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15_27 [template = constants.%ptr.3bc] { // CHECK:STDOUT: %int_32.loc15_22: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_22: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %const.loc15_16: type = const_type %i32 [template = constants.%const] // CHECK:STDOUT: %const.loc15_9: type = const_type %const [template = constants.%const] -// CHECK:STDOUT: %ptr.loc15_26: type = ptr_type %const [template = constants.%ptr.719] -// CHECK:STDOUT: %ptr.loc15_27: type = ptr_type %ptr.719 [template = constants.%ptr.733] +// CHECK:STDOUT: %ptr.loc15_26: type = ptr_type %const [template = constants.%ptr.36b] +// CHECK:STDOUT: %ptr.loc15_27: type = ptr_type %ptr.36b [template = constants.%ptr.3bc] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.733 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.ae0 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.ae0 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.3bc = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.5d5 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.5d5 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.733) -> %ptr.ae0 { +// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.3bc) -> %ptr.5d5 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.733 = name_ref p, %p -// CHECK:STDOUT: %.loc22: %ptr.ae0 = converted %p.ref, [template = ] +// CHECK:STDOUT: %p.ref: %ptr.3bc = name_ref p, %p +// CHECK:STDOUT: %.loc22: %ptr.5d5 = converted %p.ref, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/const/import.carbon b/toolchain/check/testdata/const/import.carbon index e690ad17dcc3..99ba80c04afe 100644 --- a/toolchain/check/testdata/const/import.carbon +++ b/toolchain/check/testdata/const/import.carbon @@ -39,7 +39,7 @@ var a_ptr: const i32* = a_ptr_ref; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -92,11 +92,11 @@ var a_ptr: const i32* = a_ptr_ref; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.cd8 = import_ref Implicit//default, F, unloaded -// CHECK:STDOUT: %import_ref.0e1: ref %const = import_ref Implicit//default, a_ref, loaded -// CHECK:STDOUT: %import_ref.5a2: ref %ptr = import_ref Implicit//default, a_ptr_ref, loaded +// CHECK:STDOUT: %import_ref.bde = import_ref Implicit//default, F, unloaded +// CHECK:STDOUT: %import_ref.ae7: ref %const = import_ref Implicit//default, a_ref, loaded +// CHECK:STDOUT: %import_ref.1ef: ref %ptr = import_ref Implicit//default, a_ptr_ref, loaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -104,9 +104,9 @@ var a_ptr: const i32* = a_ptr_ref; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .F = imports.%import_ref.cd8 -// CHECK:STDOUT: .a_ref = imports.%import_ref.0e1 -// CHECK:STDOUT: .a_ptr_ref = imports.%import_ref.5a2 +// CHECK:STDOUT: .F = imports.%import_ref.bde +// CHECK:STDOUT: .a_ref = imports.%import_ref.ae7 +// CHECK:STDOUT: .a_ptr_ref = imports.%import_ref.1ef // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a // CHECK:STDOUT: .a_ptr = %a_ptr @@ -122,10 +122,10 @@ var a_ptr: const i32* = a_ptr_ref; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a_ref.ref: ref %const = name_ref a_ref, imports.%import_ref.0e1 +// CHECK:STDOUT: %a_ref.ref: ref %const = name_ref a_ref, imports.%import_ref.ae7 // CHECK:STDOUT: %addr: %ptr = addr_of %a_ref.ref // CHECK:STDOUT: assign file.%a.var, %addr -// CHECK:STDOUT: %a_ptr_ref.ref: ref %ptr = name_ref a_ptr_ref, imports.%import_ref.5a2 +// CHECK:STDOUT: %a_ptr_ref.ref: ref %ptr = name_ref a_ptr_ref, imports.%import_ref.1ef // CHECK:STDOUT: %.loc7: %ptr = bind_value %a_ptr_ref.ref // CHECK:STDOUT: assign file.%a_ptr.var, %.loc7 // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index cf6b60e234a2..ab0b5e4bb559 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -129,21 +129,21 @@ fn G() -> i32 { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %array_type.fa4: type = array_type %int_3, %T [symbolic] +// CHECK:STDOUT: %array_type.743: type = array_type %int_3, %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.029: = require_complete_type %array_type.fa4 [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.06f: = require_complete_type %array_type.743 [symbolic] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %array_type.002: type = array_type %int_3, %C [template] @@ -158,8 +158,8 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -177,21 +177,21 @@ fn G() -> i32 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc6_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc6_6.1, runtime_param [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_24.2 (%array_type.fa4) = binding_pattern a -// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_24.2 (%array_type.fa4) = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_24.2 (%array_type.743) = binding_pattern a +// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_24.2 (%array_type.743) = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%T.loc6_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%T.loc6_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_30: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_24.2 (%array_type.fa4) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_24: type = splice_block %array_type.loc6_24.1 [symbolic = %array_type.loc6_24.2 (constants.%array_type.fa4)] { +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_24.2 (%array_type.743) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_24: type = splice_block %array_type.loc6_24.1 [symbolic = %array_type.loc6_24.2 (constants.%array_type.743)] { // CHECK:STDOUT: %T.ref.loc6_20: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3] -// CHECK:STDOUT: %array_type.loc6_24.1: type = array_type %int_3, %T [symbolic = %array_type.loc6_24.2 (constants.%array_type.fa4)] +// CHECK:STDOUT: %array_type.loc6_24.1: type = array_type %int_3, %T [symbolic = %array_type.loc6_24.2 (constants.%array_type.743)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_24.2 (%array_type.fa4) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_24.2 (%array_type.743) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -216,25 +216,25 @@ fn G() -> i32 { // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { // CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc6_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %array_type.loc6_24.2: type = array_type constants.%int_3, @F.%T.loc6_6.2 (%T) [symbolic = %array_type.loc6_24.2 (constants.%array_type.fa4)] +// CHECK:STDOUT: %array_type.loc6_24.2: type = array_type constants.%int_3, @F.%T.loc6_6.2 (%T) [symbolic = %array_type.loc6_24.2 (constants.%array_type.743)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_27: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_27 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%array_type.loc6_24.2 (%array_type.fa4) [symbolic = %require_complete.loc6_17 (constants.%require_complete.029)] +// CHECK:STDOUT: %require_complete.loc6_27: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_27 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%array_type.loc6_24.2 (%array_type.743) [symbolic = %require_complete.loc6_17 (constants.%require_complete.06f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%a.param_patt: @F.%array_type.loc6_24.2 (%array_type.fa4)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%a.param_patt: @F.%array_type.loc6_24.2 (%array_type.743)) -> @F.%T.loc6_6.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @F.%array_type.loc6_24.2 (%array_type.fa4) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @F.%array_type.loc6_24.2 (%array_type.743) = name_ref a, %a // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_43.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_43.2: %i32 = converted %int_0, %.loc6_43.1 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_44.1: ref @F.%array_type.loc6_24.2 (%array_type.fa4) = value_as_ref %a.ref +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_43.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_43.2: %i32 = converted %int_0, %.loc6_43.1 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_44.1: ref @F.%array_type.loc6_24.2 (%array_type.743) = value_as_ref %a.ref // CHECK:STDOUT: %.loc6_44.2: ref @F.%T.loc6_6.2 (%T) = array_index %.loc6_44.1, %.loc6_43.2 // CHECK:STDOUT: %.loc6_44.3: @F.%T.loc6_6.2 (%T) = bind_value %.loc6_44.2 // CHECK:STDOUT: return %.loc6_44.3 @@ -276,7 +276,7 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc6_6.2 => constants.%T -// CHECK:STDOUT: %array_type.loc6_24.2 => constants.%array_type.fa4 +// CHECK:STDOUT: %array_type.loc6_24.2 => constants.%array_type.743 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { @@ -297,21 +297,21 @@ fn G() -> i32 { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %IntLiteral.type: type = fn_type @IntLiteral [template] // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [template] -// CHECK:STDOUT: %N.f0243b.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.7d2de8.1: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %array_type.f81: type = array_type %N.f0243b.1, %C [symbolic] +// CHECK:STDOUT: %N.c80: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.7bf: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %array_type.6a2: type = array_type %N.c80, %C [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.109: = require_complete_type %array_type.f81 [symbolic] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.2a5: = bound_method %N.f0243b.1, %Convert.925 [symbolic] -// CHECK:STDOUT: %Convert.specific_fn.660: = specific_function %Convert.bound.2a5, @Convert.2(%int_32) [symbolic] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn.660(%N.f0243b.1) [symbolic] +// CHECK:STDOUT: %require_complete.d82: = require_complete_type %array_type.6a2 [symbolic] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.41f: = bound_method %N.c80, %Convert.956 [symbolic] +// CHECK:STDOUT: %Convert.specific_fn.122: = specific_function %Convert.bound.41f, @Convert.2(%int_32) [symbolic] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn.122(%N.c80) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] @@ -324,20 +324,20 @@ fn G() -> i32 { // CHECK:STDOUT: %array: %array_type.002 = tuple_value (%C.val, %C.val, %C.val) [template] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_3.1ba) [template] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IntLiteral = %import_ref.8ee -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .IntLiteral = %import_ref.72f0 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.8ee: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] +// CHECK:STDOUT: %import_ref.72f0: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -350,10 +350,10 @@ fn G() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %N.patt.loc6_6.1: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.7d2de8.1)] -// CHECK:STDOUT: %N.param_patt: Core.IntLiteral = value_param_pattern %N.patt.loc6_6.1, runtime_param [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.7d2de8.1)] -// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_37.2 (%array_type.f81) = binding_pattern a -// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_37.2 (%array_type.f81) = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %N.patt.loc6_6.1: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.7bf)] +// CHECK:STDOUT: %N.param_patt: Core.IntLiteral = value_param_pattern %N.patt.loc6_6.1, runtime_param [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.7bf)] +// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_37.2 (%array_type.6a2) = binding_pattern a +// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_37.2 (%array_type.6a2) = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -362,19 +362,19 @@ fn G() -> i32 { // CHECK:STDOUT: %N.param: Core.IntLiteral = value_param runtime_param // CHECK:STDOUT: %.loc6_26.1: type = splice_block %.loc6_26.3 [template = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f0 [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc6_26.2: type = value_of_initializer %int_literal.make_type [template = Core.IntLiteral] // CHECK:STDOUT: %.loc6_26.3: type = converted %int_literal.make_type, %.loc6_26.2 [template = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_6.1: Core.IntLiteral = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_6.2 (constants.%N.f0243b.1)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_37.2 (%array_type.f81) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_37: type = splice_block %array_type.loc6_37.1 [symbolic = %array_type.loc6_37.2 (constants.%array_type.f81)] { +// CHECK:STDOUT: %N.loc6_6.1: Core.IntLiteral = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_6.2 (constants.%N.c80)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_37.2 (%array_type.6a2) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_37: type = splice_block %array_type.loc6_37.1 [symbolic = %array_type.loc6_37.2 (constants.%array_type.6a2)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %N.ref.loc6_36: Core.IntLiteral = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.f0243b.1)] -// CHECK:STDOUT: %array_type.loc6_37.1: type = array_type %N.ref.loc6_36, %C [symbolic = %array_type.loc6_37.2 (constants.%array_type.f81)] +// CHECK:STDOUT: %N.ref.loc6_36: Core.IntLiteral = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.c80)] +// CHECK:STDOUT: %array_type.loc6_37.1: type = array_type %N.ref.loc6_36, %C [symbolic = %array_type.loc6_37.2 (constants.%array_type.6a2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_37.2 (%array_type.f81) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_37.2 (%array_type.6a2) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -398,22 +398,22 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc6_6.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc6_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N.f0243b.1)] -// CHECK:STDOUT: %N.patt.loc6_6.2: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.7d2de8.1)] -// CHECK:STDOUT: %array_type.loc6_37.2: type = array_type %N.loc6_6.2, %C [symbolic = %array_type.loc6_37.2 (constants.%array_type.f81)] +// CHECK:STDOUT: %N.loc6_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N.c80)] +// CHECK:STDOUT: %N.patt.loc6_6.2: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.7bf)] +// CHECK:STDOUT: %array_type.loc6_37.2: type = array_type %N.loc6_6.2, %C [symbolic = %array_type.loc6_37.2 (constants.%array_type.6a2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type.loc6_37.2 (%array_type.f81) [symbolic = %require_complete (constants.%require_complete.109)] -// CHECK:STDOUT: %Convert.bound.loc6_57.2: = bound_method %N.loc6_6.2, constants.%Convert.925 [symbolic = %Convert.bound.loc6_57.2 (constants.%Convert.bound.2a5)] -// CHECK:STDOUT: %Convert.specific_fn.loc6_57.2: = specific_function %Convert.bound.loc6_57.2, @Convert.2(constants.%int_32) [symbolic = %Convert.specific_fn.loc6_57.2 (constants.%Convert.specific_fn.660)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type.loc6_37.2 (%array_type.6a2) [symbolic = %require_complete (constants.%require_complete.d82)] +// CHECK:STDOUT: %Convert.bound.loc6_57.2: = bound_method %N.loc6_6.2, constants.%Convert.956 [symbolic = %Convert.bound.loc6_57.2 (constants.%Convert.bound.41f)] +// CHECK:STDOUT: %Convert.specific_fn.loc6_57.2: = specific_function %Convert.bound.loc6_57.2, @Convert.2(constants.%int_32) [symbolic = %Convert.specific_fn.loc6_57.2 (constants.%Convert.specific_fn.122)] // CHECK:STDOUT: %int.convert_checked.loc6_57.2: init %i32 = call %Convert.specific_fn.loc6_57.2(%N.loc6_6.2) [symbolic = %int.convert_checked.loc6_57.2 (constants.%int.convert_checked)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.param_patt: Core.IntLiteral](%a.param_patt: @F.%array_type.loc6_37.2 (%array_type.f81)) -> %i32 { +// CHECK:STDOUT: fn[%N.param_patt: Core.IntLiteral](%a.param_patt: @F.%array_type.loc6_37.2 (%array_type.6a2)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_56: Core.IntLiteral = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.f0243b.1)] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc6_57.1: = bound_method %N.ref.loc6_56, %impl.elem0 [symbolic = %Convert.bound.loc6_57.2 (constants.%Convert.bound.2a5)] -// CHECK:STDOUT: %Convert.specific_fn.loc6_57.1: = specific_function %Convert.bound.loc6_57.1, @Convert.2(constants.%int_32) [symbolic = %Convert.specific_fn.loc6_57.2 (constants.%Convert.specific_fn.660)] +// CHECK:STDOUT: %N.ref.loc6_56: Core.IntLiteral = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.c80)] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc6_57.1: = bound_method %N.ref.loc6_56, %impl.elem0 [symbolic = %Convert.bound.loc6_57.2 (constants.%Convert.bound.41f)] +// CHECK:STDOUT: %Convert.specific_fn.loc6_57.1: = specific_function %Convert.bound.loc6_57.1, @Convert.2(constants.%int_32) [symbolic = %Convert.specific_fn.loc6_57.2 (constants.%Convert.specific_fn.122)] // CHECK:STDOUT: %int.convert_checked.loc6_57.1: init %i32 = call %Convert.specific_fn.loc6_57.1(%N.ref.loc6_56) [symbolic = %int.convert_checked.loc6_57.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc6_57.1: %i32 = value_of_initializer %int.convert_checked.loc6_57.1 [symbolic = %int.convert_checked.loc6_57.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc6_57.2: %i32 = converted %N.ref.loc6_56, %.loc6_57.1 [symbolic = %int.convert_checked.loc6_57.2 (constants.%int.convert_checked)] @@ -454,10 +454,10 @@ fn G() -> i32 { // CHECK:STDOUT: return %.loc10_14.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.f0243b.1) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%N.f0243b.1 -// CHECK:STDOUT: %N.patt.loc6_6.2 => constants.%N.f0243b.1 -// CHECK:STDOUT: %array_type.loc6_37.2 => constants.%array_type.f81 +// CHECK:STDOUT: specific @F(constants.%N.c80) { +// CHECK:STDOUT: %N.loc6_6.2 => constants.%N.c80 +// CHECK:STDOUT: %N.patt.loc6_6.2 => constants.%N.c80 +// CHECK:STDOUT: %array_type.loc6_37.2 => constants.%array_type.6a2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_3.1ba) { @@ -467,9 +467,9 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.dd1 -// CHECK:STDOUT: %Convert.bound.loc6_57.2 => constants.%Convert.bound.0db -// CHECK:STDOUT: %Convert.specific_fn.loc6_57.2 => constants.%Convert.specific_fn.456 -// CHECK:STDOUT: %int.convert_checked.loc6_57.2 => constants.%int_3.25b +// CHECK:STDOUT: %Convert.bound.loc6_57.2 => constants.%Convert.bound.b30 +// CHECK:STDOUT: %Convert.specific_fn.loc6_57.2 => constants.%Convert.specific_fn.b42 +// CHECK:STDOUT: %int.convert_checked.loc6_57.2 => constants.%int_3.822 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- type_and_bound.carbon @@ -485,10 +485,10 @@ fn G() -> i32 { // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [template] // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 1 [symbolic] // CHECK:STDOUT: %N.patt: Core.IntLiteral = symbolic_binding_pattern N, 1 [symbolic] -// CHECK:STDOUT: %array_type.24b: type = array_type %N, %T [symbolic] +// CHECK:STDOUT: %array_type.bb5: type = array_type %N, %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.24b [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.bb5 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] @@ -526,8 +526,8 @@ fn G() -> i32 { // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc6_6.1, runtime_param [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] // CHECK:STDOUT: %N.patt.loc6_16.1: Core.IntLiteral = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc6_16.2 (constants.%N.patt)] // CHECK:STDOUT: %N.param_patt: Core.IntLiteral = value_param_pattern %N.patt.loc6_16.1, runtime_param [symbolic = %N.patt.loc6_16.2 (constants.%N.patt)] -// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_47.2 (%array_type.24b) = binding_pattern a -// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_47.2 (%array_type.24b) = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_47.2 (%array_type.bb5) = binding_pattern a +// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_47.2 (%array_type.bb5) = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] @@ -540,13 +540,13 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc6_36.3: type = converted %int_literal.make_type, %.loc6_36.2 [template = Core.IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: %N.loc6_16.1: Core.IntLiteral = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc6_16.2 (constants.%N)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_47.2 (%array_type.24b) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_47: type = splice_block %array_type.loc6_47.1 [symbolic = %array_type.loc6_47.2 (constants.%array_type.24b)] { +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_47.2 (%array_type.bb5) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_47: type = splice_block %array_type.loc6_47.1 [symbolic = %array_type.loc6_47.2 (constants.%array_type.bb5)] { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, %N.loc6_16.1 [symbolic = %N.loc6_16.2 (constants.%N)] -// CHECK:STDOUT: %array_type.loc6_47.1: type = array_type %N.ref, %T [symbolic = %array_type.loc6_47.2 (constants.%array_type.24b)] +// CHECK:STDOUT: %array_type.loc6_47.1: type = array_type %N.ref, %T [symbolic = %array_type.loc6_47.2 (constants.%array_type.bb5)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_47.2 (%array_type.24b) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_47.2 (%array_type.bb5) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {} // CHECK:STDOUT: } @@ -564,12 +564,12 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt.loc6_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] // CHECK:STDOUT: %N.loc6_16.2: Core.IntLiteral = bind_symbolic_name N, 1 [symbolic = %N.loc6_16.2 (constants.%N)] // CHECK:STDOUT: %N.patt.loc6_16.2: Core.IntLiteral = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc6_16.2 (constants.%N.patt)] -// CHECK:STDOUT: %array_type.loc6_47.2: type = array_type %N.loc6_16.2, @F.%T.loc6_6.2 (%T) [symbolic = %array_type.loc6_47.2 (constants.%array_type.24b)] +// CHECK:STDOUT: %array_type.loc6_47.2: type = array_type %N.loc6_16.2, @F.%T.loc6_6.2 (%T) [symbolic = %array_type.loc6_47.2 (constants.%array_type.bb5)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type.loc6_47.2 (%array_type.24b) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type.loc6_47.2 (%array_type.bb5) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type, %N.param_patt: Core.IntLiteral](%a.param_patt: @F.%array_type.loc6_47.2 (%array_type.24b)) { +// CHECK:STDOUT: fn[%T.param_patt: type, %N.param_patt: Core.IntLiteral](%a.param_patt: @F.%array_type.loc6_47.2 (%array_type.bb5)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -611,7 +611,7 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt.loc6_6.2 => constants.%T // CHECK:STDOUT: %N.loc6_16.2 => constants.%N // CHECK:STDOUT: %N.patt.loc6_16.2 => constants.%N -// CHECK:STDOUT: %array_type.loc6_47.2 => constants.%array_type.24b +// CHECK:STDOUT: %array_type.loc6_47.2 => constants.%array_type.bb5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C, constants.%int_3) { @@ -634,21 +634,21 @@ fn G() -> i32 { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %array_type.2e9: type = array_type %int_2, %T [symbolic] +// CHECK:STDOUT: %array_type.9d4: type = array_type %int_2, %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.a03: = require_complete_type %array_type.2e9 [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.d11: = require_complete_type %array_type.9d4 [symbolic] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] @@ -664,8 +664,8 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -683,21 +683,21 @@ fn G() -> i32 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc6_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc6_6.1, runtime_param [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_24.2 (%array_type.2e9) = binding_pattern a -// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_24.2 (%array_type.2e9) = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_24.2 (%array_type.9d4) = binding_pattern a +// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_24.2 (%array_type.9d4) = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%T.loc6_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%T.loc6_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_30: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_24.2 (%array_type.2e9) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_24: type = splice_block %array_type.loc6_24.1 [symbolic = %array_type.loc6_24.2 (constants.%array_type.2e9)] { +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_24.2 (%array_type.9d4) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_24: type = splice_block %array_type.loc6_24.1 [symbolic = %array_type.loc6_24.2 (constants.%array_type.9d4)] { // CHECK:STDOUT: %T.ref.loc6_20: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2] -// CHECK:STDOUT: %array_type.loc6_24.1: type = array_type %int_2, %T [symbolic = %array_type.loc6_24.2 (constants.%array_type.2e9)] +// CHECK:STDOUT: %array_type.loc6_24.1: type = array_type %int_2, %T [symbolic = %array_type.loc6_24.2 (constants.%array_type.9d4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_24.2 (%array_type.2e9) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_24.2 (%array_type.9d4) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -722,25 +722,25 @@ fn G() -> i32 { // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { // CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc6_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %array_type.loc6_24.2: type = array_type constants.%int_2, @F.%T.loc6_6.2 (%T) [symbolic = %array_type.loc6_24.2 (constants.%array_type.2e9)] +// CHECK:STDOUT: %array_type.loc6_24.2: type = array_type constants.%int_2, @F.%T.loc6_6.2 (%T) [symbolic = %array_type.loc6_24.2 (constants.%array_type.9d4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_27: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_27 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%array_type.loc6_24.2 (%array_type.2e9) [symbolic = %require_complete.loc6_17 (constants.%require_complete.a03)] +// CHECK:STDOUT: %require_complete.loc6_27: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_27 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%array_type.loc6_24.2 (%array_type.9d4) [symbolic = %require_complete.loc6_17 (constants.%require_complete.d11)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%a.param_patt: @F.%array_type.loc6_24.2 (%array_type.2e9)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%a.param_patt: @F.%array_type.loc6_24.2 (%array_type.9d4)) -> @F.%T.loc6_6.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @F.%array_type.loc6_24.2 (%array_type.2e9) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @F.%array_type.loc6_24.2 (%array_type.9d4) = name_ref a, %a // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_43.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_43.2: %i32 = converted %int_0, %.loc6_43.1 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_44.1: ref @F.%array_type.loc6_24.2 (%array_type.2e9) = value_as_ref %a.ref +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_43.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_43.2: %i32 = converted %int_0, %.loc6_43.1 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_44.1: ref @F.%array_type.loc6_24.2 (%array_type.9d4) = value_as_ref %a.ref // CHECK:STDOUT: %.loc6_44.2: ref @F.%T.loc6_6.2 (%T) = array_index %.loc6_44.1, %.loc6_43.2 // CHECK:STDOUT: %.loc6_44.3: @F.%T.loc6_6.2 (%T) = bind_value %.loc6_44.2 // CHECK:STDOUT: return %.loc6_44.3 @@ -782,7 +782,7 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc6_6.2 => constants.%T -// CHECK:STDOUT: %array_type.loc6_24.2 => constants.%array_type.2e9 +// CHECK:STDOUT: %array_type.loc6_24.2 => constants.%array_type.9d4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { @@ -804,21 +804,21 @@ fn G() -> i32 { // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %IntLiteral.type: type = fn_type @IntLiteral [template] // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [template] -// CHECK:STDOUT: %N.f0243b.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.7d2de8.1: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %array_type.f81: type = array_type %N.f0243b.1, %C [symbolic] +// CHECK:STDOUT: %N.c80: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.7bf: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %array_type.6a2: type = array_type %N.c80, %C [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.109: = require_complete_type %array_type.f81 [symbolic] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.2a5: = bound_method %N.f0243b.1, %Convert.925 [symbolic] -// CHECK:STDOUT: %Convert.specific_fn.660: = specific_function %Convert.bound.2a5, @Convert.2(%int_32) [symbolic] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn.660(%N.f0243b.1) [symbolic] +// CHECK:STDOUT: %require_complete.d82: = require_complete_type %array_type.6a2 [symbolic] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.41f: = bound_method %N.c80, %Convert.956 [symbolic] +// CHECK:STDOUT: %Convert.specific_fn.122: = specific_function %Convert.bound.41f, @Convert.2(%int_32) [symbolic] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn.122(%N.c80) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] @@ -832,20 +832,20 @@ fn G() -> i32 { // CHECK:STDOUT: %array_type.002: type = array_type %int_3.1ba, %C [template] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_3.1ba) [template] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IntLiteral = %import_ref.8ee -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .IntLiteral = %import_ref.72f0 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.8ee: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] +// CHECK:STDOUT: %import_ref.72f0: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -860,10 +860,10 @@ fn G() -> i32 { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [template = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %N.patt.loc7_6.1: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc7_6.2 (constants.%N.patt.7d2de8.1)] -// CHECK:STDOUT: %N.param_patt: Core.IntLiteral = value_param_pattern %N.patt.loc7_6.1, runtime_param [symbolic = %N.patt.loc7_6.2 (constants.%N.patt.7d2de8.1)] -// CHECK:STDOUT: %a.patt: @F.%array_type.loc7_37.2 (%array_type.f81) = binding_pattern a -// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc7_37.2 (%array_type.f81) = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %N.patt.loc7_6.1: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc7_6.2 (constants.%N.patt.7bf)] +// CHECK:STDOUT: %N.param_patt: Core.IntLiteral = value_param_pattern %N.patt.loc7_6.1, runtime_param [symbolic = %N.patt.loc7_6.2 (constants.%N.patt.7bf)] +// CHECK:STDOUT: %a.patt: @F.%array_type.loc7_37.2 (%array_type.6a2) = binding_pattern a +// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc7_37.2 (%array_type.6a2) = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -872,19 +872,19 @@ fn G() -> i32 { // CHECK:STDOUT: %N.param: Core.IntLiteral = value_param runtime_param // CHECK:STDOUT: %.loc7_26.1: type = splice_block %.loc7_26.3 [template = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f0 [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc7_26.2: type = value_of_initializer %int_literal.make_type [template = Core.IntLiteral] // CHECK:STDOUT: %.loc7_26.3: type = converted %int_literal.make_type, %.loc7_26.2 [template = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc7_6.1: Core.IntLiteral = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc7_6.2 (constants.%N.f0243b.1)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc7_37.2 (%array_type.f81) = value_param runtime_param0 -// CHECK:STDOUT: %.loc7_37: type = splice_block %array_type.loc7_37.1 [symbolic = %array_type.loc7_37.2 (constants.%array_type.f81)] { +// CHECK:STDOUT: %N.loc7_6.1: Core.IntLiteral = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc7_6.2 (constants.%N.c80)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc7_37.2 (%array_type.6a2) = value_param runtime_param0 +// CHECK:STDOUT: %.loc7_37: type = splice_block %array_type.loc7_37.1 [symbolic = %array_type.loc7_37.2 (constants.%array_type.6a2)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %N.ref.loc7_36: Core.IntLiteral = name_ref N, %N.loc7_6.1 [symbolic = %N.loc7_6.2 (constants.%N.f0243b.1)] -// CHECK:STDOUT: %array_type.loc7_37.1: type = array_type %N.ref.loc7_36, %C [symbolic = %array_type.loc7_37.2 (constants.%array_type.f81)] +// CHECK:STDOUT: %N.ref.loc7_36: Core.IntLiteral = name_ref N, %N.loc7_6.1 [symbolic = %N.loc7_6.2 (constants.%N.c80)] +// CHECK:STDOUT: %array_type.loc7_37.1: type = array_type %N.ref.loc7_36, %C [symbolic = %array_type.loc7_37.2 (constants.%array_type.6a2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc7_37.2 (%array_type.f81) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc7_37.2 (%array_type.6a2) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -916,22 +916,22 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc7_6.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc7_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc7_6.2 (constants.%N.f0243b.1)] -// CHECK:STDOUT: %N.patt.loc7_6.2: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc7_6.2 (constants.%N.patt.7d2de8.1)] -// CHECK:STDOUT: %array_type.loc7_37.2: type = array_type %N.loc7_6.2, %C [symbolic = %array_type.loc7_37.2 (constants.%array_type.f81)] +// CHECK:STDOUT: %N.loc7_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc7_6.2 (constants.%N.c80)] +// CHECK:STDOUT: %N.patt.loc7_6.2: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc7_6.2 (constants.%N.patt.7bf)] +// CHECK:STDOUT: %array_type.loc7_37.2: type = array_type %N.loc7_6.2, %C [symbolic = %array_type.loc7_37.2 (constants.%array_type.6a2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type.loc7_37.2 (%array_type.f81) [symbolic = %require_complete (constants.%require_complete.109)] -// CHECK:STDOUT: %Convert.bound.loc7_57.2: = bound_method %N.loc7_6.2, constants.%Convert.925 [symbolic = %Convert.bound.loc7_57.2 (constants.%Convert.bound.2a5)] -// CHECK:STDOUT: %Convert.specific_fn.loc7_57.2: = specific_function %Convert.bound.loc7_57.2, @Convert.2(constants.%int_32) [symbolic = %Convert.specific_fn.loc7_57.2 (constants.%Convert.specific_fn.660)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type.loc7_37.2 (%array_type.6a2) [symbolic = %require_complete (constants.%require_complete.d82)] +// CHECK:STDOUT: %Convert.bound.loc7_57.2: = bound_method %N.loc7_6.2, constants.%Convert.956 [symbolic = %Convert.bound.loc7_57.2 (constants.%Convert.bound.41f)] +// CHECK:STDOUT: %Convert.specific_fn.loc7_57.2: = specific_function %Convert.bound.loc7_57.2, @Convert.2(constants.%int_32) [symbolic = %Convert.specific_fn.loc7_57.2 (constants.%Convert.specific_fn.122)] // CHECK:STDOUT: %int.convert_checked.loc7_57.2: init %i32 = call %Convert.specific_fn.loc7_57.2(%N.loc7_6.2) [symbolic = %int.convert_checked.loc7_57.2 (constants.%int.convert_checked)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.param_patt: Core.IntLiteral](%a.param_patt: @F.%array_type.loc7_37.2 (%array_type.f81)) -> %i32 { +// CHECK:STDOUT: fn[%N.param_patt: Core.IntLiteral](%a.param_patt: @F.%array_type.loc7_37.2 (%array_type.6a2)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc7_56: Core.IntLiteral = name_ref N, %N.loc7_6.1 [symbolic = %N.loc7_6.2 (constants.%N.f0243b.1)] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc7_57.1: = bound_method %N.ref.loc7_56, %impl.elem0 [symbolic = %Convert.bound.loc7_57.2 (constants.%Convert.bound.2a5)] -// CHECK:STDOUT: %Convert.specific_fn.loc7_57.1: = specific_function %Convert.bound.loc7_57.1, @Convert.2(constants.%int_32) [symbolic = %Convert.specific_fn.loc7_57.2 (constants.%Convert.specific_fn.660)] +// CHECK:STDOUT: %N.ref.loc7_56: Core.IntLiteral = name_ref N, %N.loc7_6.1 [symbolic = %N.loc7_6.2 (constants.%N.c80)] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc7_57.1: = bound_method %N.ref.loc7_56, %impl.elem0 [symbolic = %Convert.bound.loc7_57.2 (constants.%Convert.bound.41f)] +// CHECK:STDOUT: %Convert.specific_fn.loc7_57.1: = specific_function %Convert.bound.loc7_57.1, @Convert.2(constants.%int_32) [symbolic = %Convert.specific_fn.loc7_57.2 (constants.%Convert.specific_fn.122)] // CHECK:STDOUT: %int.convert_checked.loc7_57.1: init %i32 = call %Convert.specific_fn.loc7_57.1(%N.ref.loc7_56) [symbolic = %int.convert_checked.loc7_57.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc7_57.1: %i32 = value_of_initializer %int.convert_checked.loc7_57.1 [symbolic = %int.convert_checked.loc7_57.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc7_57.2: %i32 = converted %N.ref.loc7_56, %.loc7_57.1 [symbolic = %int.convert_checked.loc7_57.2 (constants.%int.convert_checked)] @@ -972,10 +972,10 @@ fn G() -> i32 { // CHECK:STDOUT: return %.loc22_14.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.f0243b.1) { -// CHECK:STDOUT: %N.loc7_6.2 => constants.%N.f0243b.1 -// CHECK:STDOUT: %N.patt.loc7_6.2 => constants.%N.f0243b.1 -// CHECK:STDOUT: %array_type.loc7_37.2 => constants.%array_type.f81 +// CHECK:STDOUT: specific @F(constants.%N.c80) { +// CHECK:STDOUT: %N.loc7_6.2 => constants.%N.c80 +// CHECK:STDOUT: %N.patt.loc7_6.2 => constants.%N.c80 +// CHECK:STDOUT: %array_type.loc7_37.2 => constants.%array_type.6a2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_3.1ba) { @@ -985,9 +985,9 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.dd1 -// CHECK:STDOUT: %Convert.bound.loc7_57.2 => constants.%Convert.bound.0db -// CHECK:STDOUT: %Convert.specific_fn.loc7_57.2 => constants.%Convert.specific_fn.456 -// CHECK:STDOUT: %int.convert_checked.loc7_57.2 => constants.%int_3.25b +// CHECK:STDOUT: %Convert.bound.loc7_57.2 => constants.%Convert.bound.b30 +// CHECK:STDOUT: %Convert.specific_fn.loc7_57.2 => constants.%Convert.specific_fn.b42 +// CHECK:STDOUT: %int.convert_checked.loc7_57.2 => constants.%int_3.822 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_bound_type_mismatch.carbon @@ -998,19 +998,19 @@ fn G() -> i32 { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.a9b: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [template] -// CHECK:STDOUT: %impl_witness.dd3: = impl_witness (imports.%import_ref.a80), @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.type.d18: type = fn_type @Convert.3, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.079: %Convert.type.d18 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.3e4, %Convert.079 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [template] +// CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%import_ref.85c), @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.3(%int_32) [symbolic] -// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.3e4) [symbolic] -// CHECK:STDOUT: %array_type.044: type = array_type %int.convert_checked, %C [symbolic] +// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.51e) [symbolic] +// CHECK:STDOUT: %array_type.c13: type = array_type %int.convert_checked, %C [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.54c: = require_complete_type %array_type.044 [symbolic] +// CHECK:STDOUT: %require_complete.303: = require_complete_type %array_type.c13 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] @@ -1025,8 +1025,8 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1042,10 +1042,10 @@ fn G() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %N.patt.loc6_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc6_6.1, runtime_param [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_23.2 (%array_type.044) = binding_pattern a -// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_23.2 (%array_type.044) = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %N.patt.loc6_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc6_6.1, runtime_param [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %a.patt: @F.%array_type.loc6_23.2 (%array_type.c13) = binding_pattern a +// CHECK:STDOUT: %a.param_patt: @F.%array_type.loc6_23.2 (%array_type.c13) = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -1056,20 +1056,20 @@ fn G() -> i32 { // CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_23.2 (%array_type.044) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_23: type = splice_block %array_type.loc6_23.1 [symbolic = %array_type.loc6_23.2 (constants.%array_type.044)] { +// CHECK:STDOUT: %N.loc6_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_23.2 (%array_type.c13) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_23: type = splice_block %array_type.loc6_23.1 [symbolic = %array_type.loc6_23.2 (constants.%array_type.c13)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %N.ref.loc6_22: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %impl.elem0: %Convert.type.a9b = impl_witness_access constants.%impl_witness.dd3, element0 [template = constants.%Convert.079] +// CHECK:STDOUT: %N.ref.loc6_22: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %impl.elem0: %Convert.type.71e = impl_witness_access constants.%impl_witness.023, element0 [template = constants.%Convert.960] // CHECK:STDOUT: %Convert.bound.loc6_22.1: = bound_method %N.ref.loc6_22, %impl.elem0 [symbolic = %Convert.bound.loc6_22.2 (constants.%Convert.bound)] // CHECK:STDOUT: %Convert.specific_fn.loc6_22.1: = specific_function %Convert.bound.loc6_22.1, @Convert.3(constants.%int_32) [symbolic = %Convert.specific_fn.loc6_22.2 (constants.%Convert.specific_fn)] // CHECK:STDOUT: %int.convert_checked.loc6_22.1: init Core.IntLiteral = call %Convert.specific_fn.loc6_22.1(%N.ref.loc6_22) [symbolic = %int.convert_checked.loc6_22.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc6_22.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc6_22.1 [symbolic = %int.convert_checked.loc6_22.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc6_22.2: Core.IntLiteral = converted %N.ref.loc6_22, %.loc6_22.1 [symbolic = %int.convert_checked.loc6_22.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type.loc6_23.1: type = array_type %.loc6_22.2, %C [symbolic = %array_type.loc6_23.2 (constants.%array_type.044)] +// CHECK:STDOUT: %array_type.loc6_23.1: type = array_type %.loc6_22.2, %C [symbolic = %array_type.loc6_23.2 (constants.%array_type.c13)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_23.2 (%array_type.044) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_23.2 (%array_type.c13) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -1093,19 +1093,19 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc6_6.1: %i32) { -// CHECK:STDOUT: %N.loc6_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc6_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %Convert.bound.loc6_22.2: = bound_method %N.loc6_6.2, constants.%Convert.079 [symbolic = %Convert.bound.loc6_22.2 (constants.%Convert.bound)] +// CHECK:STDOUT: %N.loc6_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc6_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %Convert.bound.loc6_22.2: = bound_method %N.loc6_6.2, constants.%Convert.960 [symbolic = %Convert.bound.loc6_22.2 (constants.%Convert.bound)] // CHECK:STDOUT: %Convert.specific_fn.loc6_22.2: = specific_function %Convert.bound.loc6_22.2, @Convert.3(constants.%int_32) [symbolic = %Convert.specific_fn.loc6_22.2 (constants.%Convert.specific_fn)] // CHECK:STDOUT: %int.convert_checked.loc6_22.2: init Core.IntLiteral = call %Convert.specific_fn.loc6_22.2(%N.loc6_6.2) [symbolic = %int.convert_checked.loc6_22.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type.loc6_23.2: type = array_type %int.convert_checked.loc6_22.2, %C [symbolic = %array_type.loc6_23.2 (constants.%array_type.044)] +// CHECK:STDOUT: %array_type.loc6_23.2: type = array_type %int.convert_checked.loc6_22.2, %C [symbolic = %array_type.loc6_23.2 (constants.%array_type.c13)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type.loc6_23.2 (%array_type.044) [symbolic = %require_complete (constants.%require_complete.54c)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%array_type.loc6_23.2 (%array_type.c13) [symbolic = %require_complete (constants.%require_complete.303)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.param_patt: %i32](%a.param_patt: @F.%array_type.loc6_23.2 (%array_type.044)) -> %i32 { +// CHECK:STDOUT: fn[%N.param_patt: %i32](%a.param_patt: @F.%array_type.loc6_23.2 (%array_type.c13)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_42: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.ref.loc6_42: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] // CHECK:STDOUT: return %N.ref.loc6_42 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1138,12 +1138,12 @@ fn G() -> i32 { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc6_6.2 => constants.%N.3e4 +// CHECK:STDOUT: specific @F(constants.%N.51e) { +// CHECK:STDOUT: %N.loc6_6.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc6_6.2 => constants.%N.51e // CHECK:STDOUT: %Convert.bound.loc6_22.2 => constants.%Convert.bound // CHECK:STDOUT: %Convert.specific_fn.loc6_22.2 => constants.%Convert.specific_fn // CHECK:STDOUT: %int.convert_checked.loc6_22.2 => constants.%int.convert_checked -// CHECK:STDOUT: %array_type.loc6_23.2 => constants.%array_type.044 +// CHECK:STDOUT: %array_type.loc6_23.2 => constants.%array_type.c13 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index cb5a819a9ea5..f6d5f0b45483 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -72,19 +72,19 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.8a3: = require_complete_type %C.37e [symbolic] -// CHECK:STDOUT: %F.specific_fn.b60: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %C.2a4: type = class_type @C, @C(%D) [template] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.389: = require_complete_type %C.f2e [symbolic] +// CHECK:STDOUT: %F.specific_fn.ef1: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %C.131: type = class_type @C, @C(%D) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn.066: = specific_function %F, @F(%D) [template] +// CHECK:STDOUT: %F.specific_fn.c4a: = specific_function %F, @F(%D) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -114,38 +114,38 @@ fn G() -> i32 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc7_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc7_6.1, runtime_param [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %p.patt: @F.%C.loc7_22.2 (%C.37e) = binding_pattern p -// CHECK:STDOUT: %p.param_patt: @F.%C.loc7_22.2 (%C.37e) = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: @F.%C.loc7_22.2 (%C.f2e) = binding_pattern p +// CHECK:STDOUT: %p.param_patt: @F.%C.loc7_22.2 (%C.f2e) = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%T.loc7_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%T.loc7_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc7_28: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%C.loc7_22.2 (%C.37e) = value_param runtime_param0 -// CHECK:STDOUT: %.loc7_22: type = splice_block %C.loc7_22.1 [symbolic = %C.loc7_22.2 (constants.%C.37e)] { +// CHECK:STDOUT: %p.param: @F.%C.loc7_22.2 (%C.f2e) = value_param runtime_param0 +// CHECK:STDOUT: %.loc7_22: type = splice_block %C.loc7_22.1 [symbolic = %C.loc7_22.2 (constants.%C.f2e)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %T.ref.loc7_21: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %C.loc7_22.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc7_22.2 (constants.%C.37e)] +// CHECK:STDOUT: %C.loc7_22.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc7_22.2 (constants.%C.f2e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%C.loc7_22.2 (%C.37e) = bind_name p, %p.param +// CHECK:STDOUT: %p: @F.%C.loc7_22.2 (%C.f2e) = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref @F.%T.loc7_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%T.loc7_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %p.patt: %C.2a4 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %C.2a4 = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: %C.131 = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %C.131 = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc9_18: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %p.param: %C.2a4 = value_param runtime_param0 -// CHECK:STDOUT: %.loc9_12: type = splice_block %C [template = constants.%C.2a4] { +// CHECK:STDOUT: %p.param: %C.131 = value_param runtime_param0 +// CHECK:STDOUT: %.loc9_12: type = splice_block %C [template = constants.%C.131] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %D.ref.loc9_11: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%D) [template = constants.%C.2a4] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%D) [template = constants.%C.131] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %C.2a4 = bind_name p, %p.param +// CHECK:STDOUT: %p: %C.131 = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -161,7 +161,7 @@ fn G() -> i32 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -177,18 +177,18 @@ fn G() -> i32 { // CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { // CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc7_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %C.loc7_22.2: type = class_type @C, @C(%T.loc7_6.2) [symbolic = %C.loc7_22.2 (constants.%C.37e)] +// CHECK:STDOUT: %C.loc7_22.2: type = class_type @C, @C(%T.loc7_6.2) [symbolic = %C.loc7_22.2 (constants.%C.f2e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_25: = require_complete_type @F.%T.loc7_6.2 (%T) [symbolic = %require_complete.loc7_25 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc7_17: = require_complete_type @F.%C.loc7_22.2 (%C.37e) [symbolic = %require_complete.loc7_17 (constants.%require_complete.8a3)] -// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.2) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.b60)] +// CHECK:STDOUT: %require_complete.loc7_25: = require_complete_type @F.%T.loc7_6.2 (%T) [symbolic = %require_complete.loc7_25 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc7_17: = require_complete_type @F.%C.loc7_22.2 (%C.f2e) [symbolic = %require_complete.loc7_17 (constants.%require_complete.389)] +// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.2) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%C.loc7_22.2 (%C.37e)) -> @F.%T.loc7_6.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%C.loc7_22.2 (%C.f2e)) -> @F.%T.loc7_6.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%C.loc7_22.2 (%C.37e) = 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.b60)] +// CHECK:STDOUT: %p.ref: @F.%C.loc7_22.2 (%C.f2e) = 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.ef1)] // CHECK:STDOUT: %F.call: init @F.%T.loc7_6.2 (%T) = call %F.specific_fn.loc7_39.1(%p.ref) // CHECK:STDOUT: %.loc7_43.1: @F.%T.loc7_6.2 (%T) = value_of_initializer %F.call // CHECK:STDOUT: %.loc7_43.2: @F.%T.loc7_6.2 (%T) = converted %F.call, %.loc7_43.1 @@ -196,11 +196,11 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param_patt: %C.2a4) -> %return.param_patt: %D { +// CHECK:STDOUT: fn @G(%p.param_patt: %C.131) -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: %C.2a4 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%D) [template = constants.%F.specific_fn.066] +// CHECK:STDOUT: %p.ref: %C.131 = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%D) [template = constants.%F.specific_fn.c4a] // CHECK:STDOUT: %.loc9_15: ref %D = splice_block %return {} // CHECK:STDOUT: %F.call: init %D = call %F.specific_fn(%p.ref) to %.loc9_15 // CHECK:STDOUT: return %F.call to %return @@ -216,12 +216,12 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc7_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc7_6.2 => constants.%T -// CHECK:STDOUT: %C.loc7_22.2 => constants.%C.37e +// CHECK:STDOUT: %C.loc7_22.2 => constants.%C.f2e // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_25 => constants.%require_complete.db1 -// CHECK:STDOUT: %require_complete.loc7_17 => constants.%require_complete.8a3 -// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.b60 +// CHECK:STDOUT: %require_complete.loc7_25 => constants.%require_complete.4ae +// CHECK:STDOUT: %require_complete.loc7_17 => constants.%require_complete.389 +// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.ef1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(@F.%T.loc7_6.2) {} @@ -238,12 +238,12 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%D) { // CHECK:STDOUT: %T.loc7_6.2 => constants.%D // CHECK:STDOUT: %T.patt.loc7_6.2 => constants.%D -// CHECK:STDOUT: %C.loc7_22.2 => constants.%C.2a4 +// CHECK:STDOUT: %C.loc7_22.2 => constants.%C.131 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc7_25 => constants.%complete_type // CHECK:STDOUT: %require_complete.loc7_17 => constants.%complete_type -// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.066 +// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.c4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- interface.carbon @@ -253,18 +253,18 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %I.type: type = generic_class_type @I [template] // CHECK:STDOUT: %I.generic: %I.type = struct_value () [template] -// CHECK:STDOUT: %I.fad: type = class_type @I, @I(%T) [symbolic] +// CHECK:STDOUT: %I.ff1: type = class_type @I, @I(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete: = require_complete_type %I.fad [symbolic] -// CHECK:STDOUT: %F.specific_fn.12b: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %I.f68: type = class_type @I, @I(%C) [template] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.ff1 [symbolic] +// CHECK:STDOUT: %F.specific_fn.ef1: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %I.ed8: type = class_type @I, @I(%C) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn.e46: = specific_function %F, @F(%C) [template] +// CHECK:STDOUT: %F.specific_fn.04a: = specific_function %F, @F(%C) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -294,38 +294,38 @@ fn G() -> i32 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc7_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc7_6.1, runtime_param [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %p.patt: @F.%I.loc7_22.2 (%I.fad) = binding_pattern p -// CHECK:STDOUT: %p.param_patt: @F.%I.loc7_22.2 (%I.fad) = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: @F.%I.loc7_22.2 (%I.ff1) = binding_pattern p +// CHECK:STDOUT: %p.param_patt: @F.%I.loc7_22.2 (%I.ff1) = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %C = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %C = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%I.loc7_22.2 (%I.fad) = value_param runtime_param0 -// CHECK:STDOUT: %.loc7_22: type = splice_block %I.loc7_22.1 [symbolic = %I.loc7_22.2 (constants.%I.fad)] { +// CHECK:STDOUT: %p.param: @F.%I.loc7_22.2 (%I.ff1) = value_param runtime_param0 +// CHECK:STDOUT: %.loc7_22: type = splice_block %I.loc7_22.1 [symbolic = %I.loc7_22.2 (constants.%I.ff1)] { // CHECK:STDOUT: %I.ref: %I.type = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %I.loc7_22.1: type = class_type @I, @I(constants.%T) [symbolic = %I.loc7_22.2 (constants.%I.fad)] +// CHECK:STDOUT: %I.loc7_22.1: type = class_type @I, @I(constants.%T) [symbolic = %I.loc7_22.2 (constants.%I.ff1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%I.loc7_22.2 (%I.fad) = bind_name p, %p.param +// CHECK:STDOUT: %p: @F.%I.loc7_22.2 (%I.ff1) = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref %C = out_param runtime_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %p.patt: %I.f68 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %I.f68 = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: %I.ed8 = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %I.ed8 = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %C = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %C = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc9_18: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %p.param: %I.f68 = value_param runtime_param0 -// CHECK:STDOUT: %.loc9_12: type = splice_block %I [template = constants.%I.f68] { +// CHECK:STDOUT: %p.param: %I.ed8 = value_param runtime_param0 +// CHECK:STDOUT: %.loc9_12: type = splice_block %I [template = constants.%I.ed8] { // CHECK:STDOUT: %I.ref: %I.type = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %C.ref.loc9_11: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %I: type = class_type @I, @I(constants.%C) [template = constants.%I.f68] +// CHECK:STDOUT: %I: type = class_type @I, @I(constants.%C) [template = constants.%I.ed8] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %I.f68 = bind_name p, %p.param +// CHECK:STDOUT: %p: %I.ed8 = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref %C = out_param runtime_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -341,7 +341,7 @@ fn G() -> i32 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%I.fad +// CHECK:STDOUT: .Self = constants.%I.ff1 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -357,28 +357,28 @@ fn G() -> i32 { // CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { // CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc7_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %I.loc7_22.2: type = class_type @I, @I(%T.loc7_6.2) [symbolic = %I.loc7_22.2 (constants.%I.fad)] +// CHECK:STDOUT: %I.loc7_22.2: type = class_type @I, @I(%T.loc7_6.2) [symbolic = %I.loc7_22.2 (constants.%I.ff1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%I.loc7_22.2 (%I.fad) [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.2) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.12b)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%I.loc7_22.2 (%I.ff1) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.2) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%I.loc7_22.2 (%I.fad)) -> %return.param_patt: %C { +// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%I.loc7_22.2 (%I.ff1)) -> %return.param_patt: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%I.loc7_22.2 (%I.fad) = 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.12b)] +// CHECK:STDOUT: %p.ref: @F.%I.loc7_22.2 (%I.ff1) = 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.ef1)] // CHECK:STDOUT: %.loc7_25: ref %C = splice_block %return {} // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn.loc7_39.1(%p.ref) to %.loc7_25 // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param_patt: %I.f68) -> %return.param_patt: %C { +// CHECK:STDOUT: fn @G(%p.param_patt: %I.ed8) -> %return.param_patt: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: %I.f68 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.e46] +// CHECK:STDOUT: %p.ref: %I.ed8 = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.04a] // CHECK:STDOUT: %.loc9_15: ref %C = splice_block %return {} // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc9_15 // CHECK:STDOUT: return %F.call to %return @@ -394,11 +394,11 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc7_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc7_6.2 => constants.%T -// CHECK:STDOUT: %I.loc7_22.2 => constants.%I.fad +// CHECK:STDOUT: %I.loc7_22.2 => constants.%I.ff1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.12b +// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.ef1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@F.%T.loc7_6.2) {} @@ -415,11 +415,11 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc7_6.2 => constants.%C // CHECK:STDOUT: %T.patt.loc7_6.2 => constants.%C -// CHECK:STDOUT: %I.loc7_22.2 => constants.%I.f68 +// CHECK:STDOUT: %I.loc7_22.2 => constants.%I.ed8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.e46 +// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.04a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nested.carbon @@ -429,34 +429,34 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [template] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [template] -// CHECK:STDOUT: %Outer.cc3: type = class_type @Outer, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Outer.9d6: type = class_type @Outer, @Outer(%T) [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %Inner.type.099: type = generic_class_type @Inner, @Outer(%T) [symbolic] -// CHECK:STDOUT: %Inner.generic.c26: %Inner.type.099 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.188: type = class_type @Inner, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %Inner.type.eae: type = generic_class_type @Inner, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Inner.generic.137: %Inner.type.eae = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.c71: type = class_type @Inner, @Inner(%T, %U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %D: type = class_type @D [template] -// CHECK:STDOUT: %require_complete.889: = require_complete_type %Outer.cc3 [symbolic] +// CHECK:STDOUT: %require_complete.127: = require_complete_type %Outer.9d6 [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.cab: type = tuple_type (%T, %U) [symbolic] +// CHECK:STDOUT: %tuple.type.30b: type = tuple_type (%T, %U) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.73f: = require_complete_type %tuple.type.cab [symbolic] -// CHECK:STDOUT: %require_complete.ae5: = require_complete_type %Inner.188 [symbolic] -// CHECK:STDOUT: %F.specific_fn.b50: = specific_function %F, @F(%T, %U) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %Outer.909: type = class_type @Outer, @Outer(%C) [template] -// CHECK:STDOUT: %Inner.type.f38: type = generic_class_type @Inner, @Outer(%C) [template] -// CHECK:STDOUT: %Inner.generic.8e3: %Inner.type.f38 = struct_value () [template] -// CHECK:STDOUT: %Inner.379: type = class_type @Inner, @Inner(%C, %D) [template] +// CHECK:STDOUT: %require_complete.fe1: = require_complete_type %tuple.type.30b [symbolic] +// CHECK:STDOUT: %require_complete.e7e: = require_complete_type %Inner.c71 [symbolic] +// CHECK:STDOUT: %F.specific_fn.dd9: = specific_function %F, @F(%T, %U) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.b54: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %Outer.7c4: type = class_type @Outer, @Outer(%C) [template] +// CHECK:STDOUT: %Inner.type.181: type = generic_class_type @Inner, @Outer(%C) [template] +// CHECK:STDOUT: %Inner.generic.205: %Inner.type.181 = struct_value () [template] +// CHECK:STDOUT: %Inner.d70: type = class_type @Inner, @Inner(%C, %D) [template] // CHECK:STDOUT: %tuple.type.e8a: type = tuple_type (%C, %D) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn.b5c: = specific_function %F, @F(%C, %D) [template] +// CHECK:STDOUT: %F.specific_fn.4a7: = specific_function %F, @F(%C, %D) [template] // CHECK:STDOUT: %complete_type.53b: = complete_type_witness %tuple.type.e8a [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -491,36 +491,36 @@ fn G() -> i32 { // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc13_6.1, runtime_param [symbolic = %T.patt.loc13_6.2 (constants.%T.patt)] // CHECK:STDOUT: %U.patt.loc13_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc13_16.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc13_16.1, runtime_param [symbolic = %U.patt.loc13_16.2 (constants.%U.patt)] -// CHECK:STDOUT: %p.patt: @F.%Inner.loc13_45.2 (%Inner.188) = binding_pattern p -// CHECK:STDOUT: %p.param_patt: @F.%Inner.loc13_45.2 (%Inner.188) = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: @F.%tuple.type (%tuple.type.cab) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @F.%tuple.type (%tuple.type.cab) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: @F.%Inner.loc13_45.2 (%Inner.c71) = binding_pattern p +// CHECK:STDOUT: %p.param_patt: @F.%Inner.loc13_45.2 (%Inner.c71) = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @F.%tuple.type (%tuple.type.30b) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.%tuple.type (%tuple.type.30b) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13_52: type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: %U.ref.loc13_55: type = name_ref U, %U.loc13_16.1 [symbolic = %U.loc13_16.2 (constants.%U)] // CHECK:STDOUT: %.loc13_56.1: %tuple.type.24b = tuple_literal (%T.ref.loc13_52, %U.ref.loc13_55) -// CHECK:STDOUT: %.loc13_56.2: type = converted %.loc13_56.1, constants.%tuple.type.cab [symbolic = %tuple.type (constants.%tuple.type.cab)] +// CHECK:STDOUT: %.loc13_56.2: type = converted %.loc13_56.1, constants.%tuple.type.30b [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = value_param runtime_param // CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc13_16.2 (constants.%U)] -// CHECK:STDOUT: %p.param: @F.%Inner.loc13_45.2 (%Inner.188) = value_param runtime_param0 -// CHECK:STDOUT: %.loc13_45: type = splice_block %Inner.loc13_45.1 [symbolic = %Inner.loc13_45.2 (constants.%Inner.188)] { +// CHECK:STDOUT: %p.param: @F.%Inner.loc13_45.2 (%Inner.c71) = value_param runtime_param0 +// CHECK:STDOUT: %.loc13_45: type = splice_block %Inner.loc13_45.1 [symbolic = %Inner.loc13_45.2 (constants.%Inner.c71)] { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [template = constants.%Outer.generic] // CHECK:STDOUT: %T.ref.loc13_35: type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] -// CHECK:STDOUT: %Outer.loc13_36.1: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc13_36.2 (constants.%Outer.cc3)] -// CHECK:STDOUT: %.loc13_37: @F.%Inner.type (%Inner.type.099) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.c26)] -// CHECK:STDOUT: %Inner.ref: @F.%Inner.type (%Inner.type.099) = name_ref Inner, %.loc13_37 [symbolic = %Inner.generic (constants.%Inner.generic.c26)] +// CHECK:STDOUT: %Outer.loc13_36.1: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc13_36.2 (constants.%Outer.9d6)] +// CHECK:STDOUT: %.loc13_37: @F.%Inner.type (%Inner.type.eae) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.137)] +// CHECK:STDOUT: %Inner.ref: @F.%Inner.type (%Inner.type.eae) = name_ref Inner, %.loc13_37 [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %U.ref.loc13_44: type = name_ref U, %U.loc13_16.1 [symbolic = %U.loc13_16.2 (constants.%U)] -// CHECK:STDOUT: %Inner.loc13_45.1: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_45.2 (constants.%Inner.188)] +// CHECK:STDOUT: %Inner.loc13_45.1: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_45.2 (constants.%Inner.c71)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%Inner.loc13_45.2 (%Inner.188) = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref @F.%tuple.type (%tuple.type.cab) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @F.%tuple.type (%tuple.type.cab) = return_slot %return.param +// CHECK:STDOUT: %p: @F.%Inner.loc13_45.2 (%Inner.c71) = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref @F.%tuple.type (%tuple.type.30b) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @F.%tuple.type (%tuple.type.30b) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %p.patt: %Inner.379 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %Inner.379 = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: %Inner.d70 = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %Inner.d70 = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %tuple.type.e8a = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %tuple.type.e8a = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -528,17 +528,17 @@ fn G() -> i32 { // CHECK:STDOUT: %D.ref.loc15_35: type = name_ref D, file.%D.decl [template = constants.%D] // CHECK:STDOUT: %.loc15_36.1: %tuple.type.24b = tuple_literal (%C.ref.loc15_32, %D.ref.loc15_35) // CHECK:STDOUT: %.loc15_36.2: type = converted %.loc15_36.1, constants.%tuple.type.e8a [template = constants.%tuple.type.e8a] -// CHECK:STDOUT: %p.param: %Inner.379 = value_param runtime_param0 -// CHECK:STDOUT: %.loc15_25: type = splice_block %Inner [template = constants.%Inner.379] { +// CHECK:STDOUT: %p.param: %Inner.d70 = value_param runtime_param0 +// CHECK:STDOUT: %.loc15_25: type = splice_block %Inner [template = constants.%Inner.d70] { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [template = constants.%Outer.generic] // CHECK:STDOUT: %C.ref.loc15_15: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%C) [template = constants.%Outer.909] -// CHECK:STDOUT: %.loc15_17: %Inner.type.f38 = specific_constant @Outer.%Inner.decl, @Outer(constants.%C) [template = constants.%Inner.generic.8e3] -// CHECK:STDOUT: %Inner.ref: %Inner.type.f38 = name_ref Inner, %.loc15_17 [template = constants.%Inner.generic.8e3] +// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%C) [template = constants.%Outer.7c4] +// CHECK:STDOUT: %.loc15_17: %Inner.type.181 = specific_constant @Outer.%Inner.decl, @Outer(constants.%C) [template = constants.%Inner.generic.205] +// CHECK:STDOUT: %Inner.ref: %Inner.type.181 = name_ref Inner, %.loc15_17 [template = constants.%Inner.generic.205] // CHECK:STDOUT: %D.ref.loc15_24: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%C, constants.%D) [template = constants.%Inner.379] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%C, constants.%D) [template = constants.%Inner.d70] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %Inner.379 = bind_name p, %p.param +// CHECK:STDOUT: %p: %Inner.d70 = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref %tuple.type.e8a = out_param runtime_param1 // CHECK:STDOUT: %return: ref %tuple.type.e8a = return_slot %return.param // CHECK:STDOUT: } @@ -549,11 +549,11 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.2) [symbolic = %Inner.type (constants.%Inner.type.099)] -// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.099) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.c26)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.099) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.c26)] { +// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.eae) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.137)] { // CHECK:STDOUT: %U.patt.loc5_15.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc5_15.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc5_15.1, runtime_param [symbolic = %U.patt.loc5_15.2 (constants.%U.patt)] // CHECK:STDOUT: } { @@ -563,7 +563,7 @@ fn G() -> i32 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.cc3 +// CHECK:STDOUT: .Self = constants.%Outer.9d6 // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } @@ -579,7 +579,7 @@ fn G() -> i32 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.188 +// CHECK:STDOUT: .Self = constants.%Inner.c71 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -605,28 +605,28 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt.loc13_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_6.2 (constants.%T.patt)] // CHECK:STDOUT: %U.loc13_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.2 (constants.%U)] // CHECK:STDOUT: %U.patt.loc13_16.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc13_16.2 (constants.%U.patt)] -// CHECK:STDOUT: %Outer.loc13_36.2: type = class_type @Outer, @Outer(%T.loc13_6.2) [symbolic = %Outer.loc13_36.2 (constants.%Outer.cc3)] -// CHECK:STDOUT: %require_complete.loc13_37: = require_complete_type @F.%Outer.loc13_36.2 (%Outer.cc3) [symbolic = %require_complete.loc13_37 (constants.%require_complete.889)] -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc13_6.2) [symbolic = %Inner.type (constants.%Inner.type.099)] -// CHECK:STDOUT: %Inner.generic: @F.%Inner.type (%Inner.type.099) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.c26)] -// CHECK:STDOUT: %Inner.loc13_45.2: type = class_type @Inner, @Inner(%T.loc13_6.2, %U.loc13_16.2) [symbolic = %Inner.loc13_45.2 (constants.%Inner.188)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.%T.loc13_6.2 (%T), @F.%U.loc13_16.2 (%U)) [symbolic = %tuple.type (constants.%tuple.type.cab)] +// CHECK:STDOUT: %Outer.loc13_36.2: type = class_type @Outer, @Outer(%T.loc13_6.2) [symbolic = %Outer.loc13_36.2 (constants.%Outer.9d6)] +// CHECK:STDOUT: %require_complete.loc13_37: = require_complete_type @F.%Outer.loc13_36.2 (%Outer.9d6) [symbolic = %require_complete.loc13_37 (constants.%require_complete.127)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc13_6.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.generic: @F.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] +// CHECK:STDOUT: %Inner.loc13_45.2: type = class_type @Inner, @Inner(%T.loc13_6.2, %U.loc13_16.2) [symbolic = %Inner.loc13_45.2 (constants.%Inner.c71)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.%T.loc13_6.2 (%T), @F.%U.loc13_16.2 (%U)) [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_48: = require_complete_type @F.%tuple.type (%tuple.type.cab) [symbolic = %require_complete.loc13_48 (constants.%require_complete.73f)] -// CHECK:STDOUT: %require_complete.loc13_27: = require_complete_type @F.%Inner.loc13_45.2 (%Inner.188) [symbolic = %require_complete.loc13_27 (constants.%require_complete.ae5)] -// CHECK:STDOUT: %F.specific_fn.loc13_67.2: = specific_function constants.%F, @F(%T.loc13_6.2, %U.loc13_16.2) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.b50)] -// CHECK:STDOUT: %require_complete.loc13_70.1: = require_complete_type @F.%T.loc13_6.2 (%T) [symbolic = %require_complete.loc13_70.1 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc13_70.2: = require_complete_type @F.%U.loc13_16.2 (%U) [symbolic = %require_complete.loc13_70.2 (constants.%require_complete.427)] +// CHECK:STDOUT: %require_complete.loc13_48: = require_complete_type @F.%tuple.type (%tuple.type.30b) [symbolic = %require_complete.loc13_48 (constants.%require_complete.fe1)] +// CHECK:STDOUT: %require_complete.loc13_27: = require_complete_type @F.%Inner.loc13_45.2 (%Inner.c71) [symbolic = %require_complete.loc13_27 (constants.%require_complete.e7e)] +// CHECK:STDOUT: %F.specific_fn.loc13_67.2: = specific_function constants.%F, @F(%T.loc13_6.2, %U.loc13_16.2) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.dd9)] +// CHECK:STDOUT: %require_complete.loc13_70.1: = require_complete_type @F.%T.loc13_6.2 (%T) [symbolic = %require_complete.loc13_70.1 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc13_70.2: = require_complete_type @F.%U.loc13_16.2 (%U) [symbolic = %require_complete.loc13_70.2 (constants.%require_complete.b54)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type, %U.param_patt: type](%p.param_patt: @F.%Inner.loc13_45.2 (%Inner.188)) -> %return.param_patt: @F.%tuple.type (%tuple.type.cab) { +// CHECK:STDOUT: fn[%T.param_patt: type, %U.param_patt: type](%p.param_patt: @F.%Inner.loc13_45.2 (%Inner.c71)) -> %return.param_patt: @F.%tuple.type (%tuple.type.30b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%Inner.loc13_45.2 (%Inner.188) = 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.b50)] -// CHECK:STDOUT: %.loc13_70.1: ref @F.%tuple.type (%tuple.type.cab) = temporary_storage -// CHECK:STDOUT: %F.call: init @F.%tuple.type (%tuple.type.cab) = call %F.specific_fn.loc13_67.1(%p.ref) to %.loc13_70.1 -// CHECK:STDOUT: %.loc13_70.2: ref @F.%tuple.type (%tuple.type.cab) = temporary %.loc13_70.1, %F.call +// CHECK:STDOUT: %p.ref: @F.%Inner.loc13_45.2 (%Inner.c71) = 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.dd9)] +// CHECK:STDOUT: %.loc13_70.1: ref @F.%tuple.type (%tuple.type.30b) = temporary_storage +// CHECK:STDOUT: %F.call: init @F.%tuple.type (%tuple.type.30b) = call %F.specific_fn.loc13_67.1(%p.ref) to %.loc13_70.1 +// CHECK:STDOUT: %.loc13_70.2: ref @F.%tuple.type (%tuple.type.30b) = temporary %.loc13_70.1, %F.call // CHECK:STDOUT: %tuple.elem0.loc13_70.1: ref @F.%T.loc13_6.2 (%T) = tuple_access %.loc13_70.2, element0 // CHECK:STDOUT: %.loc13_70.3: @F.%T.loc13_6.2 (%T) = bind_value %tuple.elem0.loc13_70.1 // CHECK:STDOUT: %tuple.elem0.loc13_70.2: ref @F.%T.loc13_6.2 (%T) = tuple_access %return, element0 @@ -635,17 +635,17 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc13_70.5: @F.%U.loc13_16.2 (%U) = bind_value %tuple.elem1.loc13_70.1 // CHECK:STDOUT: %tuple.elem1.loc13_70.2: ref @F.%U.loc13_16.2 (%U) = tuple_access %return, element1 // CHECK:STDOUT: %.loc13_70.6: init @F.%U.loc13_16.2 (%U) = initialize_from %.loc13_70.5 to %tuple.elem1.loc13_70.2 -// CHECK:STDOUT: %.loc13_70.7: init @F.%tuple.type (%tuple.type.cab) = tuple_init (%.loc13_70.4, %.loc13_70.6) to %return -// CHECK:STDOUT: %.loc13_71: init @F.%tuple.type (%tuple.type.cab) = converted %F.call, %.loc13_70.7 +// CHECK:STDOUT: %.loc13_70.7: init @F.%tuple.type (%tuple.type.30b) = tuple_init (%.loc13_70.4, %.loc13_70.6) to %return +// CHECK:STDOUT: %.loc13_71: init @F.%tuple.type (%tuple.type.30b) = converted %F.call, %.loc13_70.7 // CHECK:STDOUT: return %.loc13_71 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param_patt: %Inner.379) -> %return.param_patt: %tuple.type.e8a { +// CHECK:STDOUT: fn @G(%p.param_patt: %Inner.d70) -> %return.param_patt: %tuple.type.e8a { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: %Inner.379 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%D) [template = constants.%F.specific_fn.b5c] +// CHECK:STDOUT: %p.ref: %Inner.d70 = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%D) [template = constants.%F.specific_fn.4a7] // CHECK:STDOUT: %.loc15_28: ref %tuple.type.e8a = splice_block %return {} // CHECK:STDOUT: %F.call: init %tuple.type.e8a = call %F.specific_fn(%p.ref) to %.loc15_28 // CHECK:STDOUT: return %F.call to %return @@ -656,8 +656,8 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.099 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.c26 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.137 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%U) { @@ -674,19 +674,19 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt.loc13_6.2 => constants.%T // CHECK:STDOUT: %U.loc13_16.2 => constants.%U // CHECK:STDOUT: %U.patt.loc13_16.2 => constants.%U -// CHECK:STDOUT: %Outer.loc13_36.2 => constants.%Outer.cc3 -// CHECK:STDOUT: %require_complete.loc13_37 => constants.%require_complete.889 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.099 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.c26 -// CHECK:STDOUT: %Inner.loc13_45.2 => constants.%Inner.188 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.cab +// CHECK:STDOUT: %Outer.loc13_36.2 => constants.%Outer.9d6 +// CHECK:STDOUT: %require_complete.loc13_37 => constants.%require_complete.127 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.137 +// CHECK:STDOUT: %Inner.loc13_45.2 => constants.%Inner.c71 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_48 => constants.%require_complete.73f -// CHECK:STDOUT: %require_complete.loc13_27 => constants.%require_complete.ae5 -// CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.b50 -// CHECK:STDOUT: %require_complete.loc13_70.1 => constants.%require_complete.db1 -// CHECK:STDOUT: %require_complete.loc13_70.2 => constants.%require_complete.427 +// CHECK:STDOUT: %require_complete.loc13_48 => constants.%require_complete.fe1 +// CHECK:STDOUT: %require_complete.loc13_27 => constants.%require_complete.e7e +// CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.dd9 +// CHECK:STDOUT: %require_complete.loc13_70.1 => constants.%require_complete.4ae +// CHECK:STDOUT: %require_complete.loc13_70.2 => constants.%require_complete.b54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@F.%T.loc13_6.2) {} @@ -700,8 +700,8 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.f38 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.8e3 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.181 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.205 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%C, constants.%D) { @@ -716,17 +716,17 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt.loc13_6.2 => constants.%C // CHECK:STDOUT: %U.loc13_16.2 => constants.%D // CHECK:STDOUT: %U.patt.loc13_16.2 => constants.%D -// CHECK:STDOUT: %Outer.loc13_36.2 => constants.%Outer.909 +// CHECK:STDOUT: %Outer.loc13_36.2 => constants.%Outer.7c4 // CHECK:STDOUT: %require_complete.loc13_37 => constants.%complete_type.357 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.f38 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.8e3 -// CHECK:STDOUT: %Inner.loc13_45.2 => constants.%Inner.379 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.181 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.205 +// CHECK:STDOUT: %Inner.loc13_45.2 => constants.%Inner.d70 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.e8a // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_48 => constants.%complete_type.53b // CHECK:STDOUT: %require_complete.loc13_27 => constants.%complete_type.357 -// CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.b5c +// CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.4a7 // CHECK:STDOUT: %require_complete.loc13_70.1 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc13_70.2 => constants.%complete_type.357 // CHECK:STDOUT: } @@ -736,35 +736,35 @@ fn G() -> i32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %WithNontype.type: type = generic_class_type @WithNontype [template] // CHECK:STDOUT: %WithNontype.generic: %WithNontype.type = struct_value () [template] -// CHECK:STDOUT: %WithNontype.d38: type = class_type @WithNontype, @WithNontype(%N.3e4) [symbolic] +// CHECK:STDOUT: %WithNontype.8a6: type = class_type @WithNontype, @WithNontype(%N.51e) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.55f: = require_complete_type %WithNontype.d38 [symbolic] +// CHECK:STDOUT: %require_complete.9c5: = require_complete_type %WithNontype.8a6 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %WithNontype.969: type = class_type @WithNontype, @WithNontype(%int_0.f61) [template] -// CHECK:STDOUT: %WithNontype.val: %WithNontype.969 = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_0.f61) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %WithNontype.b82: type = class_type @WithNontype, @WithNontype(%int_0.6a9) [template] +// CHECK:STDOUT: %WithNontype.val: %WithNontype.b82 = struct_value () [template] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_0.6a9) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -779,21 +779,21 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %WithNontype.decl: %WithNontype.type = class_decl @WithNontype [template = constants.%WithNontype.generic] { -// CHECK:STDOUT: %N.patt.loc4_19.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_19.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_19.1, runtime_param [symbolic = %N.patt.loc4_19.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc4_19.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_19.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc4_19.1, runtime_param [symbolic = %N.patt.loc4_19.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: } { // CHECK:STDOUT: %N.param: %i32 = value_param runtime_param // CHECK:STDOUT: %.loc4: type = splice_block %i32 [template = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_19.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_19.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc4_19.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_19.2 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %N.patt.loc6_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc6_6.1, runtime_param [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %x.patt: @F.%WithNontype.loc6_31.2 (%WithNontype.d38) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @F.%WithNontype.loc6_31.2 (%WithNontype.d38) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %N.patt.loc6_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc6_6.1, runtime_param [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %x.patt: @F.%WithNontype.loc6_31.2 (%WithNontype.8a6) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @F.%WithNontype.loc6_31.2 (%WithNontype.8a6) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -804,14 +804,14 @@ fn G() -> i32 { // CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %x.param: @F.%WithNontype.loc6_31.2 (%WithNontype.d38) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_31: type = splice_block %WithNontype.loc6_31.1 [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.d38)] { +// CHECK:STDOUT: %N.loc6_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %x.param: @F.%WithNontype.loc6_31.2 (%WithNontype.8a6) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_31: type = splice_block %WithNontype.loc6_31.1 [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.8a6)] { // CHECK:STDOUT: %WithNontype.ref: %WithNontype.type = name_ref WithNontype, file.%WithNontype.decl [template = constants.%WithNontype.generic] -// CHECK:STDOUT: %N.ref.loc6_30: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %WithNontype.loc6_31.1: type = class_type @WithNontype, @WithNontype(constants.%N.3e4) [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.d38)] +// CHECK:STDOUT: %N.ref.loc6_30: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %WithNontype.loc6_31.1: type = class_type @WithNontype, @WithNontype(constants.%N.51e) [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.8a6)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%WithNontype.loc6_31.2 (%WithNontype.d38) = bind_name x, %x.param +// CHECK:STDOUT: %x: @F.%WithNontype.loc6_31.2 (%WithNontype.8a6) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -827,8 +827,8 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @WithNontype(%N.loc4_19.1: %i32) { -// CHECK:STDOUT: %N.loc4_19.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc4_19.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_19.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc4_19.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc4_19.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_19.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -836,22 +836,22 @@ fn G() -> i32 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%WithNontype.d38 +// CHECK:STDOUT: .Self = constants.%WithNontype.8a6 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc6_6.1: %i32) { -// CHECK:STDOUT: %N.loc6_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc6_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %WithNontype.loc6_31.2: type = class_type @WithNontype, @WithNontype(%N.loc6_6.2) [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.d38)] +// CHECK:STDOUT: %N.loc6_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc6_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %WithNontype.loc6_31.2: type = class_type @WithNontype, @WithNontype(%N.loc6_6.2) [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.8a6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%WithNontype.loc6_31.2 (%WithNontype.d38) [symbolic = %require_complete (constants.%require_complete.55f)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%WithNontype.loc6_31.2 (%WithNontype.8a6) [symbolic = %require_complete (constants.%require_complete.9c5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.param_patt: %i32](%x.param_patt: @F.%WithNontype.loc6_31.2 (%WithNontype.d38)) -> %i32 { +// CHECK:STDOUT: fn[%N.param_patt: %i32](%x.param_patt: @F.%WithNontype.loc6_31.2 (%WithNontype.8a6)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_50: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.ref.loc6_50: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] // CHECK:STDOUT: return %N.ref.loc6_50 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -862,51 +862,51 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc9_13.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %WithNontype.ref: %WithNontype.type = name_ref WithNontype, file.%WithNontype.decl [template = constants.%WithNontype.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc9_31.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc9_31.2: %i32 = converted %int_0, %.loc9_31.1 [template = constants.%int_0.f61] -// CHECK:STDOUT: %WithNontype: type = class_type @WithNontype, @WithNontype(constants.%int_0.f61) [template = constants.%WithNontype.969] -// CHECK:STDOUT: %.loc9_13.2: ref %WithNontype.969 = temporary_storage -// CHECK:STDOUT: %.loc9_13.3: init %WithNontype.969 = class_init (), %.loc9_13.2 [template = constants.%WithNontype.val] -// CHECK:STDOUT: %.loc9_13.4: ref %WithNontype.969 = temporary %.loc9_13.2, %.loc9_13.3 -// CHECK:STDOUT: %.loc9_15.1: ref %WithNontype.969 = converted %.loc9_13.1, %.loc9_13.4 -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_0.f61) [template = constants.%F.specific_fn] -// CHECK:STDOUT: %.loc9_15.2: %WithNontype.969 = bind_value %.loc9_15.1 +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc9_31.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc9_31.2: %i32 = converted %int_0, %.loc9_31.1 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %WithNontype: type = class_type @WithNontype, @WithNontype(constants.%int_0.6a9) [template = constants.%WithNontype.b82] +// CHECK:STDOUT: %.loc9_13.2: ref %WithNontype.b82 = temporary_storage +// CHECK:STDOUT: %.loc9_13.3: init %WithNontype.b82 = class_init (), %.loc9_13.2 [template = constants.%WithNontype.val] +// CHECK:STDOUT: %.loc9_13.4: ref %WithNontype.b82 = temporary %.loc9_13.2, %.loc9_13.3 +// CHECK:STDOUT: %.loc9_15.1: ref %WithNontype.b82 = converted %.loc9_13.1, %.loc9_13.4 +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_0.6a9) [template = constants.%F.specific_fn] +// CHECK:STDOUT: %.loc9_15.2: %WithNontype.b82 = bind_value %.loc9_15.1 // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%.loc9_15.2) // CHECK:STDOUT: %.loc9_33.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc9_33.2: %i32 = converted %F.call, %.loc9_33.1 // CHECK:STDOUT: return %.loc9_33.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithNontype(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc4_19.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc4_19.2 => constants.%N.3e4 +// CHECK:STDOUT: specific @WithNontype(constants.%N.51e) { +// CHECK:STDOUT: %N.loc4_19.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc4_19.2 => constants.%N.51e // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc6_6.2 => constants.%N.3e4 -// CHECK:STDOUT: %WithNontype.loc6_31.2 => constants.%WithNontype.d38 +// CHECK:STDOUT: specific @F(constants.%N.51e) { +// CHECK:STDOUT: %N.loc6_6.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc6_6.2 => constants.%N.51e +// CHECK:STDOUT: %WithNontype.loc6_31.2 => constants.%WithNontype.8a6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithNontype(@F.%N.loc6_6.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithNontype(constants.%int_0.f61) { -// CHECK:STDOUT: %N.loc4_19.2 => constants.%int_0.f61 -// CHECK:STDOUT: %N.patt.loc4_19.2 => constants.%int_0.f61 +// CHECK:STDOUT: specific @WithNontype(constants.%int_0.6a9) { +// CHECK:STDOUT: %N.loc4_19.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %N.patt.loc4_19.2 => constants.%int_0.6a9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%int_0.f61) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%int_0.f61 -// CHECK:STDOUT: %N.patt.loc6_6.2 => constants.%int_0.f61 -// CHECK:STDOUT: %WithNontype.loc6_31.2 => constants.%WithNontype.969 +// CHECK:STDOUT: specific @F(constants.%int_0.6a9) { +// CHECK:STDOUT: %N.loc6_6.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %N.patt.loc6_6.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %WithNontype.loc6_31.2 => constants.%WithNontype.b82 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 diff --git a/toolchain/check/testdata/deduce/int_float.carbon b/toolchain/check/testdata/deduce/int_float.carbon index ed5565763f58..6732102cd696 100644 --- a/toolchain/check/testdata/deduce/int_float.carbon +++ b/toolchain/check/testdata/deduce/int_float.carbon @@ -48,7 +48,7 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.5cb: = require_complete_type %Int [symbolic] +// CHECK:STDOUT: %require_complete.b4f: = require_complete_type %Int [symbolic] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [template] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] @@ -60,13 +60,13 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IntLiteral = %import_ref.8ee -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .IntLiteral = %import_ref.72f +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.8ee: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] -// CHECK:STDOUT: %import_ref.187: %Int.type = import_ref Core//prelude/types/int, Int, loaded [template = constants.%Int.generic] +// CHECK:STDOUT: %import_ref.72f: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] +// CHECK:STDOUT: %import_ref.485: %Int.type = import_ref Core//prelude/types/int, Int, loaded [template = constants.%Int.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -85,14 +85,14 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %return.param_patt: Core.IntLiteral = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref.loc4_48: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref.loc4_52: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref.loc4_52: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type.loc4_64: init type = call %IntLiteral.ref.loc4_52() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc4_64.1: type = value_of_initializer %int_literal.make_type.loc4_64 [template = Core.IntLiteral] // CHECK:STDOUT: %.loc4_64.2: type = converted %int_literal.make_type.loc4_64, %.loc4_64.1 [template = Core.IntLiteral] // CHECK:STDOUT: %N.param: Core.IntLiteral = value_param runtime_param // CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.3 [template = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref.loc4_10: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref.loc4_14: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref.loc4_14: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type.loc4_26: init type = call %IntLiteral.ref.loc4_14() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc4_26.2: type = value_of_initializer %int_literal.make_type.loc4_26 [template = Core.IntLiteral] // CHECK:STDOUT: %.loc4_26.3: type = converted %int_literal.make_type.loc4_26, %.loc4_26.2 [template = Core.IntLiteral] @@ -101,7 +101,7 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %n.param: @F.%Int.loc4_42.2 (%Int) = value_param runtime_param0 // CHECK:STDOUT: %.loc4_42: type = splice_block %Int.loc4_42.1 [symbolic = %Int.loc4_42.2 (constants.%Int)] { // CHECK:STDOUT: %Core.ref.loc4_32: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%import_ref.187 [template = constants.%Int.generic] +// CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%import_ref.485 [template = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc4: Core.IntLiteral = name_ref N, %N.loc4_6.1 [symbolic = %N.loc4_6.2 (constants.%N)] // CHECK:STDOUT: %Int.loc4_42.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc4_42.2 (constants.%Int)] // CHECK:STDOUT: } @@ -116,7 +116,7 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %return.param_patt: Core.IntLiteral = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc8_33.1: type = value_of_initializer %int_literal.make_type [template = Core.IntLiteral] // CHECK:STDOUT: %.loc8_33.2: type = converted %int_literal.make_type, %.loc8_33.1 [template = Core.IntLiteral] @@ -137,7 +137,7 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Int.loc4_42.2: type = class_type @Int, @Int(%N.loc4_6.2) [symbolic = %Int.loc4_42.2 (constants.%Int)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%Int.loc4_42.2 (%Int) [symbolic = %require_complete (constants.%require_complete.5cb)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%Int.loc4_42.2 (%Int) [symbolic = %require_complete (constants.%require_complete.b4f)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%N.param_patt: Core.IntLiteral](%n.param_patt: @F.%Int.loc4_42.2 (%Int)) -> Core.IntLiteral { // CHECK:STDOUT: !entry: @@ -190,13 +190,13 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IntLiteral = %import_ref.8ee -// CHECK:STDOUT: .Float = %import_ref.20b +// CHECK:STDOUT: .IntLiteral = %import_ref.72f +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.8ee: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] -// CHECK:STDOUT: %import_ref.20b: %Float.type = import_ref Core//prelude/types, Float, loaded [template = constants.%Float] +// CHECK:STDOUT: %import_ref.72f: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] +// CHECK:STDOUT: %import_ref.1d6: %Float.type = import_ref Core//prelude/types, Float, loaded [template = constants.%Float] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -215,14 +215,14 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %return.param_patt: Core.IntLiteral = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref.loc8_50: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref.loc8_54: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref.loc8_54: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type.loc8_66: init type = call %IntLiteral.ref.loc8_54() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc8_66.1: type = value_of_initializer %int_literal.make_type.loc8_66 [template = Core.IntLiteral] // CHECK:STDOUT: %.loc8_66.2: type = converted %int_literal.make_type.loc8_66, %.loc8_66.1 [template = Core.IntLiteral] // CHECK:STDOUT: %N.param: Core.IntLiteral = value_param runtime_param // CHECK:STDOUT: %.loc8_26.1: type = splice_block %.loc8_26.3 [template = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref.loc8_10: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref.loc8_14: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref.loc8_14: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type.loc8_26: init type = call %IntLiteral.ref.loc8_14() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc8_26.2: type = value_of_initializer %int_literal.make_type.loc8_26 [template = Core.IntLiteral] // CHECK:STDOUT: %.loc8_26.3: type = converted %int_literal.make_type.loc8_26, %.loc8_26.2 [template = Core.IntLiteral] @@ -231,7 +231,7 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %n.param: = value_param runtime_param0 // CHECK:STDOUT: %.1: = splice_block [template = ] { // CHECK:STDOUT: %Core.ref.loc8_32: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Float.ref: %Float.type = name_ref Float, imports.%import_ref.20b [template = constants.%Float] +// CHECK:STDOUT: %Float.ref: %Float.type = name_ref Float, imports.%import_ref.1d6 [template = constants.%Float] // CHECK:STDOUT: %N.ref.loc8: Core.IntLiteral = name_ref N, %N.loc8_6.1 [symbolic = %N.loc8_6.2 (constants.%N)] // CHECK:STDOUT: %float.make_type: init type = call %Float.ref(%N.ref.loc8) // CHECK:STDOUT: %.loc8_44.1: type = value_of_initializer %float.make_type @@ -248,7 +248,7 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %return.param_patt: Core.IntLiteral = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc12_33.1: type = value_of_initializer %int_literal.make_type [template = Core.IntLiteral] // CHECK:STDOUT: %.loc12_33.2: type = converted %int_literal.make_type, %.loc12_33.1 [template = Core.IntLiteral] diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index fdbba1fe7703..fdbba650e51a 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -64,16 +64,16 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.cab: type = tuple_type (%T, %U) [symbolic] +// CHECK:STDOUT: %tuple.type.30b: type = tuple_type (%T, %U) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %require_complete.73f: = require_complete_type %tuple.type.cab [symbolic] -// CHECK:STDOUT: %F.specific_fn.1a1: = specific_function %F, @F(%T, %U) [symbolic] +// CHECK:STDOUT: %require_complete.b54: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %require_complete.fe1: = require_complete_type %tuple.type.30b [symbolic] +// CHECK:STDOUT: %F.specific_fn.dd9: = specific_function %F, @F(%T, %U) [symbolic] // CHECK:STDOUT: %tuple.type.e8a: type = tuple_type (%C, %D) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn.53d: = specific_function %F, @F(%C, %D) [template] +// CHECK:STDOUT: %F.specific_fn.4a7: = specific_function %F, @F(%C, %D) [template] // CHECK:STDOUT: %complete_type.53b: = complete_type_witness %tuple.type.e8a [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -100,8 +100,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc7_6.1, runtime_param [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] // CHECK:STDOUT: %U.patt.loc7_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc7_16.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc7_16.1, runtime_param [symbolic = %U.patt.loc7_16.2 (constants.%U.patt)] -// CHECK:STDOUT: %pair.patt: @F.%tuple.type (%tuple.type.cab) = binding_pattern pair -// CHECK:STDOUT: %pair.param_patt: @F.%tuple.type (%tuple.type.cab) = value_param_pattern %pair.patt, runtime_param0 +// CHECK:STDOUT: %pair.patt: @F.%tuple.type (%tuple.type.30b) = binding_pattern pair +// CHECK:STDOUT: %pair.param_patt: @F.%tuple.type (%tuple.type.30b) = value_param_pattern %pair.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%U.loc7_16.2 (%U) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%U.loc7_16.2 (%U) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -110,14 +110,14 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = value_param runtime_param // CHECK:STDOUT: %U.loc7_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc7_16.2 (constants.%U)] -// CHECK:STDOUT: %pair.param: @F.%tuple.type (%tuple.type.cab) = value_param runtime_param0 -// CHECK:STDOUT: %.loc7_37.1: type = splice_block %.loc7_37.3 [symbolic = %tuple.type (constants.%tuple.type.cab)] { +// CHECK:STDOUT: %pair.param: @F.%tuple.type (%tuple.type.30b) = value_param runtime_param0 +// CHECK:STDOUT: %.loc7_37.1: type = splice_block %.loc7_37.3 [symbolic = %tuple.type (constants.%tuple.type.30b)] { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %U.ref.loc7_36: type = name_ref U, %U.loc7_16.1 [symbolic = %U.loc7_16.2 (constants.%U)] // CHECK:STDOUT: %.loc7_37.2: %tuple.type.24b = tuple_literal (%T.ref, %U.ref.loc7_36) -// CHECK:STDOUT: %.loc7_37.3: type = converted %.loc7_37.2, constants.%tuple.type.cab [symbolic = %tuple.type (constants.%tuple.type.cab)] +// CHECK:STDOUT: %.loc7_37.3: type = converted %.loc7_37.2, constants.%tuple.type.30b [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %pair: @F.%tuple.type (%tuple.type.cab) = bind_name pair, %pair.param +// CHECK:STDOUT: %pair: @F.%tuple.type (%tuple.type.30b) = bind_name pair, %pair.param // CHECK:STDOUT: %return.param: ref @F.%U.loc7_16.2 (%U) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%U.loc7_16.2 (%U) = return_slot %return.param // CHECK:STDOUT: } @@ -162,18 +162,18 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %T.patt.loc7_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] // CHECK:STDOUT: %U.loc7_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc7_16.2 (constants.%U)] // CHECK:STDOUT: %U.patt.loc7_16.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc7_16.2 (constants.%U.patt)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.%T.loc7_6.2 (%T), @F.%U.loc7_16.2 (%U)) [symbolic = %tuple.type (constants.%tuple.type.cab)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.%T.loc7_6.2 (%T), @F.%U.loc7_16.2 (%U)) [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_40: = require_complete_type @F.%U.loc7_16.2 (%U) [symbolic = %require_complete.loc7_40 (constants.%require_complete.427)] -// CHECK:STDOUT: %require_complete.loc7_30: = require_complete_type @F.%tuple.type (%tuple.type.cab) [symbolic = %require_complete.loc7_30 (constants.%require_complete.73f)] -// CHECK:STDOUT: %F.specific_fn.loc7_54.2: = specific_function constants.%F, @F(%T.loc7_6.2, %U.loc7_16.2) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.1a1)] +// CHECK:STDOUT: %require_complete.loc7_40: = require_complete_type @F.%U.loc7_16.2 (%U) [symbolic = %require_complete.loc7_40 (constants.%require_complete.b54)] +// CHECK:STDOUT: %require_complete.loc7_30: = require_complete_type @F.%tuple.type (%tuple.type.30b) [symbolic = %require_complete.loc7_30 (constants.%require_complete.fe1)] +// CHECK:STDOUT: %F.specific_fn.loc7_54.2: = specific_function constants.%F, @F(%T.loc7_6.2, %U.loc7_16.2) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.dd9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type, %U.param_patt: type](%pair.param_patt: @F.%tuple.type (%tuple.type.cab)) -> @F.%U.loc7_16.2 (%U) { +// CHECK:STDOUT: fn[%T.param_patt: type, %U.param_patt: type](%pair.param_patt: @F.%tuple.type (%tuple.type.30b)) -> @F.%U.loc7_16.2 (%U) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %pair.ref: @F.%tuple.type (%tuple.type.cab) = 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.1a1)] +// CHECK:STDOUT: %pair.ref: @F.%tuple.type (%tuple.type.30b) = 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.dd9)] // CHECK:STDOUT: %F.call: init @F.%U.loc7_16.2 (%U) = call %F.specific_fn.loc7_54.1(%pair.ref) // CHECK:STDOUT: %.loc7_61.1: @F.%U.loc7_16.2 (%U) = value_of_initializer %F.call // CHECK:STDOUT: %.loc7_61.2: @F.%U.loc7_16.2 (%U) = converted %F.call, %.loc7_61.1 @@ -185,7 +185,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] // CHECK:STDOUT: %pair.ref: %tuple.type.e8a = name_ref pair, %pair -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%D) [template = constants.%F.specific_fn.53d] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%D) [template = constants.%F.specific_fn.4a7] // CHECK:STDOUT: %.loc9_20: ref %D = splice_block %return {} // CHECK:STDOUT: %F.call: init %D = call %F.specific_fn(%pair.ref) to %.loc9_20 // CHECK:STDOUT: return %F.call to %return @@ -196,12 +196,12 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %T.patt.loc7_6.2 => constants.%T // CHECK:STDOUT: %U.loc7_16.2 => constants.%U // CHECK:STDOUT: %U.patt.loc7_16.2 => constants.%U -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.cab +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_40 => constants.%require_complete.427 -// CHECK:STDOUT: %require_complete.loc7_30 => constants.%require_complete.73f -// CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.1a1 +// CHECK:STDOUT: %require_complete.loc7_40 => constants.%require_complete.b54 +// CHECK:STDOUT: %require_complete.loc7_30 => constants.%require_complete.fe1 +// CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.dd9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(%T.loc7_6.2, %U.loc7_16.2) {} @@ -216,7 +216,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc7_40 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc7_30 => constants.%complete_type.53b -// CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.53d +// CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.4a7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- tuple_value.carbon @@ -225,47 +225,47 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %Pair: %tuple.type.471 = bind_symbolic_name Pair, 0 [symbolic] -// CHECK:STDOUT: %Pair.patt: %tuple.type.471 = symbolic_binding_pattern Pair, 0 [symbolic] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %Pair: %tuple.type.d07 = bind_symbolic_name Pair, 0 [symbolic] +// CHECK:STDOUT: %Pair.patt: %tuple.type.d07 = symbolic_binding_pattern Pair, 0 [symbolic] // CHECK:STDOUT: %HasPair.type: type = generic_class_type @HasPair [template] // CHECK:STDOUT: %HasPair.generic: %HasPair.type = struct_value () [template] -// CHECK:STDOUT: %HasPair.3cb: type = class_type @HasPair, @HasPair(%Pair) [symbolic] +// CHECK:STDOUT: %HasPair.920: type = class_type @HasPair, @HasPair(%Pair) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %A: %i32 = bind_symbolic_name A, 0 [symbolic] // CHECK:STDOUT: %A.patt: %i32 = symbolic_binding_pattern A, 0 [symbolic] // CHECK:STDOUT: %B: %i32 = bind_symbolic_name B, 1 [symbolic] // CHECK:STDOUT: %B.patt: %i32 = symbolic_binding_pattern B, 1 [symbolic] -// CHECK:STDOUT: %tuple.781: %tuple.type.471 = tuple_value (%A, %B) [symbolic] -// CHECK:STDOUT: %HasPair.624: type = class_type @HasPair, @HasPair(%tuple.781) [symbolic] +// CHECK:STDOUT: %tuple.159: %tuple.type.d07 = tuple_value (%A, %B) [symbolic] +// CHECK:STDOUT: %HasPair.568: type = class_type @HasPair, @HasPair(%tuple.159) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.16b: = require_complete_type %HasPair.624 [symbolic] +// CHECK:STDOUT: %require_complete.6bc: = require_complete_type %HasPair.568 [symbolic] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %tuple.58e: %tuple.type.471 = tuple_value (%int_1.c60, %int_2.166) [template] -// CHECK:STDOUT: %HasPair.a8d: type = class_type @HasPair, @HasPair(%tuple.58e) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %tuple.21c: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_2.ef8) [template] +// CHECK:STDOUT: %HasPair.369: type = class_type @HasPair, @HasPair(%tuple.21c) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -280,27 +280,27 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %HasPair.decl: %HasPair.type = class_decl @HasPair [template = constants.%HasPair.generic] { -// CHECK:STDOUT: %Pair.patt.loc4_15.1: %tuple.type.471 = symbolic_binding_pattern Pair, 0 [symbolic = %Pair.patt.loc4_15.2 (constants.%Pair.patt)] -// CHECK:STDOUT: %Pair.param_patt: %tuple.type.471 = value_param_pattern %Pair.patt.loc4_15.1, runtime_param [symbolic = %Pair.patt.loc4_15.2 (constants.%Pair.patt)] +// CHECK:STDOUT: %Pair.patt.loc4_15.1: %tuple.type.d07 = symbolic_binding_pattern Pair, 0 [symbolic = %Pair.patt.loc4_15.2 (constants.%Pair.patt)] +// CHECK:STDOUT: %Pair.param_patt: %tuple.type.d07 = value_param_pattern %Pair.patt.loc4_15.1, runtime_param [symbolic = %Pair.patt.loc4_15.2 (constants.%Pair.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Pair.param: %tuple.type.471 = value_param runtime_param -// CHECK:STDOUT: %.loc4_31.1: type = splice_block %.loc4_31.3 [template = constants.%tuple.type.471] { +// CHECK:STDOUT: %Pair.param: %tuple.type.d07 = value_param runtime_param +// CHECK:STDOUT: %.loc4_31.1: type = splice_block %.loc4_31.3 [template = constants.%tuple.type.d07] { // CHECK:STDOUT: %int_32.loc4_23: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc4_23: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc4_28: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc4_28: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc4_31.2: %tuple.type.24b = tuple_literal (%i32.loc4_23, %i32.loc4_28) -// CHECK:STDOUT: %.loc4_31.3: type = converted %.loc4_31.2, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc4_31.3: type = converted %.loc4_31.2, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: } -// CHECK:STDOUT: %Pair.loc4_15.1: %tuple.type.471 = bind_symbolic_name Pair, 0, %Pair.param [symbolic = %Pair.loc4_15.2 (constants.%Pair)] +// CHECK:STDOUT: %Pair.loc4_15.1: %tuple.type.d07 = bind_symbolic_name Pair, 0, %Pair.param [symbolic = %Pair.loc4_15.2 (constants.%Pair)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %A.patt.loc6_6.1: %i32 = symbolic_binding_pattern A, 0 [symbolic = %A.patt.loc6_6.2 (constants.%A.patt)] // CHECK:STDOUT: %A.param_patt: %i32 = value_param_pattern %A.patt.loc6_6.1, runtime_param [symbolic = %A.patt.loc6_6.2 (constants.%A.patt)] // CHECK:STDOUT: %B.patt.loc6_15.1: %i32 = symbolic_binding_pattern B, 1 [symbolic = %B.patt.loc6_15.2 (constants.%B.patt)] // CHECK:STDOUT: %B.param_patt: %i32 = value_param_pattern %B.patt.loc6_15.1, runtime_param [symbolic = %B.patt.loc6_15.2 (constants.%B.patt)] -// CHECK:STDOUT: %h.patt: @F.%HasPair.loc6_41.2 (%HasPair.624) = binding_pattern h -// CHECK:STDOUT: %h.param_patt: @F.%HasPair.loc6_41.2 (%HasPair.624) = value_param_pattern %h.patt, runtime_param0 +// CHECK:STDOUT: %h.patt: @F.%HasPair.loc6_41.2 (%HasPair.568) = binding_pattern h +// CHECK:STDOUT: %h.param_patt: @F.%HasPair.loc6_41.2 (%HasPair.568) = value_param_pattern %h.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { @@ -318,59 +318,59 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %i32.loc6_19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %B.loc6_15.1: %i32 = bind_symbolic_name B, 1, %B.param [symbolic = %B.loc6_15.2 (constants.%B)] -// CHECK:STDOUT: %h.param: @F.%HasPair.loc6_41.2 (%HasPair.624) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_41.1: type = splice_block %HasPair.loc6_41.1 [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.624)] { +// CHECK:STDOUT: %h.param: @F.%HasPair.loc6_41.2 (%HasPair.568) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_41.1: type = splice_block %HasPair.loc6_41.1 [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.568)] { // CHECK:STDOUT: %HasPair.ref: %HasPair.type = name_ref HasPair, file.%HasPair.decl [template = constants.%HasPair.generic] // CHECK:STDOUT: %A.ref: %i32 = name_ref A, %A.loc6_6.1 [symbolic = %A.loc6_6.2 (constants.%A)] // CHECK:STDOUT: %B.ref.loc6_39: %i32 = name_ref B, %B.loc6_15.1 [symbolic = %B.loc6_15.2 (constants.%B)] -// CHECK:STDOUT: %.loc6_40: %tuple.type.471 = tuple_literal (%A.ref, %B.ref.loc6_39) -// CHECK:STDOUT: %tuple.loc6_40.1: %tuple.type.471 = tuple_value (%A.ref, %B.ref.loc6_39) [symbolic = %tuple.loc6_40.2 (constants.%tuple.781)] -// CHECK:STDOUT: %.loc6_41.2: %tuple.type.471 = converted %.loc6_40, %tuple.loc6_40.1 [symbolic = %tuple.loc6_40.2 (constants.%tuple.781)] -// CHECK:STDOUT: %HasPair.loc6_41.1: type = class_type @HasPair, @HasPair(constants.%tuple.781) [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.624)] +// CHECK:STDOUT: %.loc6_40: %tuple.type.d07 = tuple_literal (%A.ref, %B.ref.loc6_39) +// CHECK:STDOUT: %tuple.loc6_40.1: %tuple.type.d07 = tuple_value (%A.ref, %B.ref.loc6_39) [symbolic = %tuple.loc6_40.2 (constants.%tuple.159)] +// CHECK:STDOUT: %.loc6_41.2: %tuple.type.d07 = converted %.loc6_40, %tuple.loc6_40.1 [symbolic = %tuple.loc6_40.2 (constants.%tuple.159)] +// CHECK:STDOUT: %HasPair.loc6_41.1: type = class_type @HasPair, @HasPair(constants.%tuple.159) [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.568)] // CHECK:STDOUT: } -// CHECK:STDOUT: %h: @F.%HasPair.loc6_41.2 (%HasPair.624) = bind_name h, %h.param +// CHECK:STDOUT: %h: @F.%HasPair.loc6_41.2 (%HasPair.568) = bind_name h, %h.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %h.patt: %HasPair.a8d = binding_pattern h -// CHECK:STDOUT: %h.param_patt: %HasPair.a8d = value_param_pattern %h.patt, runtime_param0 +// CHECK:STDOUT: %h.patt: %HasPair.369 = binding_pattern h +// CHECK:STDOUT: %h.param_patt: %HasPair.369 = value_param_pattern %h.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %h.param: %HasPair.a8d = value_param runtime_param0 -// CHECK:STDOUT: %.loc8_23.1: type = splice_block %HasPair [template = constants.%HasPair.a8d] { +// CHECK:STDOUT: %h.param: %HasPair.369 = value_param runtime_param0 +// CHECK:STDOUT: %.loc8_23.1: type = splice_block %HasPair [template = constants.%HasPair.369] { // CHECK:STDOUT: %HasPair.ref: %HasPair.type = name_ref HasPair, file.%HasPair.decl [template = constants.%HasPair.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc8_22.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc8_22.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc8_22.1: = bound_method %int_1, %impl.elem0.loc8_22.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc8_22.1: = specific_function %Convert.bound.loc8_22.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc8_22.1: init %i32 = call %Convert.specific_fn.loc8_22.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_22.2: %i32 = value_of_initializer %int.convert_checked.loc8_22.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_22.3: %i32 = converted %int_1, %.loc8_22.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc8_22.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc8_22.2: = bound_method %int_2, %impl.elem0.loc8_22.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc8_22.2: = specific_function %Convert.bound.loc8_22.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc8_22.2: init %i32 = call %Convert.specific_fn.loc8_22.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc8_22.4: %i32 = value_of_initializer %int.convert_checked.loc8_22.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc8_22.5: %i32 = converted %int_2, %.loc8_22.4 [template = constants.%int_2.166] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%.loc8_22.3, %.loc8_22.5) [template = constants.%tuple.58e] -// CHECK:STDOUT: %.loc8_23.2: %tuple.type.471 = converted %.loc8_22.1, %tuple [template = constants.%tuple.58e] -// CHECK:STDOUT: %HasPair: type = class_type @HasPair, @HasPair(constants.%tuple.58e) [template = constants.%HasPair.a8d] +// CHECK:STDOUT: %impl.elem0.loc8_22.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc8_22.1: = bound_method %int_1, %impl.elem0.loc8_22.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc8_22.1: = specific_function %Convert.bound.loc8_22.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc8_22.1: init %i32 = call %Convert.specific_fn.loc8_22.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_22.2: %i32 = value_of_initializer %int.convert_checked.loc8_22.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_22.3: %i32 = converted %int_1, %.loc8_22.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc8_22.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc8_22.2: = bound_method %int_2, %impl.elem0.loc8_22.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc8_22.2: = specific_function %Convert.bound.loc8_22.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc8_22.2: init %i32 = call %Convert.specific_fn.loc8_22.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc8_22.4: %i32 = value_of_initializer %int.convert_checked.loc8_22.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc8_22.5: %i32 = converted %int_2, %.loc8_22.4 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%.loc8_22.3, %.loc8_22.5) [template = constants.%tuple.21c] +// CHECK:STDOUT: %.loc8_23.2: %tuple.type.d07 = converted %.loc8_22.1, %tuple [template = constants.%tuple.21c] +// CHECK:STDOUT: %HasPair: type = class_type @HasPair, @HasPair(constants.%tuple.21c) [template = constants.%HasPair.369] // CHECK:STDOUT: } -// CHECK:STDOUT: %h: %HasPair.a8d = bind_name h, %h.param +// CHECK:STDOUT: %h: %HasPair.369 = bind_name h, %h.param // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HasPair(%Pair.loc4_15.1: %tuple.type.471) { -// CHECK:STDOUT: %Pair.loc4_15.2: %tuple.type.471 = bind_symbolic_name Pair, 0 [symbolic = %Pair.loc4_15.2 (constants.%Pair)] -// CHECK:STDOUT: %Pair.patt.loc4_15.2: %tuple.type.471 = symbolic_binding_pattern Pair, 0 [symbolic = %Pair.patt.loc4_15.2 (constants.%Pair.patt)] +// CHECK:STDOUT: generic class @HasPair(%Pair.loc4_15.1: %tuple.type.d07) { +// CHECK:STDOUT: %Pair.loc4_15.2: %tuple.type.d07 = bind_symbolic_name Pair, 0 [symbolic = %Pair.loc4_15.2 (constants.%Pair)] +// CHECK:STDOUT: %Pair.patt.loc4_15.2: %tuple.type.d07 = symbolic_binding_pattern Pair, 0 [symbolic = %Pair.patt.loc4_15.2 (constants.%Pair.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -378,7 +378,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%HasPair.3cb +// CHECK:STDOUT: .Self = constants.%HasPair.920 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -388,24 +388,24 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %A.patt.loc6_6.2: %i32 = symbolic_binding_pattern A, 0 [symbolic = %A.patt.loc6_6.2 (constants.%A.patt)] // CHECK:STDOUT: %B.loc6_15.2: %i32 = bind_symbolic_name B, 1 [symbolic = %B.loc6_15.2 (constants.%B)] // CHECK:STDOUT: %B.patt.loc6_15.2: %i32 = symbolic_binding_pattern B, 1 [symbolic = %B.patt.loc6_15.2 (constants.%B.patt)] -// CHECK:STDOUT: %tuple.loc6_40.2: %tuple.type.471 = tuple_value (%A.loc6_6.2, %B.loc6_15.2) [symbolic = %tuple.loc6_40.2 (constants.%tuple.781)] -// CHECK:STDOUT: %HasPair.loc6_41.2: type = class_type @HasPair, @HasPair(%tuple.loc6_40.2) [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.624)] +// CHECK:STDOUT: %tuple.loc6_40.2: %tuple.type.d07 = tuple_value (%A.loc6_6.2, %B.loc6_15.2) [symbolic = %tuple.loc6_40.2 (constants.%tuple.159)] +// CHECK:STDOUT: %HasPair.loc6_41.2: type = class_type @HasPair, @HasPair(%tuple.loc6_40.2) [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.568)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.%HasPair.loc6_41.2 (%HasPair.624) [symbolic = %require_complete (constants.%require_complete.16b)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.%HasPair.loc6_41.2 (%HasPair.568) [symbolic = %require_complete (constants.%require_complete.6bc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%A.param_patt: %i32, %B.param_patt: %i32](%h.param_patt: @F.%HasPair.loc6_41.2 (%HasPair.624)) -> %i32 { +// CHECK:STDOUT: fn[%A.param_patt: %i32, %B.param_patt: %i32](%h.param_patt: @F.%HasPair.loc6_41.2 (%HasPair.568)) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %B.ref.loc6_60: %i32 = name_ref B, %B.loc6_15.1 [symbolic = %B.loc6_15.2 (constants.%B)] // CHECK:STDOUT: return %B.ref.loc6_60 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%h.param_patt: %HasPair.a8d) -> %i32 { +// CHECK:STDOUT: fn @G(%h.param_patt: %HasPair.369) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %h.ref: %HasPair.a8d = name_ref h, %h -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_1.c60, constants.%int_2.166) [template = constants.%F.specific_fn] +// CHECK:STDOUT: %h.ref: %HasPair.369 = name_ref h, %h +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_1.5d2, constants.%int_2.ef8) [template = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%h.ref) // CHECK:STDOUT: %.loc9_14.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc9_14.2: %i32 = converted %F.call, %.loc9_14.1 @@ -417,9 +417,9 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %Pair.patt.loc4_15.2 => constants.%Pair // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasPair(constants.%tuple.781) { -// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.781 -// CHECK:STDOUT: %Pair.patt.loc4_15.2 => constants.%tuple.781 +// CHECK:STDOUT: specific @HasPair(constants.%tuple.159) { +// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.159 +// CHECK:STDOUT: %Pair.patt.loc4_15.2 => constants.%tuple.159 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -429,26 +429,26 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %A.patt.loc6_6.2 => constants.%A // CHECK:STDOUT: %B.loc6_15.2 => constants.%B // CHECK:STDOUT: %B.patt.loc6_15.2 => constants.%B -// CHECK:STDOUT: %tuple.loc6_40.2 => constants.%tuple.781 -// CHECK:STDOUT: %HasPair.loc6_41.2 => constants.%HasPair.624 +// CHECK:STDOUT: %tuple.loc6_40.2 => constants.%tuple.159 +// CHECK:STDOUT: %HasPair.loc6_41.2 => constants.%HasPair.568 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasPair(@F.%tuple.loc6_40.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasPair(constants.%tuple.58e) { -// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.58e -// CHECK:STDOUT: %Pair.patt.loc4_15.2 => constants.%tuple.58e +// CHECK:STDOUT: specific @HasPair(constants.%tuple.21c) { +// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.21c +// CHECK:STDOUT: %Pair.patt.loc4_15.2 => constants.%tuple.21c // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%int_1.c60, constants.%int_2.166) { -// CHECK:STDOUT: %A.loc6_6.2 => constants.%int_1.c60 -// CHECK:STDOUT: %A.patt.loc6_6.2 => constants.%int_1.c60 -// CHECK:STDOUT: %B.loc6_15.2 => constants.%int_2.166 -// CHECK:STDOUT: %B.patt.loc6_15.2 => constants.%int_2.166 -// CHECK:STDOUT: %tuple.loc6_40.2 => constants.%tuple.58e -// CHECK:STDOUT: %HasPair.loc6_41.2 => constants.%HasPair.a8d +// CHECK:STDOUT: specific @F(constants.%int_1.5d2, constants.%int_2.ef8) { +// CHECK:STDOUT: %A.loc6_6.2 => constants.%int_1.5d2 +// CHECK:STDOUT: %A.patt.loc6_6.2 => constants.%int_1.5d2 +// CHECK:STDOUT: %B.loc6_15.2 => constants.%int_2.ef8 +// CHECK:STDOUT: %B.patt.loc6_15.2 => constants.%int_2.ef8 +// CHECK:STDOUT: %tuple.loc6_40.2 => constants.%tuple.21c +// CHECK:STDOUT: %HasPair.loc6_41.2 => constants.%HasPair.369 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 @@ -464,7 +464,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.223: type = tuple_type (%T, %T) [symbolic] +// CHECK:STDOUT: %tuple.type.d00: type = tuple_type (%T, %T) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %tuple.type.e8a: type = tuple_type (%C, %D) [template] @@ -493,22 +493,22 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc7_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc7_6.1, runtime_param [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %pair.patt: @F.%tuple.type (%tuple.type.223) = binding_pattern pair -// CHECK:STDOUT: %pair.param_patt: @F.%tuple.type (%tuple.type.223) = value_param_pattern %pair.patt, runtime_param0 +// CHECK:STDOUT: %pair.patt: @F.%tuple.type (%tuple.type.d00) = binding_pattern pair +// CHECK:STDOUT: %pair.param_patt: @F.%tuple.type (%tuple.type.d00) = value_param_pattern %pair.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%T.loc7_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%T.loc7_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc7_33: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %pair.param: @F.%tuple.type (%tuple.type.223) = value_param runtime_param0 -// CHECK:STDOUT: %.loc7_27.1: type = splice_block %.loc7_27.3 [symbolic = %tuple.type (constants.%tuple.type.223)] { +// CHECK:STDOUT: %pair.param: @F.%tuple.type (%tuple.type.d00) = value_param runtime_param0 +// CHECK:STDOUT: %.loc7_27.1: type = splice_block %.loc7_27.3 [symbolic = %tuple.type (constants.%tuple.type.d00)] { // CHECK:STDOUT: %T.ref.loc7_23: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %T.ref.loc7_26: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %.loc7_27.2: %tuple.type.24b = tuple_literal (%T.ref.loc7_23, %T.ref.loc7_26) -// CHECK:STDOUT: %.loc7_27.3: type = converted %.loc7_27.2, constants.%tuple.type.223 [symbolic = %tuple.type (constants.%tuple.type.223)] +// CHECK:STDOUT: %.loc7_27.3: type = converted %.loc7_27.2, constants.%tuple.type.d00 [symbolic = %tuple.type (constants.%tuple.type.d00)] // CHECK:STDOUT: } -// CHECK:STDOUT: %pair: @F.%tuple.type (%tuple.type.223) = bind_name pair, %pair.param +// CHECK:STDOUT: %pair: @F.%tuple.type (%tuple.type.d00) = bind_name pair, %pair.param // CHECK:STDOUT: %return.param: ref @F.%T.loc7_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%T.loc7_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -551,9 +551,9 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { // CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc7_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.%T.loc7_6.2 (%T), @F.%T.loc7_6.2 (%T)) [symbolic = %tuple.type (constants.%tuple.type.223)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.%T.loc7_6.2 (%T), @F.%T.loc7_6.2 (%T)) [symbolic = %tuple.type (constants.%tuple.type.d00)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%pair.param_patt: @F.%tuple.type (%tuple.type.223)) -> @F.%T.loc7_6.2 (%T); +// CHECK:STDOUT: fn[%T.param_patt: type](%pair.param_patt: @F.%tuple.type (%tuple.type.d00)) -> @F.%T.loc7_6.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%pair.param_patt: %tuple.type.e8a) -> %return.param_patt: %D { @@ -566,6 +566,6 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc7_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc7_6.2 => constants.%T -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.223 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.d00 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/type_operator.carbon b/toolchain/check/testdata/deduce/type_operator.carbon index b3505a85a0eb..0f9333039606 100644 --- a/toolchain/check/testdata/deduce/type_operator.carbon +++ b/toolchain/check/testdata/deduce/type_operator.carbon @@ -70,16 +70,16 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %F.specific_fn.b56: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %F.specific_fn.ef1: = specific_function %F, @F(%T) [symbolic] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn.253: = specific_function %F, @F(%C) [template] +// CHECK:STDOUT: %F.specific_fn.04a: = specific_function %F, @F(%C) [template] // CHECK:STDOUT: %complete_type.d05: = complete_type_witness %ptr.019 [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -102,20 +102,20 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc6_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc6_6.1, runtime_param [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %p.patt: @F.%ptr.loc6_20.2 (%ptr.251) = binding_pattern p -// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc6_20.2 (%ptr.251) = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: @F.%ptr.loc6_20.2 (%ptr.79f) = binding_pattern p +// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc6_20.2 (%ptr.79f) = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%T.loc6_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%T.loc6_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc6_20.2 (%ptr.251) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_20: type = splice_block %ptr.loc6_20.1 [symbolic = %ptr.loc6_20.2 (constants.%ptr.251)] { +// CHECK:STDOUT: %p.param: @F.%ptr.loc6_20.2 (%ptr.79f) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_20: type = splice_block %ptr.loc6_20.1 [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] { // CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T [symbolic = %ptr.loc6_20.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc6_20.2 (%ptr.251) = bind_name p, %p.param +// CHECK:STDOUT: %p: @F.%ptr.loc6_20.2 (%ptr.79f) = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -148,18 +148,18 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { // CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc6_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %ptr.loc6_20.2: type = ptr_type @F.%T.loc6_6.2 (%T) [symbolic = %ptr.loc6_20.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc6_20.2: type = ptr_type @F.%T.loc6_6.2 (%T) [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_23 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%ptr.loc6_20.2 (%ptr.251) [symbolic = %require_complete.loc6_17 (constants.%require_complete.968)] -// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.b56)] +// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_23 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%ptr.loc6_20.2 (%ptr.79f) [symbolic = %require_complete.loc6_17 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%ptr.loc6_20.2 (%ptr.251)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%ptr.loc6_20.2 (%ptr.79f)) -> @F.%T.loc6_6.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.2 (%ptr.251) = 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.b56)] +// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.2 (%ptr.79f) = 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.ef1)] // CHECK:STDOUT: %F.call: init @F.%T.loc6_6.2 (%T) = call %F.specific_fn.loc6_37.1(%p.ref) // CHECK:STDOUT: %.loc6_41.1: @F.%T.loc6_6.2 (%T) = value_of_initializer %F.call // CHECK:STDOUT: %.loc6_41.2: @F.%T.loc6_6.2 (%T) = converted %F.call, %.loc6_41.1 @@ -171,7 +171,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] // CHECK:STDOUT: %p.ref: %ptr.019 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.253] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.04a] // CHECK:STDOUT: %.loc8_13: ref %C = splice_block %return {} // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc8_13 // CHECK:STDOUT: return %F.call to %return @@ -180,12 +180,12 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc6_6.2 => constants.%T -// CHECK:STDOUT: %ptr.loc6_20.2 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc6_20.2 => constants.%ptr.79f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23 => constants.%require_complete.db1 -// CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.968 -// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.b56 +// CHECK:STDOUT: %require_complete.loc6_23 => constants.%require_complete.4ae +// CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.6e5 +// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.ef1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(%T.loc6_6.2) {} @@ -198,7 +198,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_23 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.d05 -// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.253 +// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.04a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- const.carbon @@ -209,18 +209,18 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %const.0b7: type = const_type %T [symbolic] -// CHECK:STDOUT: %ptr.d83: type = ptr_type %const.0b7 [symbolic] +// CHECK:STDOUT: %const.a1a: type = const_type %T [symbolic] +// CHECK:STDOUT: %ptr.6d4: type = ptr_type %const.a1a [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.ecd: = require_complete_type %ptr.d83 [symbolic] -// CHECK:STDOUT: %F.specific_fn.38a: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.20b: = require_complete_type %ptr.6d4 [symbolic] +// CHECK:STDOUT: %F.specific_fn.ef1: = specific_function %F, @F(%T) [symbolic] // CHECK:STDOUT: %const.668: type = const_type %C [template] // CHECK:STDOUT: %ptr.801: type = ptr_type %const.668 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn.aae: = specific_function %F, @F(%C) [template] +// CHECK:STDOUT: %F.specific_fn.04a: = specific_function %F, @F(%C) [template] // CHECK:STDOUT: %complete_type.247: = complete_type_witness %ptr.801 [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -243,21 +243,21 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc6_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc6_6.1, runtime_param [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %p.patt: @F.%ptr.loc6_26.2 (%ptr.d83) = binding_pattern p -// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc6_26.2 (%ptr.d83) = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: @F.%ptr.loc6_26.2 (%ptr.6d4) = binding_pattern p +// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc6_26.2 (%ptr.6d4) = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%T.loc6_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%T.loc6_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc6_26.2 (%ptr.d83) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_26: type = splice_block %ptr.loc6_26.1 [symbolic = %ptr.loc6_26.2 (constants.%ptr.d83)] { +// CHECK:STDOUT: %p.param: @F.%ptr.loc6_26.2 (%ptr.6d4) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_26: type = splice_block %ptr.loc6_26.1 [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] { // CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %const.loc6_19.1: type = const_type %T [symbolic = %const.loc6_19.2 (constants.%const.0b7)] -// CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.0b7 [symbolic = %ptr.loc6_26.2 (constants.%ptr.d83)] +// CHECK:STDOUT: %const.loc6_19.1: type = const_type %T [symbolic = %const.loc6_19.2 (constants.%const.a1a)] +// CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.a1a [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc6_26.2 (%ptr.d83) = bind_name p, %p.param +// CHECK:STDOUT: %p: @F.%ptr.loc6_26.2 (%ptr.6d4) = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -291,19 +291,19 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { // CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc6_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %const.loc6_19.2: type = const_type @F.%T.loc6_6.2 (%T) [symbolic = %const.loc6_19.2 (constants.%const.0b7)] -// CHECK:STDOUT: %ptr.loc6_26.2: type = ptr_type @F.%const.loc6_19.2 (%const.0b7) [symbolic = %ptr.loc6_26.2 (constants.%ptr.d83)] +// CHECK:STDOUT: %const.loc6_19.2: type = const_type @F.%T.loc6_6.2 (%T) [symbolic = %const.loc6_19.2 (constants.%const.a1a)] +// CHECK:STDOUT: %ptr.loc6_26.2: type = ptr_type @F.%const.loc6_19.2 (%const.a1a) [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_29 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%ptr.loc6_26.2 (%ptr.d83) [symbolic = %require_complete.loc6_17 (constants.%require_complete.ecd)] -// CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.38a)] +// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_29 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%ptr.loc6_26.2 (%ptr.6d4) [symbolic = %require_complete.loc6_17 (constants.%require_complete.20b)] +// CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%ptr.loc6_26.2 (%ptr.d83)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%ptr.loc6_26.2 (%ptr.6d4)) -> @F.%T.loc6_6.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.2 (%ptr.d83) = 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.38a)] +// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.2 (%ptr.6d4) = 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.ef1)] // CHECK:STDOUT: %F.call: init @F.%T.loc6_6.2 (%T) = call %F.specific_fn.loc6_43.1(%p.ref) // CHECK:STDOUT: %.loc6_47.1: @F.%T.loc6_6.2 (%T) = value_of_initializer %F.call // CHECK:STDOUT: %.loc6_47.2: @F.%T.loc6_6.2 (%T) = converted %F.call, %.loc6_47.1 @@ -315,7 +315,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] // CHECK:STDOUT: %p.ref: %ptr.801 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.aae] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.04a] // CHECK:STDOUT: %.loc8_19: ref %C = splice_block %return {} // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc8_19 // CHECK:STDOUT: return %F.call to %return @@ -324,13 +324,13 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc6_6.2 => constants.%T -// CHECK:STDOUT: %const.loc6_19.2 => constants.%const.0b7 -// CHECK:STDOUT: %ptr.loc6_26.2 => constants.%ptr.d83 +// CHECK:STDOUT: %const.loc6_19.2 => constants.%const.a1a +// CHECK:STDOUT: %ptr.loc6_26.2 => constants.%ptr.6d4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29 => constants.%require_complete.db1 -// CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ecd -// CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.38a +// CHECK:STDOUT: %require_complete.loc6_29 => constants.%require_complete.4ae +// CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.20b +// CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.ef1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(%T.loc6_6.2) {} @@ -344,7 +344,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_29 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.247 -// CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.aae +// CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.04a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nonconst_from_const.carbon @@ -355,17 +355,17 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %F.specific_fn.b56: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %F.specific_fn.ef1: = specific_function %F, @F(%T) [symbolic] // CHECK:STDOUT: %const: type = const_type %C [template] // CHECK:STDOUT: %ptr.801: type = ptr_type %const [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn.0bd: = specific_function %F, @F(%const) [template] +// CHECK:STDOUT: %F.specific_fn.486: = specific_function %F, @F(%const) [template] // CHECK:STDOUT: %complete_type.247: = complete_type_witness %ptr.801 [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -388,20 +388,20 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc6_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc6_6.1, runtime_param [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %p.patt: @F.%ptr.loc6_20.2 (%ptr.251) = binding_pattern p -// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc6_20.2 (%ptr.251) = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: @F.%ptr.loc6_20.2 (%ptr.79f) = binding_pattern p +// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc6_20.2 (%ptr.79f) = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%T.loc6_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%T.loc6_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc6_20.2 (%ptr.251) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_20: type = splice_block %ptr.loc6_20.1 [symbolic = %ptr.loc6_20.2 (constants.%ptr.251)] { +// CHECK:STDOUT: %p.param: @F.%ptr.loc6_20.2 (%ptr.79f) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_20: type = splice_block %ptr.loc6_20.1 [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] { // CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T [symbolic = %ptr.loc6_20.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc6_20.2 (%ptr.251) = bind_name p, %p.param +// CHECK:STDOUT: %p: @F.%ptr.loc6_20.2 (%ptr.79f) = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -436,18 +436,18 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { // CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc6_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %ptr.loc6_20.2: type = ptr_type @F.%T.loc6_6.2 (%T) [symbolic = %ptr.loc6_20.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc6_20.2: type = ptr_type @F.%T.loc6_6.2 (%T) [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_23 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%ptr.loc6_20.2 (%ptr.251) [symbolic = %require_complete.loc6_17 (constants.%require_complete.968)] -// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.b56)] +// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_23 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%ptr.loc6_20.2 (%ptr.79f) [symbolic = %require_complete.loc6_17 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%ptr.loc6_20.2 (%ptr.251)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%ptr.loc6_20.2 (%ptr.79f)) -> @F.%T.loc6_6.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.2 (%ptr.251) = 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.b56)] +// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.2 (%ptr.79f) = 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.ef1)] // CHECK:STDOUT: %F.call: init @F.%T.loc6_6.2 (%T) = call %F.specific_fn.loc6_37.1(%p.ref) // CHECK:STDOUT: %.loc6_41.1: @F.%T.loc6_6.2 (%T) = value_of_initializer %F.call // CHECK:STDOUT: %.loc6_41.2: @F.%T.loc6_6.2 (%T) = converted %F.call, %.loc6_41.1 @@ -459,7 +459,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] // CHECK:STDOUT: %p.ref: %ptr.801 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%const) [template = constants.%F.specific_fn.0bd] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%const) [template = constants.%F.specific_fn.486] // CHECK:STDOUT: %.loc8_19: ref %const = splice_block %return {} // CHECK:STDOUT: %F.call: init %const = call %F.specific_fn(%p.ref) to %.loc8_19 // CHECK:STDOUT: return %F.call to %return @@ -468,12 +468,12 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc6_6.2 => constants.%T -// CHECK:STDOUT: %ptr.loc6_20.2 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc6_20.2 => constants.%ptr.79f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23 => constants.%require_complete.db1 -// CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.968 -// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.b56 +// CHECK:STDOUT: %require_complete.loc6_23 => constants.%require_complete.4ae +// CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.6e5 +// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.ef1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(%T.loc6_6.2) {} @@ -486,7 +486,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_23 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.247 -// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.0bd +// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.486 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_const_from_nonconst.carbon @@ -497,12 +497,12 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %const.0b7: type = const_type %T [symbolic] -// CHECK:STDOUT: %ptr.d83: type = ptr_type %const.0b7 [symbolic] +// CHECK:STDOUT: %const.a1a: type = const_type %T [symbolic] +// CHECK:STDOUT: %ptr.6d4: type = ptr_type %const.a1a [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.ecd: = require_complete_type %ptr.d83 [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.20b: = require_complete_type %ptr.6d4 [symbolic] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%T) [symbolic] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] // CHECK:STDOUT: %const.668: type = const_type %C [template] @@ -529,21 +529,21 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc6_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc6_6.1, runtime_param [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %p.patt: @F.%ptr.loc6_26.2 (%ptr.d83) = binding_pattern p -// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc6_26.2 (%ptr.d83) = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %p.patt: @F.%ptr.loc6_26.2 (%ptr.6d4) = binding_pattern p +// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc6_26.2 (%ptr.6d4) = value_param_pattern %p.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%T.loc6_6.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%T.loc6_6.2 (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc6_26.2 (%ptr.d83) = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_26: type = splice_block %ptr.loc6_26.1 [symbolic = %ptr.loc6_26.2 (constants.%ptr.d83)] { +// CHECK:STDOUT: %p.param: @F.%ptr.loc6_26.2 (%ptr.6d4) = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_26: type = splice_block %ptr.loc6_26.1 [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] { // CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %const.loc6_19.1: type = const_type %T [symbolic = %const.loc6_19.2 (constants.%const.0b7)] -// CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.0b7 [symbolic = %ptr.loc6_26.2 (constants.%ptr.d83)] +// CHECK:STDOUT: %const.loc6_19.1: type = const_type %T [symbolic = %const.loc6_19.2 (constants.%const.a1a)] +// CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.a1a [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc6_26.2 (%ptr.d83) = bind_name p, %p.param +// CHECK:STDOUT: %p: @F.%ptr.loc6_26.2 (%ptr.6d4) = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -577,18 +577,18 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { // CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc6_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %const.loc6_19.2: type = const_type @F.%T.loc6_6.2 (%T) [symbolic = %const.loc6_19.2 (constants.%const.0b7)] -// CHECK:STDOUT: %ptr.loc6_26.2: type = ptr_type @F.%const.loc6_19.2 (%const.0b7) [symbolic = %ptr.loc6_26.2 (constants.%ptr.d83)] +// CHECK:STDOUT: %const.loc6_19.2: type = const_type @F.%T.loc6_6.2 (%T) [symbolic = %const.loc6_19.2 (constants.%const.a1a)] +// CHECK:STDOUT: %ptr.loc6_26.2: type = ptr_type @F.%const.loc6_19.2 (%const.a1a) [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_29 (constants.%require_complete.db1)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%ptr.loc6_26.2 (%ptr.d83) [symbolic = %require_complete.loc6_17 (constants.%require_complete.ecd)] +// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type @F.%T.loc6_6.2 (%T) [symbolic = %require_complete.loc6_29 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type @F.%ptr.loc6_26.2 (%ptr.6d4) [symbolic = %require_complete.loc6_17 (constants.%require_complete.20b)] // CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%ptr.loc6_26.2 (%ptr.d83)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%p.param_patt: @F.%ptr.loc6_26.2 (%ptr.6d4)) -> @F.%T.loc6_6.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.2 (%ptr.d83) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.2 (%ptr.6d4) = 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)] // CHECK:STDOUT: %F.call: init @F.%T.loc6_6.2 (%T) = call %F.specific_fn.loc6_43.1(%p.ref) // CHECK:STDOUT: %.loc6_47.1: @F.%T.loc6_6.2 (%T) = value_of_initializer %F.call @@ -607,12 +607,12 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc6_6.2 => constants.%T -// CHECK:STDOUT: %const.loc6_19.2 => constants.%const.0b7 -// CHECK:STDOUT: %ptr.loc6_26.2 => constants.%ptr.d83 +// CHECK:STDOUT: %const.loc6_19.2 => constants.%const.a1a +// CHECK:STDOUT: %ptr.loc6_26.2 => constants.%ptr.6d4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29 => constants.%require_complete.db1 -// CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ecd +// CHECK:STDOUT: %require_complete.loc6_29 => constants.%require_complete.4ae +// CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.20b // CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/aggregate.carbon b/toolchain/check/testdata/eval/aggregate.carbon index 41cf4310acff..6b014c93c6b0 100644 --- a/toolchain/check/testdata/eval/aggregate.carbon +++ b/toolchain/check/testdata/eval/aggregate.carbon @@ -22,30 +22,30 @@ var struct_access: [i32; 1] = (0,) as [i32; {.a = 3, .b = 1}.b]; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %tuple.58e: %tuple.type.471 = tuple_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %tuple.21c: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %struct_type.c.b.a: type = struct_type {.c: Core.IntLiteral, .b: Core.IntLiteral, .a: Core.IntLiteral} [template] // CHECK:STDOUT: %struct_type.b.a.c: type = struct_type {.b: %i32, .a: %i32, .c: %i32} [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %struct.de7: %struct_type.b.a.c = struct_value (%int_2.166, %int_1.c60, %int_3.25b) [template] -// CHECK:STDOUT: %struct.cca: %struct_type.a.b.c = struct_value (%int_1.c60, %int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %struct.21d: %struct_type.b.a.c = struct_value (%int_2.ef8, %int_1.5d2, %int_3.822) [template] +// CHECK:STDOUT: %struct.cff: %struct_type.a.b.c = struct_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %i32 [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] @@ -54,18 +54,18 @@ var struct_access: [i32; 1] = (0,) as [i32; {.a = 3, .b = 1}.b]; // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [template] // CHECK:STDOUT: %tuple.type.d46: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %tuple.869: %tuple.type.d46 = tuple_value (%int_5, %int_7, %int_1.5b8, %int_9) [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_0.f61) [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_0.6a9) [template] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] // CHECK:STDOUT: %struct.a81: %struct_type.a.b = struct_value (%int_3.1ba, %int_1.5b8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -80,8 +80,8 @@ var struct_access: [i32; 1] = (0,) as [i32; {.a = 3, .b = 1}.b]; // CHECK:STDOUT: .struct_access = %struct_access // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %tuple_copy.var: ref %tuple.type.471 = var tuple_copy -// CHECK:STDOUT: %tuple_copy: ref %tuple.type.471 = bind_name tuple_copy, %tuple_copy.var +// CHECK:STDOUT: %tuple_copy.var: ref %tuple.type.d07 = var tuple_copy +// CHECK:STDOUT: %tuple_copy: ref %tuple.type.d07 = bind_name tuple_copy, %tuple_copy.var // CHECK:STDOUT: %struct_copy.var: ref %struct_type.a.b.c = var struct_copy // CHECK:STDOUT: %struct_copy: ref %struct_type.a.b.c = bind_name struct_copy, %struct_copy.var // CHECK:STDOUT: %tuple_index.var: ref %array_type = var tuple_index @@ -100,29 +100,29 @@ var struct_access: [i32; 1] = (0,) as [i32; {.a = 3, .b = 1}.b]; // CHECK:STDOUT: %int_32.loc11_46: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_46: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc11_49.1: %tuple.type.24b = tuple_literal (%i32.loc11_41, %i32.loc11_46) -// CHECK:STDOUT: %.loc11_49.2: type = converted %.loc11_49.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] -// CHECK:STDOUT: %impl.elem0.loc11_35.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_35.1: = bound_method %int_1.loc11, %impl.elem0.loc11_35.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11_35.1: = specific_function %Convert.bound.loc11_35.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11_35.1: init %i32 = call %Convert.specific_fn.loc11_35.1(%int_1.loc11) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_35.2: %i32 = value_of_initializer %int.convert_checked.loc11_35.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_35.3: %i32 = converted %int_1.loc11, %.loc11_35.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc11_35.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_35.2: = bound_method %int_2.loc11, %impl.elem0.loc11_35.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_35.2: = specific_function %Convert.bound.loc11_35.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_35.2: init %i32 = call %Convert.specific_fn.loc11_35.2(%int_2.loc11) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_35.4: %i32 = value_of_initializer %int.convert_checked.loc11_35.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_35.5: %i32 = converted %int_2.loc11, %.loc11_35.4 [template = constants.%int_2.166] -// CHECK:STDOUT: %tuple.loc11: %tuple.type.471 = tuple_value (%.loc11_35.3, %.loc11_35.5) [template = constants.%tuple.58e] -// CHECK:STDOUT: %.loc11_37.1: %tuple.type.471 = converted %.loc11_35.1, %tuple.loc11 [template = constants.%tuple.58e] -// CHECK:STDOUT: %tuple.elem0.loc11_37.1: %i32 = tuple_access %.loc11_37.1, element0 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc11_49.2: type = converted %.loc11_49.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] +// CHECK:STDOUT: %impl.elem0.loc11_35.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_35.1: = bound_method %int_1.loc11, %impl.elem0.loc11_35.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11_35.1: = specific_function %Convert.bound.loc11_35.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11_35.1: init %i32 = call %Convert.specific_fn.loc11_35.1(%int_1.loc11) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_35.2: %i32 = value_of_initializer %int.convert_checked.loc11_35.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_35.3: %i32 = converted %int_1.loc11, %.loc11_35.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc11_35.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_35.2: = bound_method %int_2.loc11, %impl.elem0.loc11_35.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_35.2: = specific_function %Convert.bound.loc11_35.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_35.2: init %i32 = call %Convert.specific_fn.loc11_35.2(%int_2.loc11) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_35.4: %i32 = value_of_initializer %int.convert_checked.loc11_35.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_35.5: %i32 = converted %int_2.loc11, %.loc11_35.4 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %tuple.loc11: %tuple.type.d07 = tuple_value (%.loc11_35.3, %.loc11_35.5) [template = constants.%tuple.21c] +// CHECK:STDOUT: %.loc11_37.1: %tuple.type.d07 = converted %.loc11_35.1, %tuple.loc11 [template = constants.%tuple.21c] +// CHECK:STDOUT: %tuple.elem0.loc11_37.1: %i32 = tuple_access %.loc11_37.1, element0 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc11_37.2: ref %i32 = tuple_access file.%tuple_copy.var, element0 -// CHECK:STDOUT: %.loc11_37.2: init %i32 = initialize_from %tuple.elem0.loc11_37.1 to %tuple.elem0.loc11_37.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %tuple.elem1.loc11_37.1: %i32 = tuple_access %.loc11_37.1, element1 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc11_37.2: init %i32 = initialize_from %tuple.elem0.loc11_37.1 to %tuple.elem0.loc11_37.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %tuple.elem1.loc11_37.1: %i32 = tuple_access %.loc11_37.1, element1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1.loc11_37.2: ref %i32 = tuple_access file.%tuple_copy.var, element1 -// CHECK:STDOUT: %.loc11_37.3: init %i32 = initialize_from %tuple.elem1.loc11_37.1 to %tuple.elem1.loc11_37.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_37.4: init %tuple.type.471 = tuple_init (%.loc11_37.2, %.loc11_37.3) to file.%tuple_copy.var [template = constants.%tuple.58e] -// CHECK:STDOUT: %.loc11_50: init %tuple.type.471 = converted %.loc11_37.1, %.loc11_37.4 [template = constants.%tuple.58e] +// CHECK:STDOUT: %.loc11_37.3: init %i32 = initialize_from %tuple.elem1.loc11_37.1 to %tuple.elem1.loc11_37.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_37.4: init %tuple.type.d07 = tuple_init (%.loc11_37.2, %.loc11_37.3) to file.%tuple_copy.var [template = constants.%tuple.21c] +// CHECK:STDOUT: %.loc11_50: init %tuple.type.d07 = converted %.loc11_37.1, %.loc11_37.4 [template = constants.%tuple.21c] // CHECK:STDOUT: assign file.%tuple_copy.var, %.loc11_50 // CHECK:STDOUT: %int_3.loc13: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %int_2.loc13: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] @@ -135,37 +135,37 @@ var struct_access: [i32; 1] = (0,) as [i32; {.a = 3, .b = 1}.b]; // CHECK:STDOUT: %int_32.loc13_99: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13_99: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.b.a.c: type = struct_type {.b: %i32, .a: %i32, .c: %i32} [template = constants.%struct_type.b.a.c] -// CHECK:STDOUT: %impl.elem0.loc13_71.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_71.1: = bound_method %int_2.loc13, %impl.elem0.loc13_71.1 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc13_71.1: = specific_function %Convert.bound.loc13_71.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc13_71.1: init %i32 = call %Convert.specific_fn.loc13_71.1(%int_2.loc13) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc13_71.2: %i32 = value_of_initializer %int.convert_checked.loc13_71.1 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc13_71.3: %i32 = converted %int_2.loc13, %.loc13_71.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc13_71.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_71.2: = bound_method %int_1.loc13, %impl.elem0.loc13_71.2 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc13_71.2: = specific_function %Convert.bound.loc13_71.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc13_71.2: init %i32 = call %Convert.specific_fn.loc13_71.2(%int_1.loc13) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_71.4: %i32 = value_of_initializer %int.convert_checked.loc13_71.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_71.5: %i32 = converted %int_1.loc13, %.loc13_71.4 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc13_71.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_71.3: = bound_method %int_3.loc13, %impl.elem0.loc13_71.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc13_71.3: = specific_function %Convert.bound.loc13_71.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc13_71.3: init %i32 = call %Convert.specific_fn.loc13_71.3(%int_3.loc13) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc13_71.6: %i32 = value_of_initializer %int.convert_checked.loc13_71.3 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc13_71.7: %i32 = converted %int_3.loc13, %.loc13_71.6 [template = constants.%int_3.25b] -// CHECK:STDOUT: %struct.loc13: %struct_type.b.a.c = struct_value (%.loc13_71.3, %.loc13_71.5, %.loc13_71.7) [template = constants.%struct.de7] -// CHECK:STDOUT: %.loc13_73.1: %struct_type.b.a.c = converted %.loc13_71.1, %struct.loc13 [template = constants.%struct.de7] -// CHECK:STDOUT: %.loc13_73.2: %i32 = struct_access %.loc13_73.1, element1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc13_71.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_71.1: = bound_method %int_2.loc13, %impl.elem0.loc13_71.1 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc13_71.1: = specific_function %Convert.bound.loc13_71.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc13_71.1: init %i32 = call %Convert.specific_fn.loc13_71.1(%int_2.loc13) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc13_71.2: %i32 = value_of_initializer %int.convert_checked.loc13_71.1 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc13_71.3: %i32 = converted %int_2.loc13, %.loc13_71.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc13_71.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_71.2: = bound_method %int_1.loc13, %impl.elem0.loc13_71.2 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc13_71.2: = specific_function %Convert.bound.loc13_71.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc13_71.2: init %i32 = call %Convert.specific_fn.loc13_71.2(%int_1.loc13) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_71.4: %i32 = value_of_initializer %int.convert_checked.loc13_71.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_71.5: %i32 = converted %int_1.loc13, %.loc13_71.4 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc13_71.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_71.3: = bound_method %int_3.loc13, %impl.elem0.loc13_71.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc13_71.3: = specific_function %Convert.bound.loc13_71.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc13_71.3: init %i32 = call %Convert.specific_fn.loc13_71.3(%int_3.loc13) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc13_71.6: %i32 = value_of_initializer %int.convert_checked.loc13_71.3 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc13_71.7: %i32 = converted %int_3.loc13, %.loc13_71.6 [template = constants.%int_3.822] +// CHECK:STDOUT: %struct.loc13: %struct_type.b.a.c = struct_value (%.loc13_71.3, %.loc13_71.5, %.loc13_71.7) [template = constants.%struct.21d] +// CHECK:STDOUT: %.loc13_73.1: %struct_type.b.a.c = converted %.loc13_71.1, %struct.loc13 [template = constants.%struct.21d] +// CHECK:STDOUT: %.loc13_73.2: %i32 = struct_access %.loc13_73.1, element1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_73.3: ref %i32 = struct_access file.%struct_copy.var, element1 -// CHECK:STDOUT: %.loc13_73.4: init %i32 = initialize_from %.loc13_73.2 to %.loc13_73.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_73.5: %i32 = struct_access %.loc13_73.1, element0 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc13_73.4: init %i32 = initialize_from %.loc13_73.2 to %.loc13_73.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_73.5: %i32 = struct_access %.loc13_73.1, element0 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_73.6: ref %i32 = struct_access file.%struct_copy.var, element0 -// CHECK:STDOUT: %.loc13_73.7: init %i32 = initialize_from %.loc13_73.5 to %.loc13_73.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc13_73.8: %i32 = struct_access %.loc13_73.1, element2 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc13_73.7: init %i32 = initialize_from %.loc13_73.5 to %.loc13_73.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc13_73.8: %i32 = struct_access %.loc13_73.1, element2 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc13_73.9: ref %i32 = struct_access file.%struct_copy.var, element2 -// CHECK:STDOUT: %.loc13_73.10: init %i32 = initialize_from %.loc13_73.8 to %.loc13_73.9 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc13_73.11: init %struct_type.a.b.c = struct_init (%.loc13_73.4, %.loc13_73.7, %.loc13_73.10) to file.%struct_copy.var [template = constants.%struct.cca] -// CHECK:STDOUT: %.loc13_103: init %struct_type.a.b.c = converted %.loc13_73.1, %.loc13_73.11 [template = constants.%struct.cca] +// CHECK:STDOUT: %.loc13_73.10: init %i32 = initialize_from %.loc13_73.8 to %.loc13_73.9 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc13_73.11: init %struct_type.a.b.c = struct_init (%.loc13_73.4, %.loc13_73.7, %.loc13_73.10) to file.%struct_copy.var [template = constants.%struct.cff] +// CHECK:STDOUT: %.loc13_103: init %struct_type.a.b.c = converted %.loc13_73.1, %.loc13_73.11 [template = constants.%struct.cff] // CHECK:STDOUT: assign file.%struct_copy.var, %.loc13_103 // CHECK:STDOUT: %int_0.loc15_30: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc15_32.1: %tuple.type.985 = tuple_literal (%int_0.loc15_30) @@ -181,15 +181,15 @@ var struct_access: [i32; 1] = (0,) as [i32; {.a = 3, .b = 1}.b]; // CHECK:STDOUT: %.loc15_54.2: %tuple.type.d46 = converted %.loc15_54.1, %tuple.loc15 [template = constants.%tuple.869] // CHECK:STDOUT: %tuple.elem2: Core.IntLiteral = tuple_access %.loc15_54.2, element2 [template = constants.%int_1.5b8] // CHECK:STDOUT: %array_type.loc15: type = array_type %tuple.elem2, %i32 [template = constants.%array_type] -// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_0.loc15_30, %impl.elem0.loc15 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_0.loc15_30) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc15_32.2: init %i32 = converted %int_0.loc15_30, %int.convert_checked.loc15 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_0.loc15_30, %impl.elem0.loc15 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_0.loc15_30) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc15_32.2: init %i32 = converted %int_0.loc15_30, %int.convert_checked.loc15 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc15_5: ref %array_type = splice_block file.%tuple_index.var {} // CHECK:STDOUT: %int_0.loc15_32: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc15_32.3: ref %i32 = array_index %.loc15_5, %int_0.loc15_32 -// CHECK:STDOUT: %.loc15_32.4: init %i32 = initialize_from %.loc15_32.2 to %.loc15_32.3 [template = constants.%int_0.f61] +// CHECK:STDOUT: %.loc15_32.4: init %i32 = initialize_from %.loc15_32.2 to %.loc15_32.3 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc15_32.5: init %array_type = array_init (%.loc15_32.4) to %.loc15_5 [template = constants.%array] // CHECK:STDOUT: %.loc15_34: init %array_type = converted %.loc15_32.1, %.loc15_32.5 [template = constants.%array] // CHECK:STDOUT: assign file.%tuple_index.var, %.loc15_34 @@ -204,15 +204,15 @@ var struct_access: [i32; 1] = (0,) as [i32; {.a = 3, .b = 1}.b]; // CHECK:STDOUT: %.loc17_60.2: %struct_type.a.b = converted %.loc17_60.1, %struct.loc17 [template = constants.%struct.a81] // CHECK:STDOUT: %.loc17_61: Core.IntLiteral = struct_access %.loc17_60.2, element1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %array_type.loc17: type = array_type %.loc17_61, %i32 [template = constants.%array_type] -// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_0.loc17_32, %impl.elem0.loc17 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_0.loc17_32) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc17_34.2: init %i32 = converted %int_0.loc17_32, %int.convert_checked.loc17 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_0.loc17_32, %impl.elem0.loc17 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_0.loc17_32) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc17_34.2: init %i32 = converted %int_0.loc17_32, %int.convert_checked.loc17 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc17_5: ref %array_type = splice_block file.%struct_access.var {} // CHECK:STDOUT: %int_0.loc17_34: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc17_34.3: ref %i32 = array_index %.loc17_5, %int_0.loc17_34 -// CHECK:STDOUT: %.loc17_34.4: init %i32 = initialize_from %.loc17_34.2 to %.loc17_34.3 [template = constants.%int_0.f61] +// CHECK:STDOUT: %.loc17_34.4: init %i32 = initialize_from %.loc17_34.2 to %.loc17_34.3 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc17_34.5: init %array_type = array_init (%.loc17_34.4) to %.loc17_5 [template = constants.%array] // CHECK:STDOUT: %.loc17_36: init %array_type = converted %.loc17_34.1, %.loc17_34.5 [template = constants.%array] // CHECK:STDOUT: assign file.%struct_access.var, %.loc17_36 diff --git a/toolchain/check/testdata/eval/fail_aggregate.carbon b/toolchain/check/testdata/eval/fail_aggregate.carbon index 2d60d8ae075c..34c7881d2927 100644 --- a/toolchain/check/testdata/eval/fail_aggregate.carbon +++ b/toolchain/check/testdata/eval/fail_aggregate.carbon @@ -21,7 +21,7 @@ var array_index: [i32; 1] = (0,) as [i32; ((5, 7, 1, 9) as [i32; 4])[2]]; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %array_type.b8e: type = array_type %int_1.5b8, %i32 [template] +// CHECK:STDOUT: %array_type.0cb: type = array_type %int_1.5b8, %i32 [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] @@ -29,35 +29,35 @@ var array_index: [i32; 1] = (0,) as [i32; ((5, 7, 1, 9) as [i32; 4])[2]]; // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [template] // CHECK:STDOUT: %tuple.type.d46: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %array_type.8d1: type = array_type %int_4, %i32 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b33: = bound_method %int_5.64b, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.89d: = specific_function %Convert.bound.b33, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] -// CHECK:STDOUT: %Convert.bound.eba: = bound_method %int_7.29f, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.785: = specific_function %Convert.bound.eba, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_7.2da: %i32 = int_value 7 [template] +// CHECK:STDOUT: %array_type.f32: type = array_type %int_4, %i32 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.ba9: = specific_function %Convert.bound.4e6, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] +// CHECK:STDOUT: %Convert.bound.208: = bound_method %int_7.29f, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.c12: = specific_function %Convert.bound.208, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_7.0b1: %i32 = int_value 7 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %Convert.bound.cc8: = bound_method %int_9.988, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b8b: = specific_function %Convert.bound.cc8, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_9.82c: %i32 = int_value 9 [template] -// CHECK:STDOUT: %array: %array_type.8d1 = tuple_value (%int_5.70b, %int_7.2da, %int_1.c60, %int_9.82c) [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.9e2: = bound_method %int_9.988, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b02: = specific_function %Convert.bound.9e2, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_9.f88: %i32 = int_value 9 [template] +// CHECK:STDOUT: %array: %array_type.f32 = tuple_value (%int_5.0f6, %int_7.0b1, %int_1.5d2, %int_9.f88) [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -69,8 +69,8 @@ var array_index: [i32; 1] = (0,) as [i32; ((5, 7, 1, 9) as [i32; 4])[2]]; // CHECK:STDOUT: .array_index = %array_index // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %array_index.var: ref %array_type.b8e = var array_index -// CHECK:STDOUT: %array_index: ref %array_type.b8e = bind_name array_index, %array_index.var +// CHECK:STDOUT: %array_index.var: ref %array_type.0cb = var array_index +// CHECK:STDOUT: %array_index: ref %array_type.0cb = bind_name array_index, %array_index.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -87,52 +87,52 @@ var array_index: [i32; 1] = (0,) as [i32; ((5, 7, 1, 9) as [i32; 4])[2]]; // CHECK:STDOUT: %int_32.loc16_61: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc16_61: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4] -// CHECK:STDOUT: %array_type: type = array_type %int_4, %i32 [template = constants.%array_type.8d1] -// CHECK:STDOUT: %impl.elem0.loc16_55.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_55.1: = bound_method %int_5, %impl.elem0.loc16_55.1 [template = constants.%Convert.bound.b33] -// CHECK:STDOUT: %Convert.specific_fn.loc16_55.1: = specific_function %Convert.bound.loc16_55.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.89d] -// CHECK:STDOUT: %int.convert_checked.loc16_55.1: init %i32 = call %Convert.specific_fn.loc16_55.1(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc16_55.2: init %i32 = converted %int_5, %int.convert_checked.loc16_55.1 [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc16_55.3: ref %array_type.8d1 = temporary_storage +// CHECK:STDOUT: %array_type: type = array_type %int_4, %i32 [template = constants.%array_type.f32] +// CHECK:STDOUT: %impl.elem0.loc16_55.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_55.1: = bound_method %int_5, %impl.elem0.loc16_55.1 [template = constants.%Convert.bound.4e6] +// CHECK:STDOUT: %Convert.specific_fn.loc16_55.1: = specific_function %Convert.bound.loc16_55.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.ba9] +// CHECK:STDOUT: %int.convert_checked.loc16_55.1: init %i32 = call %Convert.specific_fn.loc16_55.1(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc16_55.2: init %i32 = converted %int_5, %int.convert_checked.loc16_55.1 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc16_55.3: ref %array_type.f32 = temporary_storage // CHECK:STDOUT: %int_0.loc16_55: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc16_55.4: ref %i32 = array_index %.loc16_55.3, %int_0.loc16_55 -// CHECK:STDOUT: %.loc16_55.5: init %i32 = initialize_from %.loc16_55.2 to %.loc16_55.4 [template = constants.%int_5.70b] -// CHECK:STDOUT: %impl.elem0.loc16_55.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_55.2: = bound_method %int_7, %impl.elem0.loc16_55.2 [template = constants.%Convert.bound.eba] -// CHECK:STDOUT: %Convert.specific_fn.loc16_55.2: = specific_function %Convert.bound.loc16_55.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.785] -// CHECK:STDOUT: %int.convert_checked.loc16_55.2: init %i32 = call %Convert.specific_fn.loc16_55.2(%int_7) [template = constants.%int_7.2da] -// CHECK:STDOUT: %.loc16_55.6: init %i32 = converted %int_7, %int.convert_checked.loc16_55.2 [template = constants.%int_7.2da] +// CHECK:STDOUT: %.loc16_55.5: init %i32 = initialize_from %.loc16_55.2 to %.loc16_55.4 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %impl.elem0.loc16_55.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_55.2: = bound_method %int_7, %impl.elem0.loc16_55.2 [template = constants.%Convert.bound.208] +// CHECK:STDOUT: %Convert.specific_fn.loc16_55.2: = specific_function %Convert.bound.loc16_55.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c12] +// CHECK:STDOUT: %int.convert_checked.loc16_55.2: init %i32 = call %Convert.specific_fn.loc16_55.2(%int_7) [template = constants.%int_7.0b1] +// CHECK:STDOUT: %.loc16_55.6: init %i32 = converted %int_7, %int.convert_checked.loc16_55.2 [template = constants.%int_7.0b1] // CHECK:STDOUT: %int_1.loc16_55: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc16_55.7: ref %i32 = array_index %.loc16_55.3, %int_1.loc16_55 -// CHECK:STDOUT: %.loc16_55.8: init %i32 = initialize_from %.loc16_55.6 to %.loc16_55.7 [template = constants.%int_7.2da] -// CHECK:STDOUT: %impl.elem0.loc16_55.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_55.3: = bound_method %int_1.loc16_51, %impl.elem0.loc16_55.3 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc16_55.3: = specific_function %Convert.bound.loc16_55.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc16_55.3: init %i32 = call %Convert.specific_fn.loc16_55.3(%int_1.loc16_51) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_55.9: init %i32 = converted %int_1.loc16_51, %int.convert_checked.loc16_55.3 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc16_55.8: init %i32 = initialize_from %.loc16_55.6 to %.loc16_55.7 [template = constants.%int_7.0b1] +// CHECK:STDOUT: %impl.elem0.loc16_55.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_55.3: = bound_method %int_1.loc16_51, %impl.elem0.loc16_55.3 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc16_55.3: = specific_function %Convert.bound.loc16_55.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc16_55.3: init %i32 = call %Convert.specific_fn.loc16_55.3(%int_1.loc16_51) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_55.9: init %i32 = converted %int_1.loc16_51, %int.convert_checked.loc16_55.3 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_2.loc16_55: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc16_55.10: ref %i32 = array_index %.loc16_55.3, %int_2.loc16_55 -// CHECK:STDOUT: %.loc16_55.11: init %i32 = initialize_from %.loc16_55.9 to %.loc16_55.10 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc16_55.4: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_55.4: = bound_method %int_9, %impl.elem0.loc16_55.4 [template = constants.%Convert.bound.cc8] -// CHECK:STDOUT: %Convert.specific_fn.loc16_55.4: = specific_function %Convert.bound.loc16_55.4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b8b] -// CHECK:STDOUT: %int.convert_checked.loc16_55.4: init %i32 = call %Convert.specific_fn.loc16_55.4(%int_9) [template = constants.%int_9.82c] -// CHECK:STDOUT: %.loc16_55.12: init %i32 = converted %int_9, %int.convert_checked.loc16_55.4 [template = constants.%int_9.82c] +// CHECK:STDOUT: %.loc16_55.11: init %i32 = initialize_from %.loc16_55.9 to %.loc16_55.10 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc16_55.4: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_55.4: = bound_method %int_9, %impl.elem0.loc16_55.4 [template = constants.%Convert.bound.9e2] +// CHECK:STDOUT: %Convert.specific_fn.loc16_55.4: = specific_function %Convert.bound.loc16_55.4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b02] +// CHECK:STDOUT: %int.convert_checked.loc16_55.4: init %i32 = call %Convert.specific_fn.loc16_55.4(%int_9) [template = constants.%int_9.f88] +// CHECK:STDOUT: %.loc16_55.12: init %i32 = converted %int_9, %int.convert_checked.loc16_55.4 [template = constants.%int_9.f88] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3] // CHECK:STDOUT: %.loc16_55.13: ref %i32 = array_index %.loc16_55.3, %int_3 -// CHECK:STDOUT: %.loc16_55.14: init %i32 = initialize_from %.loc16_55.12 to %.loc16_55.13 [template = constants.%int_9.82c] -// CHECK:STDOUT: %.loc16_55.15: init %array_type.8d1 = array_init (%.loc16_55.5, %.loc16_55.8, %.loc16_55.11, %.loc16_55.14) to %.loc16_55.3 [template = constants.%array] -// CHECK:STDOUT: %.loc16_57.1: init %array_type.8d1 = converted %.loc16_55.1, %.loc16_55.15 [template = constants.%array] +// CHECK:STDOUT: %.loc16_55.14: init %i32 = initialize_from %.loc16_55.12 to %.loc16_55.13 [template = constants.%int_9.f88] +// CHECK:STDOUT: %.loc16_55.15: init %array_type.f32 = array_init (%.loc16_55.5, %.loc16_55.8, %.loc16_55.11, %.loc16_55.14) to %.loc16_55.3 [template = constants.%array] +// CHECK:STDOUT: %.loc16_57.1: init %array_type.f32 = converted %.loc16_55.1, %.loc16_55.15 [template = constants.%array] // CHECK:STDOUT: %int_2.loc16_70: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %.loc16_57.2: ref %array_type.8d1 = temporary %.loc16_55.3, %.loc16_57.1 +// CHECK:STDOUT: %.loc16_57.2: ref %array_type.f32 = temporary %.loc16_55.3, %.loc16_57.1 // CHECK:STDOUT: %int_32.loc16_71: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc16_71: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc16_70: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16_70: = bound_method %int_2.loc16_70, %impl.elem0.loc16_70 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc16_70: = specific_function %Convert.bound.loc16_70, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc16_70: init %i32 = call %Convert.specific_fn.loc16_70(%int_2.loc16_70) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc16_70.1: %i32 = value_of_initializer %int.convert_checked.loc16_70 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc16_70.2: %i32 = converted %int_2.loc16_70, %.loc16_70.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc16_70: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16_70: = bound_method %int_2.loc16_70, %impl.elem0.loc16_70 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc16_70: = specific_function %Convert.bound.loc16_70, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc16_70: init %i32 = call %Convert.specific_fn.loc16_70(%int_2.loc16_70) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc16_70.1: %i32 = value_of_initializer %int.convert_checked.loc16_70 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc16_70.2: %i32 = converted %int_2.loc16_70, %.loc16_70.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc16_71.1: ref %i32 = array_index %.loc16_57.2, %.loc16_70.2 // CHECK:STDOUT: %.loc16_71.2: %i32 = bind_value %.loc16_71.1 // CHECK:STDOUT: assign file.%array_index.var, diff --git a/toolchain/check/testdata/eval/symbolic.carbon b/toolchain/check/testdata/eval/symbolic.carbon index bbaf173c7d90..970fadd7f2f5 100644 --- a/toolchain/check/testdata/eval/symbolic.carbon +++ b/toolchain/check/testdata/eval/symbolic.carbon @@ -26,34 +26,34 @@ fn G(N:! i32) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %const: type = const_type %T [symbolic] -// CHECK:STDOUT: %tuple.type.e07: type = tuple_type (%ptr.251, %const) [symbolic] -// CHECK:STDOUT: %require_complete.21d: = require_complete_type %tuple.type.e07 [symbolic] +// CHECK:STDOUT: %tuple.type.4f2: type = tuple_type (%ptr.79f, %const) [symbolic] +// CHECK:STDOUT: %require_complete.155: = require_complete_type %tuple.type.4f2 [symbolic] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T} [symbolic] -// CHECK:STDOUT: %require_complete.96f: = require_complete_type %struct_type.a [symbolic] +// CHECK:STDOUT: %require_complete.28a: = require_complete_type %struct_type.a [symbolic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %array_type.b78: type = array_type %int_5, %T [symbolic] -// CHECK:STDOUT: %require_complete.43b: = require_complete_type %array_type.b78 [symbolic] +// CHECK:STDOUT: %array_type.ec2: type = array_type %int_5, %T [symbolic] +// CHECK:STDOUT: %require_complete.fe1: = require_complete_type %array_type.ec2 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %Convert.type.d18: type = fn_type @Convert.3, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.079: %Convert.type.d18 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.3e4, %Convert.079 [symbolic] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.3(%int_32) [symbolic] -// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.3e4) [symbolic] -// CHECK:STDOUT: %array_type.352: type = array_type %int.convert_checked, %i32 [symbolic] -// CHECK:STDOUT: %require_complete.70c: = require_complete_type %array_type.352 [symbolic] +// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.51e) [symbolic] +// CHECK:STDOUT: %array_type.b04: type = array_type %int.convert_checked, %i32 [symbolic] +// CHECK:STDOUT: %require_complete.9dc: = require_complete_type %array_type.b04 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -74,15 +74,15 @@ fn G(N:! i32) { // CHECK:STDOUT: %T.loc12_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %N.patt.loc18_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc18_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc18_6.1, runtime_param [symbolic = %N.patt.loc18_6.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc18_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc18_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc18_6.1, runtime_param [symbolic = %N.patt.loc18_6.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: } { // CHECK:STDOUT: %N.param: %i32 = value_param runtime_param // CHECK:STDOUT: %.loc18: type = splice_block %i32 [template = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc18_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc18_6.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc18_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc18_6.2 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -91,42 +91,42 @@ fn G(N:! i32) { // CHECK:STDOUT: %T.patt.loc12_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_6.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ptr: type = ptr_type @F.%T.loc12_6.2 (%T) [symbolic = %ptr (constants.%ptr.251)] +// CHECK:STDOUT: %ptr: type = ptr_type @F.%T.loc12_6.2 (%T) [symbolic = %ptr (constants.%ptr.79f)] // CHECK:STDOUT: %const: type = const_type @F.%T.loc12_6.2 (%T) [symbolic = %const (constants.%const)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.%ptr (%ptr.251), @F.%const (%const)) [symbolic = %tuple.type (constants.%tuple.type.e07)] -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type @F.%tuple.type (%tuple.type.e07) [symbolic = %require_complete.loc13 (constants.%require_complete.21d)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.%ptr (%ptr.79f), @F.%const (%const)) [symbolic = %tuple.type (constants.%tuple.type.4f2)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type @F.%tuple.type (%tuple.type.4f2) [symbolic = %require_complete.loc13 (constants.%require_complete.155)] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: @F.%T.loc12_6.2 (%T)} [symbolic = %struct_type.a (constants.%struct_type.a)] -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type @F.%struct_type.a (%struct_type.a) [symbolic = %require_complete.loc14 (constants.%require_complete.96f)] -// CHECK:STDOUT: %array_type: type = array_type constants.%int_5, @F.%T.loc12_6.2 (%T) [symbolic = %array_type (constants.%array_type.b78)] -// CHECK:STDOUT: %require_complete.loc15: = require_complete_type @F.%array_type (%array_type.b78) [symbolic = %require_complete.loc15 (constants.%require_complete.43b)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type @F.%struct_type.a (%struct_type.a) [symbolic = %require_complete.loc14 (constants.%require_complete.28a)] +// CHECK:STDOUT: %array_type: type = array_type constants.%int_5, @F.%T.loc12_6.2 (%T) [symbolic = %array_type (constants.%array_type.ec2)] +// CHECK:STDOUT: %require_complete.loc15: = require_complete_type @F.%array_type (%array_type.ec2) [symbolic = %require_complete.loc15 (constants.%require_complete.fe1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %u.var: ref @F.%tuple.type (%tuple.type.e07) = var u -// CHECK:STDOUT: %u: ref @F.%tuple.type (%tuple.type.e07) = bind_name u, %u.var +// CHECK:STDOUT: %u.var: ref @F.%tuple.type (%tuple.type.4f2) = var u +// CHECK:STDOUT: %u: ref @F.%tuple.type (%tuple.type.4f2) = bind_name u, %u.var // CHECK:STDOUT: %v.var: ref @F.%struct_type.a (%struct_type.a) = var v // CHECK:STDOUT: %v: ref @F.%struct_type.a (%struct_type.a) = bind_name v, %v.var -// CHECK:STDOUT: %w.var: ref @F.%array_type (%array_type.b78) = var w -// CHECK:STDOUT: %w: ref @F.%array_type (%array_type.b78) = bind_name w, %w.var +// CHECK:STDOUT: %w.var: ref @F.%array_type (%array_type.ec2) = var w +// CHECK:STDOUT: %w: ref @F.%array_type (%array_type.ec2) = bind_name w, %w.var // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%N.loc18_6.1: %i32) { -// CHECK:STDOUT: %N.loc18_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc18_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc18_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc18_6.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.loc18_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc18_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc18_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc18_6.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc18_6.2, constants.%Convert.079 [symbolic = %Convert.bound (constants.%Convert.bound)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc18_6.2, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound)] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.3(constants.%int_32) [symbolic = %Convert.specific_fn (constants.%Convert.specific_fn)] // CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.loc18_6.2) [symbolic = %int.convert_checked (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type: type = array_type %int.convert_checked, %i32 [symbolic = %array_type (constants.%array_type.352)] -// CHECK:STDOUT: %require_complete: = require_complete_type @G.%array_type (%array_type.352) [symbolic = %require_complete (constants.%require_complete.70c)] +// CHECK:STDOUT: %array_type: type = array_type %int.convert_checked, %i32 [symbolic = %array_type (constants.%array_type.b04)] +// CHECK:STDOUT: %require_complete: = require_complete_type @G.%array_type (%array_type.b04) [symbolic = %require_complete (constants.%require_complete.9dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%N.param_patt: %i32) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %k.var: ref @G.%array_type (%array_type.352) = var k -// CHECK:STDOUT: %k: ref @G.%array_type (%array_type.352) = bind_name k, %k.var +// CHECK:STDOUT: %k.var: ref @G.%array_type (%array_type.b04) = var k +// CHECK:STDOUT: %k: ref @G.%array_type (%array_type.b04) = bind_name k, %k.var // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -136,8 +136,8 @@ fn G(N:! i32) { // CHECK:STDOUT: %T.patt.loc12_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc18_6.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc18_6.2 => constants.%N.3e4 +// CHECK:STDOUT: specific @G(constants.%N.51e) { +// CHECK:STDOUT: %N.loc18_6.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc18_6.2 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/expr_category/in_place_tuple_init.carbon b/toolchain/check/testdata/expr_category/in_place_tuple_init.carbon index f6a87bda93a1..87f994454cd1 100644 --- a/toolchain/check/testdata/expr_category/in_place_tuple_init.carbon +++ b/toolchain/check/testdata/expr_category/in_place_tuple_init.carbon @@ -26,7 +26,7 @@ fn H() -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] @@ -38,7 +38,7 @@ fn H() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -53,30 +53,30 @@ fn H() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %return.patt: %tuple.type.471 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.471 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.d07 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.d07 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_12: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc11_17: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_17: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc11_20.1: %tuple.type.24b = tuple_literal (%i32.loc11_12, %i32.loc11_17) -// CHECK:STDOUT: %.loc11_20.2: type = converted %.loc11_20.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] -// CHECK:STDOUT: %return.param: ref %tuple.type.471 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %tuple.type.471 = return_slot %return.param +// CHECK:STDOUT: %.loc11_20.2: type = converted %.loc11_20.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] +// CHECK:STDOUT: %return.param: ref %tuple.type.d07 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %tuple.type.d07 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %return.patt: %tuple.type.471 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.471 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.d07 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.d07 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc13_12: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13_12: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc13_17: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13_17: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc13_20.1: %tuple.type.24b = tuple_literal (%i32.loc13_12, %i32.loc13_17) -// CHECK:STDOUT: %.loc13_20.2: type = converted %.loc13_20.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] -// CHECK:STDOUT: %return.param: ref %tuple.type.471 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %tuple.type.471 = return_slot %return.param +// CHECK:STDOUT: %.loc13_20.2: type = converted %.loc13_20.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] +// CHECK:STDOUT: %return.param: ref %tuple.type.d07 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %tuple.type.d07 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -89,34 +89,34 @@ fn H() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %tuple.type.471; +// CHECK:STDOUT: fn @F() -> %tuple.type.d07; // CHECK:STDOUT: -// CHECK:STDOUT: fn @G() -> %return.param_patt: %tuple.type.471 { +// CHECK:STDOUT: fn @G() -> %return.param_patt: %tuple.type.d07 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %tuple.type.471 = var v -// CHECK:STDOUT: %v: ref %tuple.type.471 = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref %tuple.type.d07 = var v +// CHECK:STDOUT: %v: ref %tuple.type.d07 = bind_name v, %v.var // CHECK:STDOUT: %F.ref.loc14: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %.loc14: ref %tuple.type.471 = splice_block %v.var {} -// CHECK:STDOUT: %F.call.loc14: init %tuple.type.471 = call %F.ref.loc14() to %.loc14 +// CHECK:STDOUT: %.loc14: ref %tuple.type.d07 = splice_block %v.var {} +// CHECK:STDOUT: %F.call.loc14: init %tuple.type.d07 = call %F.ref.loc14() to %.loc14 // CHECK:STDOUT: assign %v.var, %F.call.loc14 -// CHECK:STDOUT: %v.ref: ref %tuple.type.471 = name_ref v, %v +// CHECK:STDOUT: %v.ref: ref %tuple.type.d07 = name_ref v, %v // CHECK:STDOUT: %F.ref.loc15: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %.loc15: ref %tuple.type.471 = splice_block %v.ref {} -// CHECK:STDOUT: %F.call.loc15: init %tuple.type.471 = call %F.ref.loc15() to %.loc15 +// CHECK:STDOUT: %.loc15: ref %tuple.type.d07 = splice_block %v.ref {} +// CHECK:STDOUT: %F.call.loc15: init %tuple.type.d07 = call %F.ref.loc15() to %.loc15 // CHECK:STDOUT: assign %v.ref, %F.call.loc15 // CHECK:STDOUT: %F.ref.loc16: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %.loc13_8: ref %tuple.type.471 = splice_block %return {} -// CHECK:STDOUT: %F.call.loc16: init %tuple.type.471 = call %F.ref.loc16() to %.loc13_8 +// CHECK:STDOUT: %.loc13_8: ref %tuple.type.d07 = splice_block %return {} +// CHECK:STDOUT: %F.call.loc16: init %tuple.type.d07 = call %F.ref.loc16() to %.loc13_8 // CHECK:STDOUT: return %F.call.loc16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [template = constants.%G] -// CHECK:STDOUT: %.loc20_12.1: ref %tuple.type.471 = temporary_storage -// CHECK:STDOUT: %G.call: init %tuple.type.471 = call %G.ref() to %.loc20_12.1 +// CHECK:STDOUT: %.loc20_12.1: ref %tuple.type.d07 = temporary_storage +// CHECK:STDOUT: %G.call: init %tuple.type.d07 = call %G.ref() to %.loc20_12.1 // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] -// CHECK:STDOUT: %.loc20_12.2: ref %tuple.type.471 = temporary %.loc20_12.1, %G.call +// CHECK:STDOUT: %.loc20_12.2: ref %tuple.type.d07 = temporary %.loc20_12.1, %G.call // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc20_12.2, element0 // CHECK:STDOUT: %.loc20_13: %i32 = bind_value %tuple.elem0 // CHECK:STDOUT: return %.loc20_13 diff --git a/toolchain/check/testdata/function/builtin/call.carbon b/toolchain/check/testdata/function/builtin/call.carbon index 6e21f62bad03..b47a826cecdd 100644 --- a/toolchain/check/testdata/function/builtin/call.carbon +++ b/toolchain/check/testdata/function/builtin/call.carbon @@ -31,8 +31,8 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/builtin/definition.carbon b/toolchain/check/testdata/function/builtin/definition.carbon index 9cc9f84f3557..a22e24ad96d9 100644 --- a/toolchain/check/testdata/function/builtin/definition.carbon +++ b/toolchain/check/testdata/function/builtin/definition.carbon @@ -21,7 +21,7 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/builtin/fail_redefined.carbon b/toolchain/check/testdata/function/builtin/fail_redefined.carbon index 06364b1515c6..85e70635e754 100644 --- a/toolchain/check/testdata/function/builtin/fail_redefined.carbon +++ b/toolchain/check/testdata/function/builtin/fail_redefined.carbon @@ -52,7 +52,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/builtin/method.carbon b/toolchain/check/testdata/function/builtin/method.carbon index bbd4c28f8601..dcb2597397a1 100644 --- a/toolchain/check/testdata/function/builtin/method.carbon +++ b/toolchain/check/testdata/function/builtin/method.carbon @@ -22,27 +22,27 @@ var arr: [i32; (1 as i32).(I.F)(2)]; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.e86: type = facet_access_type %Self.fb7 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] -// CHECK:STDOUT: %assoc0.d14: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.b70: type = facet_access_type %Self.826 [symbolic] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] +// CHECK:STDOUT: %assoc0.fa7: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %impl_witness.6ae: = impl_witness (@impl.1.%F.decl) [template] -// CHECK:STDOUT: %F.type.0e2: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.c9c: %F.type.0e2 = struct_value () [template] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, %impl_witness.6ae [template] +// CHECK:STDOUT: %impl_witness.da7: = impl_witness (@impl.1.%F.decl) [template] +// CHECK:STDOUT: %F.type.066: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.9ec: %F.type.066 = struct_value () [template] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, %impl_witness.da7 [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -61,42 +61,42 @@ var arr: [i32; (1 as i32).(I.F)(2)]; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [template = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%F.decl) [template = constants.%impl_witness.6ae] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%F.decl) [template = constants.%impl_witness.da7] // CHECK:STDOUT: %arr.var: ref %array_type = var arr // CHECK:STDOUT: %arr: ref %array_type = bind_name arr, %arr.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] { -// CHECK:STDOUT: %self.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = value_param_pattern %self.patt, runtime_param0 -// CHECK:STDOUT: %other.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = binding_pattern other -// CHECK:STDOUT: %other.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = value_param_pattern %other.patt, runtime_param1 -// CHECK:STDOUT: %return.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = out_param_pattern %return.patt, runtime_param2 +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] { +// CHECK:STDOUT: %self.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %other.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = binding_pattern other +// CHECK:STDOUT: %other.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = value_param_pattern %other.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = out_param_pattern %return.patt, runtime_param2 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref.loc12_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.fb7)] -// CHECK:STDOUT: %Self.as_type.loc12_36: type = facet_access_type %Self.ref.loc12_36 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] -// CHECK:STDOUT: %.loc12_36: type = converted %Self.ref.loc12_36, %Self.as_type.loc12_36 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] -// CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = value_param runtime_param0 -// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] { -// CHECK:STDOUT: %Self.ref.loc12_14: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.fb7)] -// CHECK:STDOUT: %Self.as_type.loc12_14.2: type = facet_access_type %Self.ref.loc12_14 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] -// CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref.loc12_14, %Self.as_type.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] +// CHECK:STDOUT: %Self.ref.loc12_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] +// CHECK:STDOUT: %Self.as_type.loc12_36: type = facet_access_type %Self.ref.loc12_36 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc12_36: type = converted %Self.ref.loc12_36, %Self.as_type.loc12_36 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = value_param runtime_param0 +// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] { +// CHECK:STDOUT: %Self.ref.loc12_14: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] +// CHECK:STDOUT: %Self.as_type.loc12_14.2: type = facet_access_type %Self.ref.loc12_14 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref.loc12_14, %Self.as_type.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = value_param runtime_param1 -// CHECK:STDOUT: %.loc12_27.1: type = splice_block %.loc12_27.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] { -// CHECK:STDOUT: %Self.ref.loc12_27: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.fb7)] -// CHECK:STDOUT: %Self.as_type.loc12_27: type = facet_access_type %Self.ref.loc12_27 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] -// CHECK:STDOUT: %.loc12_27.2: type = converted %Self.ref.loc12_27, %Self.as_type.loc12_27 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] +// CHECK:STDOUT: %self: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = value_param runtime_param1 +// CHECK:STDOUT: %.loc12_27.1: type = splice_block %.loc12_27.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] { +// CHECK:STDOUT: %Self.ref.loc12_27: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] +// CHECK:STDOUT: %Self.as_type.loc12_27: type = facet_access_type %Self.ref.loc12_27 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc12_27.2: type = converted %Self.ref.loc12_27, %Self.as_type.loc12_27 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = out_param runtime_param2 -// CHECK:STDOUT: %return: ref @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86) = return_slot %return.param +// CHECK:STDOUT: %other: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = out_param runtime_param2 +// CHECK:STDOUT: %return: ref @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0.d14] +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0.fa7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -105,7 +105,7 @@ var arr: [i32; (1 as i32).(I.F)(2)]; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %i32 as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.0e2 = fn_decl @F.2 [template = constants.%F.c9c] { +// CHECK:STDOUT: %F.decl: %F.type.066 = fn_decl @F.2 [template = constants.%F.9ec] { // CHECK:STDOUT: %self.patt: %i32 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %i32 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %i32 = binding_pattern other @@ -137,17 +137,17 @@ var arr: [i32; (1 as i32).(I.F)(2)]; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.fb7)] -// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.e86)] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.826)] +// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.b70)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86)](%other.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86)) -> @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.e86); +// CHECK:STDOUT: fn[%self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70)](%other.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70)) -> @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.b70); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.2[%self.param_patt: %i32](%other.param_patt: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.fb7) { -// CHECK:STDOUT: %Self => constants.%Self.fb7 -// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type.e86 +// CHECK:STDOUT: specific @F.1(constants.%Self.826) { +// CHECK:STDOUT: %Self => constants.%Self.826 +// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type.b70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%I.facet) { diff --git a/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon index d79d5f37dd25..166409ef09ca 100644 --- a/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon @@ -57,65 +57,65 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Int.type: type = fn_type @Int [template] // CHECK:STDOUT: %Int: %Int.type = struct_value () [template] // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [template] -// CHECK:STDOUT: %Self.d51: %Add.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.c8e: type = facet_access_type %Self.d51 [symbolic] -// CHECK:STDOUT: %Op.type.16a: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %Op.93e: %Op.type.16a = struct_value () [template] -// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.16a [template] -// CHECK:STDOUT: %assoc0.dcf: %Op.assoc_type = assoc_entity element0, @Add.%Op.decl [template] +// CHECK:STDOUT: %Self.b3d: %Add.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.f73: type = facet_access_type %Self.b3d [symbolic] +// CHECK:STDOUT: %Op.type.31b: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.d59: %Op.type.31b = struct_value () [template] +// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.31b [template] +// CHECK:STDOUT: %assoc0.a27: %Op.assoc_type = assoc_entity element0, @Add.%Op.decl [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %As.type.b51: type = generic_interface_type @As [template] // CHECK:STDOUT: %As.generic: %As.type.b51 = struct_value () [template] -// CHECK:STDOUT: %As.type.8b0: type = facet_type <@As, @As(%T)> [symbolic] -// CHECK:STDOUT: %Self.a39: %As.type.8b0 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.5fa: type = facet_access_type %Self.a39 [symbolic] -// CHECK:STDOUT: %Convert.type.412: type = fn_type @Convert.1, @As(%T) [symbolic] -// CHECK:STDOUT: %Convert.adc: %Convert.type.412 = struct_value () [symbolic] -// CHECK:STDOUT: %Convert.assoc_type.d24: type = assoc_entity_type %As.type.8b0, %Convert.type.412 [symbolic] -// CHECK:STDOUT: %assoc0.e2f: %Convert.assoc_type.d24 = assoc_entity element0, @As.%Convert.decl [symbolic] +// CHECK:STDOUT: %As.type.8ba: type = facet_type <@As, @As(%T)> [symbolic] +// CHECK:STDOUT: %Self.b4e: %As.type.8ba = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.7f0: type = facet_access_type %Self.b4e [symbolic] +// CHECK:STDOUT: %Convert.type.ad1: type = fn_type @Convert.1, @As(%T) [symbolic] +// CHECK:STDOUT: %Convert.0ed: %Convert.type.ad1 = struct_value () [symbolic] +// CHECK:STDOUT: %Convert.assoc_type.0ce: type = assoc_entity_type %As.type.8ba, %Convert.type.ad1 [symbolic] +// CHECK:STDOUT: %assoc0.179: %Convert.assoc_type.0ce = assoc_entity element0, @As.%Convert.decl [symbolic] // CHECK:STDOUT: %ImplicitAs.type.96f: type = generic_interface_type @ImplicitAs [template] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.96f = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.type.a1f: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self.819: %ImplicitAs.type.a1f = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.dc3: type = facet_access_type %Self.819 [symbolic] -// CHECK:STDOUT: %Convert.type.b11: type = fn_type @Convert.2, @ImplicitAs(%T) [symbolic] -// CHECK:STDOUT: %Convert.639: %Convert.type.b11 = struct_value () [symbolic] -// CHECK:STDOUT: %Convert.assoc_type.4d8: type = assoc_entity_type %ImplicitAs.type.a1f, %Convert.type.b11 [symbolic] -// CHECK:STDOUT: %assoc0.39c: %Convert.assoc_type.4d8 = assoc_entity element0, @ImplicitAs.%Convert.decl [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.07f: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self.0f3: %ImplicitAs.type.07f = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.419: type = facet_access_type %Self.0f3 [symbolic] +// CHECK:STDOUT: %Convert.type.4cf: type = fn_type @Convert.2, @ImplicitAs(%T) [symbolic] +// CHECK:STDOUT: %Convert.147: %Convert.type.4cf = struct_value () [symbolic] +// CHECK:STDOUT: %Convert.assoc_type.154: type = assoc_entity_type %ImplicitAs.type.07f, %Convert.type.4cf [symbolic] +// CHECK:STDOUT: %assoc0.1f7: %Convert.assoc_type.154 = assoc_entity element0, @ImplicitAs.%Convert.decl [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] -// CHECK:STDOUT: %impl_witness.8dc: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.9ef: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.11a: %Op.type.9ef = struct_value () [template] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %i32.builtin, %impl_witness.8dc [template] -// CHECK:STDOUT: %As.type.8e7: type = facet_type <@As, @As(%i32.builtin)> [template] -// CHECK:STDOUT: %Convert.type.d05: type = fn_type @Convert.1, @As(%i32.builtin) [template] -// CHECK:STDOUT: %Convert.5e5: %Convert.type.d05 = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.596: type = assoc_entity_type %As.type.8e7, %Convert.type.d05 [template] -// CHECK:STDOUT: %assoc0.c6b: %Convert.assoc_type.596 = assoc_entity element0, @As.%Convert.decl [template] -// CHECK:STDOUT: %impl_witness.fce: = impl_witness (@impl.2.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.6e5: type = fn_type @Convert.3 [template] -// CHECK:STDOUT: %Convert.b6a: %Convert.type.6e5 = struct_value () [template] -// CHECK:STDOUT: %As.facet: %As.type.8b0 = facet_value Core.IntLiteral, %impl_witness.fce [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.982: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] -// CHECK:STDOUT: %Convert.type.c1f: type = fn_type @Convert.2, @ImplicitAs(%i32.builtin) [template] -// CHECK:STDOUT: %Convert.338: %Convert.type.c1f = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.918: type = assoc_entity_type %ImplicitAs.type.982, %Convert.type.c1f [template] -// CHECK:STDOUT: %assoc0.e51: %Convert.assoc_type.918 = assoc_entity element0, @ImplicitAs.%Convert.decl [template] -// CHECK:STDOUT: %impl_witness.c5e: = impl_witness (@impl.3.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.928: type = fn_type @Convert.4 [template] -// CHECK:STDOUT: %Convert.4e2: %Convert.type.928 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.f01: %ImplicitAs.type.a1f = facet_value Core.IntLiteral, %impl_witness.c5e [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.5f7: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [template] -// CHECK:STDOUT: %Convert.type.dde: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.254: %Convert.type.dde = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.6c1: type = assoc_entity_type %ImplicitAs.type.5f7, %Convert.type.dde [template] -// CHECK:STDOUT: %assoc0.143: %Convert.assoc_type.6c1 = assoc_entity element0, @ImplicitAs.%Convert.decl [template] -// CHECK:STDOUT: %impl_witness.2ba: = impl_witness (@impl.4.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.578: type = fn_type @Convert.5 [template] -// CHECK:STDOUT: %Convert.5d6: %Convert.type.578 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.f95: %ImplicitAs.type.a1f = facet_value %i32.builtin, %impl_witness.2ba [symbolic] +// CHECK:STDOUT: %impl_witness.8b6: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.c2a: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.4e3: %Op.type.c2a = struct_value () [template] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %i32.builtin, %impl_witness.8b6 [template] +// CHECK:STDOUT: %As.type.a09: type = facet_type <@As, @As(%i32.builtin)> [template] +// CHECK:STDOUT: %Convert.type.c0d: type = fn_type @Convert.1, @As(%i32.builtin) [template] +// CHECK:STDOUT: %Convert.713: %Convert.type.c0d = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.3d5: type = assoc_entity_type %As.type.a09, %Convert.type.c0d [template] +// CHECK:STDOUT: %assoc0.099: %Convert.assoc_type.3d5 = assoc_entity element0, @As.%Convert.decl [template] +// CHECK:STDOUT: %impl_witness.213: = impl_witness (@impl.2.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.fc9: type = fn_type @Convert.3 [template] +// CHECK:STDOUT: %Convert.33c: %Convert.type.fc9 = struct_value () [template] +// CHECK:STDOUT: %As.facet: %As.type.8ba = facet_value Core.IntLiteral, %impl_witness.213 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.11a: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] +// CHECK:STDOUT: %Convert.type.752: type = fn_type @Convert.2, @ImplicitAs(%i32.builtin) [template] +// CHECK:STDOUT: %Convert.fcc: %Convert.type.752 = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.93b: type = assoc_entity_type %ImplicitAs.type.11a, %Convert.type.752 [template] +// CHECK:STDOUT: %assoc0.8ce: %Convert.assoc_type.93b = assoc_entity element0, @ImplicitAs.%Convert.decl [template] +// CHECK:STDOUT: %impl_witness.48c: = impl_witness (@impl.3.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.c2a: type = fn_type @Convert.4 [template] +// CHECK:STDOUT: %Convert.40d: %Convert.type.c2a = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.555: %ImplicitAs.type.07f = facet_value Core.IntLiteral, %impl_witness.48c [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.9fc: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [template] +// CHECK:STDOUT: %Convert.type.60e: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [template] +// CHECK:STDOUT: %Convert.c73: %Convert.type.60e = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.6ab: type = assoc_entity_type %ImplicitAs.type.9fc, %Convert.type.60e [template] +// CHECK:STDOUT: %assoc0.9d6: %Convert.assoc_type.6ab = assoc_entity element0, @ImplicitAs.%Convert.decl [template] +// CHECK:STDOUT: %impl_witness.caf: = impl_witness (@impl.4.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.295: type = fn_type @Convert.5 [template] +// CHECK:STDOUT: %Convert.2bf: %Convert.type.295 = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.2ca: %ImplicitAs.type.07f = facet_value %i32.builtin, %impl_witness.caf [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -172,7 +172,7 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %.loc19_6.2: type = converted %int.make_type_signed, %.loc19_6.1 [template = constants.%i32.builtin] // CHECK:STDOUT: %Add.ref: type = name_ref Add, file.%Add.decl [template = constants.%Add.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.8dc] +// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.8b6] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] @@ -183,9 +183,9 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc23_28.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc23_28.2: type = converted %int.make_type_signed, %.loc23_28.1 [template = constants.%i32.builtin] -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(constants.%i32.builtin)> [template = constants.%As.type.8e7] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(constants.%i32.builtin)> [template = constants.%As.type.a09] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc23: = impl_witness (@impl.2.%Convert.decl) [template = constants.%impl_witness.fce] +// CHECK:STDOUT: %impl_witness.loc23: = impl_witness (@impl.2.%Convert.decl) [template = constants.%impl_witness.213] // CHECK:STDOUT: impl_decl @impl.3 [template] {} { // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] @@ -196,9 +196,9 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc27_36.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc27_36.2: type = converted %int.make_type_signed, %.loc27_36.1 [template = constants.%i32.builtin] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32.builtin)> [template = constants.%ImplicitAs.type.982] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32.builtin)> [template = constants.%ImplicitAs.type.11a] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc27: = impl_witness (@impl.3.%Convert.decl) [template = constants.%impl_witness.c5e] +// CHECK:STDOUT: %impl_witness.loc27: = impl_witness (@impl.3.%Convert.decl) [template = constants.%impl_witness.48c] // CHECK:STDOUT: impl_decl @impl.4 [template] {} { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32.builtin] @@ -209,42 +209,42 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc31_36.1: type = value_of_initializer %int_literal.make_type [template = Core.IntLiteral] // CHECK:STDOUT: %.loc31_36.2: type = converted %int_literal.make_type, %.loc31_36.1 [template = Core.IntLiteral] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [template = constants.%ImplicitAs.type.5f7] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [template = constants.%ImplicitAs.type.9fc] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc31: = impl_witness (@impl.4.%Convert.decl) [template = constants.%impl_witness.2ba] +// CHECK:STDOUT: %impl_witness.loc31: = impl_witness (@impl.4.%Convert.decl) [template = constants.%impl_witness.caf] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Add { -// CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d51] -// CHECK:STDOUT: %Op.decl: %Op.type.16a = fn_decl @Op.1 [template = constants.%Op.93e] { -// CHECK:STDOUT: %self.patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = value_param_pattern %self.patt, runtime_param0 -// CHECK:STDOUT: %other.patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = binding_pattern other -// CHECK:STDOUT: %other.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = value_param_pattern %other.patt, runtime_param1 -// CHECK:STDOUT: %return.patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = out_param_pattern %return.patt, runtime_param2 +// CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.b3d] +// CHECK:STDOUT: %Op.decl: %Op.type.31b = fn_decl @Op.1 [template = constants.%Op.d59] { +// CHECK:STDOUT: %self.patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %other.patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = binding_pattern other +// CHECK:STDOUT: %other.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = value_param_pattern %other.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = out_param_pattern %return.patt, runtime_param2 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref.loc8_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self.d51)] -// 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.c8e)] -// CHECK:STDOUT: %.loc8_37: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.c8e)] -// CHECK:STDOUT: %self.param: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = value_param runtime_param0 -// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.c8e)] { -// CHECK:STDOUT: %Self.ref.loc8_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self.d51)] -// 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.c8e)] -// CHECK:STDOUT: %.loc8_15.2: type = converted %Self.ref.loc8_15, %Self.as_type.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.c8e)] +// CHECK:STDOUT: %Self.ref.loc8_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self.b3d)] +// 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.f73)] +// CHECK:STDOUT: %.loc8_37: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.f73)] +// CHECK:STDOUT: %self.param: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = value_param runtime_param0 +// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.f73)] { +// CHECK:STDOUT: %Self.ref.loc8_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self.b3d)] +// 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.f73)] +// CHECK:STDOUT: %.loc8_15.2: type = converted %Self.ref.loc8_15, %Self.as_type.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.f73)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = value_param runtime_param1 -// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.c8e)] { -// CHECK:STDOUT: %Self.ref.loc8_28: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self.d51)] -// 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.c8e)] -// CHECK:STDOUT: %.loc8_28.2: type = converted %Self.ref.loc8_28, %Self.as_type.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.c8e)] +// CHECK:STDOUT: %self: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = value_param runtime_param1 +// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.f73)] { +// CHECK:STDOUT: %Self.ref.loc8_28: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self.b3d)] +// 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.f73)] +// CHECK:STDOUT: %.loc8_28.2: type = converted %Self.ref.loc8_28, %Self.as_type.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.f73)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = out_param runtime_param2 -// CHECK:STDOUT: %return: ref @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e) = return_slot %return.param +// CHECK:STDOUT: %other: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = out_param runtime_param2 +// CHECK:STDOUT: %return: ref @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %Op.assoc_type = assoc_entity element0, %Op.decl [template = constants.%assoc0.dcf] +// CHECK:STDOUT: %assoc0: %Op.assoc_type = assoc_entity element0, %Op.decl [template = constants.%assoc0.a27] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -257,34 +257,34 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt.loc11_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_14.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T.loc11_14.2)> [symbolic = %As.type (constants.%As.type.8b0)] -// CHECK:STDOUT: %Self.2: %As.type.8b0 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a39)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @As(%T.loc11_14.2) [symbolic = %Convert.type (constants.%Convert.type.412)] -// CHECK:STDOUT: %Convert: @As.%Convert.type (%Convert.type.412) = struct_value () [symbolic = %Convert (constants.%Convert.adc)] -// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @As.%As.type (%As.type.8b0), @As.%Convert.type (%Convert.type.412) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.d24)] -// CHECK:STDOUT: %assoc0.loc12_32.2: @As.%Convert.assoc_type (%Convert.assoc_type.d24) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc12_32.2 (constants.%assoc0.e2f)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T.loc11_14.2)> [symbolic = %As.type (constants.%As.type.8ba)] +// CHECK:STDOUT: %Self.2: %As.type.8ba = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.b4e)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @As(%T.loc11_14.2) [symbolic = %Convert.type (constants.%Convert.type.ad1)] +// CHECK:STDOUT: %Convert: @As.%Convert.type (%Convert.type.ad1) = struct_value () [symbolic = %Convert (constants.%Convert.0ed)] +// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @As.%As.type (%As.type.8ba), @As.%Convert.type (%Convert.type.ad1) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.0ce)] +// CHECK:STDOUT: %assoc0.loc12_32.2: @As.%Convert.assoc_type (%Convert.assoc_type.0ce) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc12_32.2 (constants.%assoc0.179)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @As.%As.type (%As.type.8b0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a39)] -// CHECK:STDOUT: %Convert.decl: @As.%Convert.type (%Convert.type.412) = fn_decl @Convert.1 [symbolic = @As.%Convert (constants.%Convert.adc)] { -// CHECK:STDOUT: %self.patt: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.5fa) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.5fa) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Self.1: @As.%As.type (%As.type.8ba) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.b4e)] +// CHECK:STDOUT: %Convert.decl: @As.%Convert.type (%Convert.type.ad1) = fn_decl @Convert.1 [symbolic = @As.%Convert (constants.%Convert.0ed)] { +// CHECK:STDOUT: %self.patt: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.7f0) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.7f0) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @Convert.1.%T (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @Convert.1.%T (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @As.%T.loc11_14.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.5fa) = value_param runtime_param0 -// CHECK:STDOUT: %.loc12_20.1: type = splice_block %.loc12_20.3 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.5fa)] { -// CHECK:STDOUT: %.loc12_20.2: @Convert.1.%As.type (%As.type.8b0) = specific_constant @As.%Self.1, @As(constants.%T) [symbolic = %Self (constants.%Self.a39)] -// CHECK:STDOUT: %Self.ref: @Convert.1.%As.type (%As.type.8b0) = name_ref Self, %.loc12_20.2 [symbolic = %Self (constants.%Self.a39)] -// 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.5fa)] -// 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.5fa)] +// CHECK:STDOUT: %self.param: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.7f0) = value_param runtime_param0 +// CHECK:STDOUT: %.loc12_20.1: type = splice_block %.loc12_20.3 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.7f0)] { +// CHECK:STDOUT: %.loc12_20.2: @Convert.1.%As.type (%As.type.8ba) = specific_constant @As.%Self.1, @As(constants.%T) [symbolic = %Self (constants.%Self.b4e)] +// CHECK:STDOUT: %Self.ref: @Convert.1.%As.type (%As.type.8ba) = name_ref Self, %.loc12_20.2 [symbolic = %Self (constants.%Self.b4e)] +// 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.7f0)] +// 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.7f0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.5fa) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.7f0) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Convert.1.%T (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @Convert.1.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc12_32.1: @As.%Convert.assoc_type (%Convert.assoc_type.d24) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc12_32.2 (constants.%assoc0.e2f)] +// CHECK:STDOUT: %assoc0.loc12_32.1: @As.%Convert.assoc_type (%Convert.assoc_type.0ce) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc12_32.2 (constants.%assoc0.179)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -298,34 +298,34 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt.loc15_22.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc15_22.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc15_22.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.a1f)] -// CHECK:STDOUT: %Self.2: %ImplicitAs.type.a1f = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.819)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.2, @ImplicitAs(%T.loc15_22.2) [symbolic = %Convert.type (constants.%Convert.type.b11)] -// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.b11) = struct_value () [symbolic = %Convert (constants.%Convert.639)] -// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.a1f), @ImplicitAs.%Convert.type (%Convert.type.b11) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.4d8)] -// CHECK:STDOUT: %assoc0.loc16_32.2: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.4d8) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc16_32.2 (constants.%assoc0.39c)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc15_22.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] +// CHECK:STDOUT: %Self.2: %ImplicitAs.type.07f = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.0f3)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.2, @ImplicitAs(%T.loc15_22.2) [symbolic = %Convert.type (constants.%Convert.type.4cf)] +// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.4cf) = struct_value () [symbolic = %Convert (constants.%Convert.147)] +// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f), @ImplicitAs.%Convert.type (%Convert.type.4cf) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.154)] +// CHECK:STDOUT: %assoc0.loc16_32.2: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.154) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc16_32.2 (constants.%assoc0.1f7)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.a1f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.819)] -// CHECK:STDOUT: %Convert.decl: @ImplicitAs.%Convert.type (%Convert.type.b11) = fn_decl @Convert.2 [symbolic = @ImplicitAs.%Convert (constants.%Convert.639)] { -// CHECK:STDOUT: %self.patt: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.dc3) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.dc3) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.0f3)] +// CHECK:STDOUT: %Convert.decl: @ImplicitAs.%Convert.type (%Convert.type.4cf) = fn_decl @Convert.2 [symbolic = @ImplicitAs.%Convert (constants.%Convert.147)] { +// CHECK:STDOUT: %self.patt: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.419) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.419) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @Convert.2.%T (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @Convert.2.%T (%T) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc15_22.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.dc3) = value_param runtime_param0 -// CHECK:STDOUT: %.loc16_20.1: type = splice_block %.loc16_20.3 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.dc3)] { -// CHECK:STDOUT: %.loc16_20.2: @Convert.2.%ImplicitAs.type (%ImplicitAs.type.a1f) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self.819)] -// CHECK:STDOUT: %Self.ref: @Convert.2.%ImplicitAs.type (%ImplicitAs.type.a1f) = name_ref Self, %.loc16_20.2 [symbolic = %Self (constants.%Self.819)] -// 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.dc3)] -// 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.dc3)] +// CHECK:STDOUT: %self.param: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.419) = value_param runtime_param0 +// CHECK:STDOUT: %.loc16_20.1: type = splice_block %.loc16_20.3 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.419)] { +// CHECK:STDOUT: %.loc16_20.2: @Convert.2.%ImplicitAs.type (%ImplicitAs.type.07f) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self.0f3)] +// CHECK:STDOUT: %Self.ref: @Convert.2.%ImplicitAs.type (%ImplicitAs.type.07f) = name_ref Self, %.loc16_20.2 [symbolic = %Self (constants.%Self.0f3)] +// 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.419)] +// 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.419)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.dc3) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.419) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Convert.2.%T (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @Convert.2.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc16_32.1: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.4d8) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc16_32.2 (constants.%assoc0.39c)] +// CHECK:STDOUT: %assoc0.loc16_32.1: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.154) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc16_32.2 (constants.%assoc0.1f7)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -335,7 +335,7 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %.loc19_6.2 as %Add.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.9ef = fn_decl @Op.2 [template = constants.%Op.11a] { +// CHECK:STDOUT: %Op.decl: %Op.type.c2a = fn_decl @Op.2 [template = constants.%Op.4e3] { // CHECK:STDOUT: %self.patt: %i32.builtin = binding_pattern self // CHECK:STDOUT: %self.param_patt: %i32.builtin = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %i32.builtin = binding_pattern other @@ -360,7 +360,7 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %.loc23_17.2 as %As.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.6e5 = fn_decl @Convert.3 [template = constants.%Convert.b6a] { +// CHECK:STDOUT: %Convert.decl: %Convert.type.fc9 = fn_decl @Convert.3 [template = constants.%Convert.33c] { // CHECK:STDOUT: %self.patt: Core.IntLiteral = binding_pattern self // CHECK:STDOUT: %self.param_patt: Core.IntLiteral = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32.builtin = return_slot_pattern @@ -383,7 +383,7 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.3: %.loc27_17.2 as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.928 = fn_decl @Convert.4 [template = constants.%Convert.4e2] { +// CHECK:STDOUT: %Convert.decl: %Convert.type.c2a = fn_decl @Convert.4 [template = constants.%Convert.40d] { // CHECK:STDOUT: %self.patt: Core.IntLiteral = binding_pattern self // CHECK:STDOUT: %self.param_patt: Core.IntLiteral = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32.builtin = return_slot_pattern @@ -406,7 +406,7 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.4: %.loc31_6.2 as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.578 = fn_decl @Convert.5 [template = constants.%Convert.5d6] { +// CHECK:STDOUT: %Convert.decl: %Convert.type.295 = fn_decl @Convert.5 [template = constants.%Convert.2bf] { // CHECK:STDOUT: %self.patt: %i32.builtin = binding_pattern self // CHECK:STDOUT: %self.param_patt: %i32.builtin = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: Core.IntLiteral = return_slot_pattern @@ -433,28 +433,28 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: fn @Int(%N.param_patt: Core.IntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Op.1(@Add.%Self: %Add.type) { -// CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.d51)] -// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.c8e)] +// CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.b3d)] +// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.f73)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e)](%other.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e)) -> @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.c8e); +// CHECK:STDOUT: fn[%self.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73)](%other.param_patt: @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73)) -> @Op.1.%Self.as_type.loc8_15.1 (%Self.as_type.f73); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.1(@As.%T.loc11_14.1: type, @As.%Self.1: @As.%As.type (%As.type.8b0)) { +// CHECK:STDOUT: generic fn @Convert.1(@As.%T.loc11_14.1: type, @As.%Self.1: @As.%As.type (%As.type.8ba)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.8b0)] -// CHECK:STDOUT: %Self: %As.type.8b0 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.a39)] -// CHECK:STDOUT: %Self.as_type.loc12_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.5fa)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.8ba)] +// CHECK:STDOUT: %Self: %As.type.8ba = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.b4e)] +// CHECK:STDOUT: %Self.as_type.loc12_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.7f0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.5fa)]() -> @Convert.1.%T (%T); +// CHECK:STDOUT: fn[%self.param_patt: @Convert.1.%Self.as_type.loc12_20.1 (%Self.as_type.7f0)]() -> @Convert.1.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.2(@ImplicitAs.%T.loc15_22.1: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.a1f)) { +// CHECK:STDOUT: generic fn @Convert.2(@ImplicitAs.%T.loc15_22.1: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.a1f)] -// CHECK:STDOUT: %Self: %ImplicitAs.type.a1f = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.819)] -// CHECK:STDOUT: %Self.as_type.loc16_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.dc3)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] +// CHECK:STDOUT: %Self: %ImplicitAs.type.07f = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.0f3)] +// CHECK:STDOUT: %Self.as_type.loc16_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.419)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.dc3)]() -> @Convert.2.%T (%T); +// CHECK:STDOUT: fn[%self.param_patt: @Convert.2.%Self.as_type.loc16_20.1 (%Self.as_type.419)]() -> @Convert.2.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.2[%self.param_patt: %i32.builtin](%other.param_patt: %i32.builtin) -> %i32.builtin = "int.sadd"; @@ -465,9 +465,9 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.5[%self.param_patt: %i32.builtin]() -> Core.IntLiteral = "int.convert_checked"; // CHECK:STDOUT: -// CHECK:STDOUT: specific @Op.1(constants.%Self.d51) { -// CHECK:STDOUT: %Self => constants.%Self.d51 -// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type.c8e +// CHECK:STDOUT: specific @Op.1(constants.%Self.b3d) { +// CHECK:STDOUT: %Self => constants.%Self.b3d +// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type.f73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As(constants.%T) { @@ -475,11 +475,11 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt.loc11_14.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%T, constants.%Self.a39) { +// CHECK:STDOUT: specific @Convert.1(constants.%T, constants.%Self.b4e) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %As.type => constants.%As.type.8b0 -// CHECK:STDOUT: %Self => constants.%Self.a39 -// CHECK:STDOUT: %Self.as_type.loc12_20.1 => constants.%Self.as_type.5fa +// CHECK:STDOUT: %As.type => constants.%As.type.8ba +// CHECK:STDOUT: %Self => constants.%Self.b4e +// CHECK:STDOUT: %Self.as_type.loc12_20.1 => constants.%Self.as_type.7f0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As(@Convert.1.%T) {} @@ -491,11 +491,11 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt.loc15_22.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.2(constants.%T, constants.%Self.819) { +// CHECK:STDOUT: specific @Convert.2(constants.%T, constants.%Self.0f3) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a1f -// CHECK:STDOUT: %Self => constants.%Self.819 -// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%Self.as_type.dc3 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.07f +// CHECK:STDOUT: %Self => constants.%Self.0f3 +// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%Self.as_type.419 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(@Convert.2.%T) {} @@ -512,17 +512,17 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt.loc11_14.2 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type => constants.%As.type.8e7 -// CHECK:STDOUT: %Self.2 => constants.%Self.a39 -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.d05 -// CHECK:STDOUT: %Convert => constants.%Convert.5e5 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.596 -// CHECK:STDOUT: %assoc0.loc12_32.2 => constants.%assoc0.c6b +// CHECK:STDOUT: %As.type => constants.%As.type.a09 +// CHECK:STDOUT: %Self.2 => constants.%Self.b4e +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.c0d +// CHECK:STDOUT: %Convert => constants.%Convert.713 +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.3d5 +// CHECK:STDOUT: %assoc0.loc12_32.2 => constants.%assoc0.099 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert.1(constants.%i32.builtin, constants.%As.facet) { // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %As.type => constants.%As.type.8e7 +// CHECK:STDOUT: %As.type => constants.%As.type.a09 // CHECK:STDOUT: %Self => constants.%As.facet // CHECK:STDOUT: %Self.as_type.loc12_20.1 => Core.IntLiteral // CHECK:STDOUT: } @@ -532,18 +532,18 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt.loc15_22.2 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.982 -// CHECK:STDOUT: %Self.2 => constants.%Self.819 -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.c1f -// CHECK:STDOUT: %Convert => constants.%Convert.338 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.918 -// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.e51 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.11a +// CHECK:STDOUT: %Self.2 => constants.%Self.0f3 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.752 +// CHECK:STDOUT: %Convert => constants.%Convert.fcc +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.93b +// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.8ce // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.2(constants.%i32.builtin, constants.%ImplicitAs.facet.f01) { +// CHECK:STDOUT: specific @Convert.2(constants.%i32.builtin, constants.%ImplicitAs.facet.555) { // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.982 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.f01 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.11a +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.555 // CHECK:STDOUT: %Self.as_type.loc16_20.1 => Core.IntLiteral // CHECK:STDOUT: } // CHECK:STDOUT: @@ -552,18 +552,18 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt.loc15_22.2 => Core.IntLiteral // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.5f7 -// CHECK:STDOUT: %Self.2 => constants.%Self.819 -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.dde -// CHECK:STDOUT: %Convert => constants.%Convert.254 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.6c1 -// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.143 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fc +// CHECK:STDOUT: %Self.2 => constants.%Self.0f3 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.60e +// CHECK:STDOUT: %Convert => constants.%Convert.c73 +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.6ab +// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.9d6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.2(Core.IntLiteral, constants.%ImplicitAs.facet.f95) { +// CHECK:STDOUT: specific @Convert.2(Core.IntLiteral, constants.%ImplicitAs.facet.2ca) { // CHECK:STDOUT: %T => Core.IntLiteral -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.5f7 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.f95 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fc +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.2ca // CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%i32.builtin // CHECK:STDOUT: } // CHECK:STDOUT: @@ -576,102 +576,102 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %As.type.3d3: type = facet_type <@As, @As(%T)> [symbolic] -// CHECK:STDOUT: %Self.24c: %As.type.3d3 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %As.type.eed: type = facet_type <@As, @As(%T)> [symbolic] +// CHECK:STDOUT: %Self.65a: %As.type.eed = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.1e6: type = fn_type @Convert.1, @As(%T) [symbolic] -// CHECK:STDOUT: %Convert.4bc: %Convert.type.1e6 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.414: type = facet_access_type %Self.24c [symbolic] -// CHECK:STDOUT: %Convert.assoc_type.e0d: type = assoc_entity_type %As.type.3d3, %Convert.type.1e6 [symbolic] -// CHECK:STDOUT: %assoc0.cb697b.1: %Convert.assoc_type.e0d = assoc_entity element0, imports.%import_ref.9c35ee.1 [symbolic] -// CHECK:STDOUT: %As.type.878: type = facet_type <@As, @As(%i32.builtin)> [template] -// CHECK:STDOUT: %Convert.type.1d5: type = fn_type @Convert.1, @As(%i32.builtin) [template] -// CHECK:STDOUT: %Convert.3b8: %Convert.type.1d5 = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.bb4: type = assoc_entity_type %As.type.878, %Convert.type.1d5 [template] -// CHECK:STDOUT: %assoc0.c56: %Convert.assoc_type.bb4 = assoc_entity element0, imports.%import_ref.9c35ee.1 [template] -// CHECK:STDOUT: %assoc0.cb697b.2: %Convert.assoc_type.e0d = assoc_entity element0, imports.%import_ref.9c35ee.2 [symbolic] +// CHECK:STDOUT: %Convert.type.843: type = fn_type @Convert.1, @As(%T) [symbolic] +// CHECK:STDOUT: %Convert.95f: %Convert.type.843 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.04d: type = facet_access_type %Self.65a [symbolic] +// CHECK:STDOUT: %Convert.assoc_type.1e9: type = assoc_entity_type %As.type.eed, %Convert.type.843 [symbolic] +// CHECK:STDOUT: %assoc0.4ac002.1: %Convert.assoc_type.1e9 = assoc_entity element0, imports.%import_ref.4e8b20.1 [symbolic] +// CHECK:STDOUT: %As.type.a6d: type = facet_type <@As, @As(%i32.builtin)> [template] +// CHECK:STDOUT: %Convert.type.378: type = fn_type @Convert.1, @As(%i32.builtin) [template] +// CHECK:STDOUT: %Convert.e51: %Convert.type.378 = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.b93: type = assoc_entity_type %As.type.a6d, %Convert.type.378 [template] +// CHECK:STDOUT: %assoc0.9da: %Convert.assoc_type.b93 = assoc_entity element0, imports.%import_ref.4e8b20.1 [template] +// CHECK:STDOUT: %assoc0.4ac002.2: %Convert.assoc_type.1e9 = assoc_entity element0, imports.%import_ref.4e8b20.2 [symbolic] // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [template] -// CHECK:STDOUT: %Self.eea: %Add.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.d33: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self.400: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.51b: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] -// CHECK:STDOUT: %Convert.type.608: type = fn_type @Convert.2, @ImplicitAs(%T) [symbolic] -// CHECK:STDOUT: %Convert.de6: %Convert.type.608 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.951: type = facet_access_type %Self.400 [symbolic] -// CHECK:STDOUT: %Convert.assoc_type.407: type = assoc_entity_type %ImplicitAs.type.d33, %Convert.type.608 [symbolic] -// CHECK:STDOUT: %assoc0.317cac.1: %Convert.assoc_type.407 = assoc_entity element0, imports.%import_ref.dbaf9d.1 [symbolic] -// CHECK:STDOUT: %Convert.type.2a0: type = fn_type @Convert.2, @ImplicitAs(%i32.builtin) [template] -// CHECK:STDOUT: %Convert.756: %Convert.type.2a0 = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.f84: type = assoc_entity_type %ImplicitAs.type.51b, %Convert.type.2a0 [template] -// CHECK:STDOUT: %assoc0.695: %Convert.assoc_type.f84 = assoc_entity element0, imports.%import_ref.dbaf9d.2 [template] -// CHECK:STDOUT: %ImplicitAs.type.38a: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [template] -// CHECK:STDOUT: %Convert.type.a9b: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.6c0: %Convert.type.a9b = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.bc8: type = assoc_entity_type %ImplicitAs.type.38a, %Convert.type.a9b [template] -// CHECK:STDOUT: %assoc0.122: %Convert.assoc_type.bc8 = assoc_entity element0, imports.%import_ref.dbaf9d.3 [template] -// CHECK:STDOUT: %impl_witness.ffd: = impl_witness (imports.%import_ref.b92) [template] -// CHECK:STDOUT: %Convert.type.c68: type = fn_type @Convert.3 [template] -// CHECK:STDOUT: %Convert.fef: %Convert.type.c68 = struct_value () [template] +// CHECK:STDOUT: %Self.a99: %Add.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.d62: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self.519: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.61e: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] +// CHECK:STDOUT: %Convert.type.275: type = fn_type @Convert.2, @ImplicitAs(%T) [symbolic] +// CHECK:STDOUT: %Convert.42e: %Convert.type.275 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.40a: type = facet_access_type %Self.519 [symbolic] +// CHECK:STDOUT: %Convert.assoc_type.c0e: type = assoc_entity_type %ImplicitAs.type.d62, %Convert.type.275 [symbolic] +// CHECK:STDOUT: %assoc0.5048c6.1: %Convert.assoc_type.c0e = assoc_entity element0, imports.%import_ref.207961.1 [symbolic] +// CHECK:STDOUT: %Convert.type.059: type = fn_type @Convert.2, @ImplicitAs(%i32.builtin) [template] +// CHECK:STDOUT: %Convert.4d7: %Convert.type.059 = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.40f: type = assoc_entity_type %ImplicitAs.type.61e, %Convert.type.059 [template] +// CHECK:STDOUT: %assoc0.44d: %Convert.assoc_type.40f = assoc_entity element0, imports.%import_ref.207961.2 [template] +// CHECK:STDOUT: %ImplicitAs.type.2fd: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [template] +// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [template] +// CHECK:STDOUT: %Convert.0e2: %Convert.type.71e = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.94e: type = assoc_entity_type %ImplicitAs.type.2fd, %Convert.type.71e [template] +// CHECK:STDOUT: %assoc0.3db: %Convert.assoc_type.94e = assoc_entity element0, imports.%import_ref.207961.3 [template] +// CHECK:STDOUT: %impl_witness.d9b: = impl_witness (imports.%import_ref.73a) [template] +// CHECK:STDOUT: %Convert.type.953: type = fn_type @Convert.3 [template] +// CHECK:STDOUT: %Convert.5bc: %Convert.type.953 = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Op.type.88c: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %Self.as_type.6ff: type = facet_access_type %Self.eea [symbolic] -// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.88c [template] -// CHECK:STDOUT: %assoc0.cee: %Op.assoc_type = assoc_entity element0, imports.%import_ref.3bf [template] -// CHECK:STDOUT: %impl_witness.724: = impl_witness (imports.%import_ref.140) [template] -// CHECK:STDOUT: %Op.type.545: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.0aa: %Op.type.545 = struct_value () [template] +// CHECK:STDOUT: %Op.type.545: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Self.as_type.da9: type = facet_access_type %Self.a99 [symbolic] +// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.545 [template] +// CHECK:STDOUT: %assoc0.8e5: %Op.assoc_type = assoc_entity element0, imports.%import_ref.047 [template] +// CHECK:STDOUT: %impl_witness.bd0: = impl_witness (imports.%import_ref.db4) [template] +// CHECK:STDOUT: %Op.type.240: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.0e2: %Op.type.240 = struct_value () [template] // CHECK:STDOUT: %int_3.a0f: %i32.builtin = int_value 3 [template] -// CHECK:STDOUT: %assoc0.317cac.2: %Convert.assoc_type.407 = assoc_entity element0, imports.%import_ref.dbaf9d.4 [symbolic] -// CHECK:STDOUT: %impl_witness.588: = impl_witness (imports.%import_ref.055) [template] +// CHECK:STDOUT: %assoc0.5048c6.2: %Convert.assoc_type.c0e = assoc_entity element0, imports.%import_ref.207961.4 [symbolic] +// CHECK:STDOUT: %impl_witness.8f3: = impl_witness (imports.%import_ref.4f9) [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32.builtin [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.d53: = bound_method %int_3.1ba, %Convert.fef [template] -// CHECK:STDOUT: %Convert.bound.026: = bound_method %int_4.0c1, %Convert.fef [template] +// CHECK:STDOUT: %Convert.bound.94d: = bound_method %int_3.1ba, %Convert.5bc [template] +// CHECK:STDOUT: %Convert.bound.8fc: = bound_method %int_4.0c1, %Convert.5bc [template] // CHECK:STDOUT: %int_4.4f1: %i32.builtin = int_value 4 [template] -// CHECK:STDOUT: %Op.bound.970: = bound_method %int_3.a0f, %Op.0aa [template] +// CHECK:STDOUT: %Op.bound.423: = bound_method %int_3.a0f, %Op.0e2 [template] // CHECK:STDOUT: %int_7: %i32.builtin = int_value 7 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, %i32.builtin) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %impl_witness.25b: = impl_witness (imports.%import_ref.02a) [template] -// CHECK:STDOUT: %Convert.type.c8d: type = fn_type @Convert.5 [template] -// CHECK:STDOUT: %Convert.718: %Convert.type.c8d = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.227: = bound_method %int_3.1ba, %Convert.718 [template] -// CHECK:STDOUT: %Convert.bound.503: = bound_method %int_4.0c1, %Convert.718 [template] +// CHECK:STDOUT: %impl_witness.39c: = impl_witness (imports.%import_ref.f35) [template] +// CHECK:STDOUT: %Convert.type.49f: type = fn_type @Convert.5 [template] +// CHECK:STDOUT: %Convert.cb5: %Convert.type.49f = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.b6b: = bound_method %int_3.1ba, %Convert.cb5 [template] +// CHECK:STDOUT: %Convert.bound.626: = bound_method %int_4.0c1, %Convert.cb5 [template] // CHECK:STDOUT: %array: %array_type = tuple_value (%int_3.a0f, %int_4.4f1, %int_7) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.71a -// CHECK:STDOUT: .As = %import_ref.2f7 -// CHECK:STDOUT: .Add = %import_ref.4b5 -// CHECK:STDOUT: .ImplicitAs = %import_ref.7f1 +// CHECK:STDOUT: .Int = %import_ref.3b9 +// CHECK:STDOUT: .As = %import_ref.16b +// CHECK:STDOUT: .Add = %import_ref.fe6 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.7a0 = import_ref Core//default, inst85 [no loc], unloaded -// CHECK:STDOUT: %import_ref.001: @As.%Convert.assoc_type (%Convert.assoc_type.e0d) = import_ref Core//default, loc12_32, loaded [symbolic = @As.%assoc0 (constants.%assoc0.cb697b.2)] -// CHECK:STDOUT: %import_ref.846 = import_ref Core//default, Convert, unloaded -// CHECK:STDOUT: %import_ref.9c35ee.1 = import_ref Core//default, loc12_32, unloaded -// CHECK:STDOUT: %import_ref.e3f: = import_ref Core//default, loc19_17, loaded [template = constants.%impl_witness.724] -// CHECK:STDOUT: %import_ref.72a = import_ref Core//default, inst39 [no loc], unloaded -// CHECK:STDOUT: %import_ref.4d2: %Op.assoc_type = import_ref Core//default, loc8_41, loaded [template = constants.%assoc0.cee] -// CHECK:STDOUT: %import_ref.b75 = import_ref Core//default, Op, unloaded +// CHECK:STDOUT: %import_ref.a7c = import_ref Core//default, inst85 [no loc], unloaded +// CHECK:STDOUT: %import_ref.638: @As.%Convert.assoc_type (%Convert.assoc_type.1e9) = import_ref Core//default, loc12_32, loaded [symbolic = @As.%assoc0 (constants.%assoc0.4ac002.2)] +// CHECK:STDOUT: %import_ref.313 = import_ref Core//default, Convert, unloaded +// CHECK:STDOUT: %import_ref.4e8b20.1 = import_ref Core//default, loc12_32, unloaded +// CHECK:STDOUT: %import_ref.595: = import_ref Core//default, loc19_17, loaded [template = constants.%impl_witness.bd0] +// CHECK:STDOUT: %import_ref.07c = import_ref Core//default, inst39 [no loc], unloaded +// CHECK:STDOUT: %import_ref.a6b: %Op.assoc_type = import_ref Core//default, loc8_41, loaded [template = constants.%assoc0.8e5] +// CHECK:STDOUT: %import_ref.044 = import_ref Core//default, Op, unloaded // CHECK:STDOUT: %import_ref.c8c7cd.1: type = import_ref Core//default, loc19_6, loaded [template = constants.%i32.builtin] -// CHECK:STDOUT: %import_ref.d37: type = import_ref Core//default, loc19_13, loaded [template = constants.%Add.type] -// CHECK:STDOUT: %import_ref.b30: = import_ref Core//default, loc23_30, loaded [template = constants.%impl_witness.ffd] -// CHECK:STDOUT: %import_ref.afb013.1: type = import_ref Core//default, loc23_17, loaded [template = Core.IntLiteral] -// CHECK:STDOUT: %import_ref.d09: type = import_ref Core//default, loc23_28, loaded [template = constants.%As.type.878] -// CHECK:STDOUT: %import_ref.4ae: = import_ref Core//default, loc27_38, loaded [template = constants.%impl_witness.25b] -// CHECK:STDOUT: %import_ref.01e = import_ref Core//default, inst128 [no loc], unloaded -// CHECK:STDOUT: %import_ref.86d: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.407) = import_ref Core//default, loc16_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.317cac.2)] -// CHECK:STDOUT: %import_ref.038 = import_ref Core//default, Convert, unloaded -// CHECK:STDOUT: %import_ref.afb013.2: type = import_ref Core//default, loc27_17, loaded [template = Core.IntLiteral] -// CHECK:STDOUT: %import_ref.d93: type = import_ref Core//default, loc27_36, loaded [template = constants.%ImplicitAs.type.51b] -// CHECK:STDOUT: %import_ref.dbaf9d.1 = import_ref Core//default, loc16_32, unloaded -// CHECK:STDOUT: %import_ref.a1e: = import_ref Core//default, loc31_38, loaded [template = constants.%impl_witness.588] +// CHECK:STDOUT: %import_ref.bf0: type = import_ref Core//default, loc19_13, loaded [template = constants.%Add.type] +// CHECK:STDOUT: %import_ref.8aa: = import_ref Core//default, loc23_30, loaded [template = constants.%impl_witness.d9b] +// CHECK:STDOUT: %import_ref.8721d7.1: type = import_ref Core//default, loc23_17, loaded [template = Core.IntLiteral] +// CHECK:STDOUT: %import_ref.1e5: type = import_ref Core//default, loc23_28, loaded [template = constants.%As.type.a6d] +// CHECK:STDOUT: %import_ref.de9: = import_ref Core//default, loc27_38, loaded [template = constants.%impl_witness.39c] +// CHECK:STDOUT: %import_ref.ff5 = import_ref Core//default, inst128 [no loc], unloaded +// CHECK:STDOUT: %import_ref.589: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.c0e) = import_ref Core//default, loc16_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.5048c6.2)] +// CHECK:STDOUT: %import_ref.e69 = import_ref Core//default, Convert, unloaded +// CHECK:STDOUT: %import_ref.8721d7.2: type = import_ref Core//default, loc27_17, loaded [template = Core.IntLiteral] +// CHECK:STDOUT: %import_ref.4d9: type = import_ref Core//default, loc27_36, loaded [template = constants.%ImplicitAs.type.61e] +// CHECK:STDOUT: %import_ref.207961.1 = import_ref Core//default, loc16_32, unloaded +// CHECK:STDOUT: %import_ref.3b6: = import_ref Core//default, loc31_38, loaded [template = constants.%impl_witness.8f3] // CHECK:STDOUT: %import_ref.c8c7cd.2: type = import_ref Core//default, loc31_6, loaded [template = constants.%i32.builtin] -// CHECK:STDOUT: %import_ref.4e3: type = import_ref Core//default, loc31_36, loaded [template = constants.%ImplicitAs.type.38a] +// CHECK:STDOUT: %import_ref.efb: type = import_ref Core//default, loc31_36, loaded [template = constants.%ImplicitAs.type.2fd] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -689,26 +689,26 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.3d3)] -// CHECK:STDOUT: %Self: %As.type.3d3 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.24c)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @As(%T) [symbolic = %Convert.type (constants.%Convert.type.1e6)] -// CHECK:STDOUT: %Convert: @As.%Convert.type (%Convert.type.1e6) = struct_value () [symbolic = %Convert (constants.%Convert.4bc)] -// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @As.%As.type (%As.type.3d3), @As.%Convert.type (%Convert.type.1e6) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.e0d)] -// CHECK:STDOUT: %assoc0: @As.%Convert.assoc_type (%Convert.assoc_type.e0d) = assoc_entity element0, imports.%import_ref.9c35ee.1 [symbolic = %assoc0 (constants.%assoc0.cb697b.1)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.eed)] +// CHECK:STDOUT: %Self: %As.type.eed = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.65a)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @As(%T) [symbolic = %Convert.type (constants.%Convert.type.843)] +// CHECK:STDOUT: %Convert: @As.%Convert.type (%Convert.type.843) = struct_value () [symbolic = %Convert (constants.%Convert.95f)] +// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @As.%As.type (%As.type.eed), @As.%Convert.type (%Convert.type.843) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.1e9)] +// CHECK:STDOUT: %assoc0: @As.%Convert.assoc_type (%Convert.assoc_type.1e9) = assoc_entity element0, imports.%import_ref.4e8b20.1 [symbolic = %assoc0 (constants.%assoc0.4ac002.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.7a0 -// CHECK:STDOUT: .Convert = imports.%import_ref.001 -// CHECK:STDOUT: witness = (imports.%import_ref.846) +// CHECK:STDOUT: .Self = imports.%import_ref.a7c +// CHECK:STDOUT: .Convert = imports.%import_ref.638 +// CHECK:STDOUT: witness = (imports.%import_ref.313) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Add [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.72a -// CHECK:STDOUT: .Op = imports.%import_ref.4d2 -// CHECK:STDOUT: witness = (imports.%import_ref.b75) +// CHECK:STDOUT: .Self = imports.%import_ref.07c +// CHECK:STDOUT: .Op = imports.%import_ref.a6b +// CHECK:STDOUT: witness = (imports.%import_ref.044) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @ImplicitAs(constants.%T: type) [from "core.carbon"] { @@ -716,68 +716,68 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d33)] -// CHECK:STDOUT: %Self: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.400)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.2, @ImplicitAs(%T) [symbolic = %Convert.type (constants.%Convert.type.608)] -// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.608) = struct_value () [symbolic = %Convert (constants.%Convert.de6)] -// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d33), @ImplicitAs.%Convert.type (%Convert.type.608) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.407)] -// CHECK:STDOUT: %assoc0: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.407) = assoc_entity element0, imports.%import_ref.dbaf9d.1 [symbolic = %assoc0 (constants.%assoc0.317cac.1)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d62)] +// CHECK:STDOUT: %Self: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.519)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.2, @ImplicitAs(%T) [symbolic = %Convert.type (constants.%Convert.type.275)] +// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.275) = struct_value () [symbolic = %Convert (constants.%Convert.42e)] +// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62), @ImplicitAs.%Convert.type (%Convert.type.275) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.c0e)] +// CHECK:STDOUT: %assoc0: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.c0e) = assoc_entity element0, imports.%import_ref.207961.1 [symbolic = %assoc0 (constants.%assoc0.5048c6.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.01e -// CHECK:STDOUT: .Convert = imports.%import_ref.86d -// CHECK:STDOUT: witness = (imports.%import_ref.038) +// CHECK:STDOUT: .Self = imports.%import_ref.ff5 +// CHECK:STDOUT: .Convert = imports.%import_ref.589 +// CHECK:STDOUT: witness = (imports.%import_ref.e69) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.1: imports.%import_ref.c8c7cd.1 as imports.%import_ref.d37 [from "core.carbon"] { +// CHECK:STDOUT: impl @impl.1: imports.%import_ref.c8c7cd.1 as imports.%import_ref.bf0 [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.e3f +// CHECK:STDOUT: witness = imports.%import_ref.595 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.2: imports.%import_ref.afb013.1 as imports.%import_ref.d09 [from "core.carbon"] { +// CHECK:STDOUT: impl @impl.2: imports.%import_ref.8721d7.1 as imports.%import_ref.1e5 [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.b30 +// CHECK:STDOUT: witness = imports.%import_ref.8aa // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.3: imports.%import_ref.afb013.2 as imports.%import_ref.d93 [from "core.carbon"] { +// CHECK:STDOUT: impl @impl.3: imports.%import_ref.8721d7.2 as imports.%import_ref.4d9 [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.4ae +// CHECK:STDOUT: witness = imports.%import_ref.de9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.4: imports.%import_ref.c8c7cd.2 as imports.%import_ref.4e3 [from "core.carbon"] { +// CHECK:STDOUT: impl @impl.4: imports.%import_ref.c8c7cd.2 as imports.%import_ref.efb [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.a1e +// CHECK:STDOUT: witness = imports.%import_ref.3b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%N.param_patt: Core.IntLiteral) -> type = "int.make_type_signed" [from "core.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.1(constants.%T: type, constants.%Self.24c: %As.type.3d3) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @Convert.1(constants.%T: type, constants.%Self.65a: %As.type.eed) [from "core.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.3d3)] -// CHECK:STDOUT: %Self: %As.type.3d3 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.24c)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.414)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.eed)] +// CHECK:STDOUT: %Self: %As.type.eed = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.65a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.04d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @Convert.1.%Self.as_type (%Self.as_type.414)]() -> @Convert.1.%T (%T); +// CHECK:STDOUT: fn[%self.param_patt: @Convert.1.%Self.as_type (%Self.as_type.04d)]() -> @Convert.1.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.2(constants.%T: type, constants.%Self.400: %ImplicitAs.type.d33) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @Convert.2(constants.%T: type, constants.%Self.519: %ImplicitAs.type.d62) [from "core.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d33)] -// CHECK:STDOUT: %Self: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.400)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.951)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d62)] +// CHECK:STDOUT: %Self: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.519)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.40a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @Convert.2.%Self.as_type (%Self.as_type.951)]() -> @Convert.2.%T (%T); +// CHECK:STDOUT: fn[%self.param_patt: @Convert.2.%Self.as_type (%Self.as_type.40a)]() -> @Convert.2.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.3[%self.param_patt: Core.IntLiteral]() -> %i32.builtin = "int.convert_checked" [from "core.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op.1(constants.%Self.eea: %Add.type) [from "core.carbon"] { -// CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.eea)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.6ff)] +// CHECK:STDOUT: generic fn @Op.1(constants.%Self.a99: %Add.type) [from "core.carbon"] { +// CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.a99)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.da9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @Op.1.%Self.as_type (%Self.as_type.6ff)](%other.param_patt: @Op.1.%Self.as_type (%Self.as_type.6ff)) -> @Op.1.%Self.as_type (%Self.as_type.6ff); +// CHECK:STDOUT: fn[%self.param_patt: @Op.1.%Self.as_type (%Self.as_type.da9)](%other.param_patt: @Op.1.%Self.as_type (%Self.as_type.da9)) -> @Op.1.%Self.as_type (%Self.as_type.da9); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.2[%self.param_patt: %i32.builtin](%other.param_patt: %i32.builtin) -> %i32.builtin = "int.sadd" [from "core.carbon"]; @@ -795,8 +795,8 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int.make_type_signed.loc4_56: init type = call constants.%Int(%int_32.loc4_56) [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_56.1: type = value_of_initializer %int.make_type_signed.loc4_56 [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_56.2: type = converted %int.make_type_signed.loc4_56, %.loc4_56.1 [template = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_53: %Convert.type.1d5 = impl_witness_access constants.%impl_witness.ffd, element0 [template = constants.%Convert.fef] -// CHECK:STDOUT: %Convert.bound.loc4_53: = bound_method %int_3.loc4_51, %impl.elem0.loc4_53 [template = constants.%Convert.bound.d53] +// CHECK:STDOUT: %impl.elem0.loc4_53: %Convert.type.378 = impl_witness_access constants.%impl_witness.d9b, element0 [template = constants.%Convert.5bc] +// CHECK:STDOUT: %Convert.bound.loc4_53: = bound_method %int_3.loc4_51, %impl.elem0.loc4_53 [template = constants.%Convert.bound.94d] // CHECK:STDOUT: %int.convert_checked.loc4_53: init %i32.builtin = call %Convert.bound.loc4_53(%int_3.loc4_51) [template = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_53.1: %i32.builtin = value_of_initializer %int.convert_checked.loc4_53 [template = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_53.2: %i32.builtin = converted %int_3.loc4_51, %.loc4_53.1 [template = constants.%int_3.a0f] @@ -805,24 +805,24 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int.make_type_signed.loc4_69: init type = call constants.%Int(%int_32.loc4_69) [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_69.1: type = value_of_initializer %int.make_type_signed.loc4_69 [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_69.2: type = converted %int.make_type_signed.loc4_69, %.loc4_69.1 [template = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_66: %Convert.type.1d5 = impl_witness_access constants.%impl_witness.ffd, element0 [template = constants.%Convert.fef] -// CHECK:STDOUT: %Convert.bound.loc4_66: = bound_method %int_4.loc4_64, %impl.elem0.loc4_66 [template = constants.%Convert.bound.026] +// CHECK:STDOUT: %impl.elem0.loc4_66: %Convert.type.378 = impl_witness_access constants.%impl_witness.d9b, element0 [template = constants.%Convert.5bc] +// CHECK:STDOUT: %Convert.bound.loc4_66: = bound_method %int_4.loc4_64, %impl.elem0.loc4_66 [template = constants.%Convert.bound.8fc] // CHECK:STDOUT: %int.convert_checked.loc4_66: init %i32.builtin = call %Convert.bound.loc4_66(%int_4.loc4_64) [template = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_66.1: %i32.builtin = value_of_initializer %int.convert_checked.loc4_66 [template = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_66.2: %i32.builtin = converted %int_4.loc4_64, %.loc4_66.1 [template = constants.%int_4.4f1] -// CHECK:STDOUT: %impl.elem0.loc4_61: %Op.type.88c = impl_witness_access constants.%impl_witness.724, element0 [template = constants.%Op.0aa] -// CHECK:STDOUT: %Op.bound: = bound_method %.loc4_53.2, %impl.elem0.loc4_61 [template = constants.%Op.bound.970] +// CHECK:STDOUT: %impl.elem0.loc4_61: %Op.type.545 = impl_witness_access constants.%impl_witness.bd0, element0 [template = constants.%Op.0e2] +// CHECK:STDOUT: %Op.bound: = bound_method %.loc4_53.2, %impl.elem0.loc4_61 [template = constants.%Op.bound.423] // CHECK:STDOUT: %int.sadd: init %i32.builtin = call %Op.bound(%.loc4_53.2, %.loc4_66.2) [template = constants.%int_7] // CHECK:STDOUT: %.loc4_73.1: %tuple.type = tuple_literal (%int_3.loc4_44, %int_4.loc4_47, %int.sadd) -// CHECK:STDOUT: %impl.elem0.loc4_73.1: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc4_73.1: = bound_method %int_3.loc4_44, %impl.elem0.loc4_73.1 [template = constants.%Convert.bound.227] +// CHECK:STDOUT: %impl.elem0.loc4_73.1: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc4_73.1: = bound_method %int_3.loc4_44, %impl.elem0.loc4_73.1 [template = constants.%Convert.bound.b6b] // CHECK:STDOUT: %int.convert_checked.loc4_73.1: init %i32.builtin = call %Convert.bound.loc4_73.1(%int_3.loc4_44) [template = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_73.2: init %i32.builtin = converted %int_3.loc4_44, %int.convert_checked.loc4_73.1 [template = constants.%int_3.a0f] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc4_73.3: ref %i32.builtin = array_index file.%arr.var, %int_0 // CHECK:STDOUT: %.loc4_73.4: init %i32.builtin = initialize_from %.loc4_73.2 to %.loc4_73.3 [template = constants.%int_3.a0f] -// CHECK:STDOUT: %impl.elem0.loc4_73.2: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc4_73.2: = bound_method %int_4.loc4_47, %impl.elem0.loc4_73.2 [template = constants.%Convert.bound.503] +// CHECK:STDOUT: %impl.elem0.loc4_73.2: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc4_73.2: = bound_method %int_4.loc4_47, %impl.elem0.loc4_73.2 [template = constants.%Convert.bound.626] // CHECK:STDOUT: %int.convert_checked.loc4_73.2: init %i32.builtin = call %Convert.bound.loc4_73.2(%int_4.loc4_47) [template = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_73.5: init %i32.builtin = converted %int_4.loc4_47, %int.convert_checked.loc4_73.2 [template = constants.%int_4.4f1] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] @@ -846,11 +846,11 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: specific @As(@Convert.1.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%T, constants.%Self.24c) { +// CHECK:STDOUT: specific @Convert.1(constants.%T, constants.%Self.65a) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %As.type => constants.%As.type.3d3 -// CHECK:STDOUT: %Self => constants.%Self.24c -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.414 +// CHECK:STDOUT: %As.type => constants.%As.type.eed +// CHECK:STDOUT: %Self => constants.%Self.65a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.04d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As(constants.%i32.builtin) { @@ -858,12 +858,12 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type => constants.%As.type.878 -// CHECK:STDOUT: %Self => constants.%Self.24c -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.1d5 -// CHECK:STDOUT: %Convert => constants.%Convert.3b8 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.bb4 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c56 +// CHECK:STDOUT: %As.type => constants.%As.type.a6d +// CHECK:STDOUT: %Self => constants.%Self.65a +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.378 +// CHECK:STDOUT: %Convert => constants.%Convert.e51 +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.b93 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.9da // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%T) { @@ -876,23 +876,23 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.51b -// CHECK:STDOUT: %Self => constants.%Self.400 -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.2a0 -// CHECK:STDOUT: %Convert => constants.%Convert.756 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.f84 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.695 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.61e +// CHECK:STDOUT: %Self => constants.%Self.519 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.059 +// CHECK:STDOUT: %Convert => constants.%Convert.4d7 +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.40f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.44d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(@Convert.2.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.2(constants.%T, constants.%Self.400) { +// CHECK:STDOUT: specific @Convert.2(constants.%T, constants.%Self.519) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.d33 -// CHECK:STDOUT: %Self => constants.%Self.400 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.951 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.d62 +// CHECK:STDOUT: %Self => constants.%Self.519 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.40a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(Core.IntLiteral) { @@ -900,16 +900,16 @@ var arr: [i32; (1 as i32) + (2 as i32)] = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.patt => Core.IntLiteral // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.38a -// CHECK:STDOUT: %Self => constants.%Self.400 -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.a9b -// CHECK:STDOUT: %Convert => constants.%Convert.6c0 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.bc8 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.122 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.2fd +// CHECK:STDOUT: %Self => constants.%Self.519 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.71e +// CHECK:STDOUT: %Convert => constants.%Convert.0e2 +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.94e +// CHECK:STDOUT: %assoc0 => constants.%assoc0.3db // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Op.1(constants.%Self.eea) { -// CHECK:STDOUT: %Self => constants.%Self.eea -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.6ff +// CHECK:STDOUT: specific @Op.1(constants.%Self.a99) { +// CHECK:STDOUT: %Self => constants.%Self.a99 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.da9 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/builtin/no_prelude/import.carbon b/toolchain/check/testdata/function/builtin/no_prelude/import.carbon index 7669eecc36d2..b36b49d76e2f 100644 --- a/toolchain/check/testdata/function/builtin/no_prelude/import.carbon +++ b/toolchain/check/testdata/function/builtin/no_prelude/import.carbon @@ -182,13 +182,13 @@ var arr: [i32; Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2)))] = // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.71a -// CHECK:STDOUT: .AsIntLiteral = %import_ref.630 -// CHECK:STDOUT: .TestAdd = %import_ref.9a8 -// CHECK:STDOUT: .AsI32 = %import_ref.208 +// CHECK:STDOUT: .Int = %import_ref.3b9 +// CHECK:STDOUT: .AsIntLiteral = %import_ref.d91 +// CHECK:STDOUT: .TestAdd = %import_ref.a93 +// CHECK:STDOUT: .AsI32 = %import_ref.614 // CHECK:STDOUT: import Core//core // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.208: %AsI32.type = import_ref Core//core, AsI32, loaded [template = constants.%AsI32] +// CHECK:STDOUT: %import_ref.614: %AsI32.type = import_ref Core//core, AsI32, loaded [template = constants.%AsI32] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -212,15 +212,15 @@ var arr: [i32; Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2)))] = // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Core.ref.loc4_82: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %AsI32.ref.loc4_86: %AsI32.type = name_ref AsI32, imports.%import_ref.208 [template = constants.%AsI32] +// CHECK:STDOUT: %AsI32.ref.loc4_86: %AsI32.type = name_ref AsI32, imports.%import_ref.614 [template = constants.%AsI32] // CHECK:STDOUT: %int_1.loc4_93: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int.convert_checked.loc4_94: init %i32.builtin = call %AsI32.ref.loc4_86(%int_1.loc4_93) [template = constants.%int_1.f38] // CHECK:STDOUT: %Core.ref.loc4_97: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %AsI32.ref.loc4_101: %AsI32.type = name_ref AsI32, imports.%import_ref.208 [template = constants.%AsI32] +// CHECK:STDOUT: %AsI32.ref.loc4_101: %AsI32.type = name_ref AsI32, imports.%import_ref.614 [template = constants.%AsI32] // CHECK:STDOUT: %int_2.loc4_108: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int.convert_checked.loc4_109: init %i32.builtin = call %AsI32.ref.loc4_101(%int_2.loc4_108) [template = constants.%int_2.5a1] // CHECK:STDOUT: %Core.ref.loc4_112: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %AsI32.ref.loc4_116: %AsI32.type = name_ref AsI32, imports.%import_ref.208 [template = constants.%AsI32] +// CHECK:STDOUT: %AsI32.ref.loc4_116: %AsI32.type = name_ref AsI32, imports.%import_ref.614 [template = constants.%AsI32] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %int.convert_checked.loc4_124: init %i32.builtin = call %AsI32.ref.loc4_116(%int_3) [template = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_125.1: %tuple.type = tuple_literal (%int.convert_checked.loc4_94, %int.convert_checked.loc4_109, %int.convert_checked.loc4_124) diff --git a/toolchain/check/testdata/function/call/fail_not_callable.carbon b/toolchain/check/testdata/function/call/fail_not_callable.carbon index faf738fe9207..df79412f46cb 100644 --- a/toolchain/check/testdata/function/call/fail_not_callable.carbon +++ b/toolchain/check/testdata/function/call/fail_not_callable.carbon @@ -27,7 +27,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // 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 771414cc33ff..ed88ec5c01f1 100644 --- a/toolchain/check/testdata/function/call/fail_param_count.carbon +++ b/toolchain/check/testdata/function/call/fail_param_count.carbon @@ -83,7 +83,7 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/fail_param_type.carbon b/toolchain/check/testdata/function/call/fail_param_type.carbon index a45633e5c056..6eb2c15fd993 100644 --- a/toolchain/check/testdata/function/call/fail_param_type.carbon +++ b/toolchain/check/testdata/function/call/fail_param_type.carbon @@ -38,8 +38,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon index 0b9f212d3e2f..61bc2bde3e25 100644 --- a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon @@ -37,9 +37,9 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20bd -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index 7c6c38877245..defaa37ae408 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -26,19 +26,19 @@ fn Main() { // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -83,12 +83,12 @@ fn Main() { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %Echo.ref: %Echo.type = name_ref Echo, file.%Echo.decl [template = constants.%Echo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_21.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16_21.2: %i32 = converted %int_1, %.loc16_21.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_21.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16_21.2: %i32 = converted %int_1, %.loc16_21.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %Echo.call: init %i32 = call %Echo.ref(%.loc16_21.2) // CHECK:STDOUT: assign %b.var, %Echo.call // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/function/call/more_param_ir.carbon b/toolchain/check/testdata/function/call/more_param_ir.carbon index 2b539c347ee6..086989209f7c 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -26,28 +26,28 @@ fn Main() { // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [template] // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_1.c60) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_1.5d2) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [template] -// CHECK:STDOUT: %Convert.bound.b1c: = bound_method %int_6.462, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b26: = specific_function %Convert.bound.b1c, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_6.b03: %i32 = int_value 6 [template] +// CHECK:STDOUT: %Convert.bound.ce9: = bound_method %int_6.462, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.631: = specific_function %Convert.bound.ce9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_6.e56: %i32 = int_value 6 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -89,30 +89,30 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.var: ref %tuple.type.0e4 = var x -// CHECK:STDOUT: %x: ref %tuple.type.0e4 = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %tuple.type.a1c = var x +// CHECK:STDOUT: %x: ref %tuple.type.a1c = bind_name x, %x.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_22.1: %tuple.type.985 = tuple_literal (%int_1) -// CHECK:STDOUT: %impl.elem0.loc14: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14: = bound_method %int_1, %impl.elem0.loc14 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc14: = specific_function %Convert.bound.loc14, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc14: init %i32 = call %Convert.specific_fn.loc14(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_22.2: init %i32 = converted %int_1, %int.convert_checked.loc14 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_22.3: init %tuple.type.0e4 = tuple_init (%.loc14_22.2) to %x.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc14_23: init %tuple.type.0e4 = converted %.loc14_22.1, %.loc14_22.3 [template = constants.%tuple] +// CHECK:STDOUT: %impl.elem0.loc14: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14: = bound_method %int_1, %impl.elem0.loc14 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc14: = specific_function %Convert.bound.loc14, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc14: init %i32 = call %Convert.specific_fn.loc14(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_22.2: init %i32 = converted %int_1, %int.convert_checked.loc14 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_22.3: init %tuple.type.a1c = tuple_init (%.loc14_22.2) to %x.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc14_23: init %tuple.type.a1c = converted %.loc14_22.1, %.loc14_22.3 [template = constants.%tuple] // CHECK:STDOUT: assign %x.var, %.loc14_23 // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [template = constants.%Foo] -// CHECK:STDOUT: %x.ref: ref %tuple.type.0e4 = name_ref x, %x +// CHECK:STDOUT: %x.ref: ref %tuple.type.a1c = name_ref x, %x // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %x.ref, element0 // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] // CHECK:STDOUT: %.loc16_8: %i32 = bind_value %tuple.elem0 -// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_6, %impl.elem0.loc16 [template = constants.%Convert.bound.b1c] -// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b26] -// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_6) [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc16_12.1: %i32 = value_of_initializer %int.convert_checked.loc16 [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc16_12.2: %i32 = converted %int_6, %.loc16_12.1 [template = constants.%int_6.b03] +// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_6, %impl.elem0.loc16 [template = constants.%Convert.bound.ce9] +// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.631] +// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_6) [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc16_12.1: %i32 = value_of_initializer %int.convert_checked.loc16 [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc16_12.2: %i32 = converted %int_6, %.loc16_12.1 [template = constants.%int_6.e56] // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc16_8, %.loc16_12.2) // 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 f82e31a531e4..01f31042de4d 100644 --- a/toolchain/check/testdata/function/call/params_one.carbon +++ b/toolchain/check/testdata/function/call/params_one.carbon @@ -25,19 +25,19 @@ fn Main() { // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -73,12 +73,12 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [template = constants.%Foo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1, %.loc14_7.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1, %.loc14_7.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc14_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 10866ef0354a..197157624412 100644 --- a/toolchain/check/testdata/function/call/params_one_comma.carbon +++ b/toolchain/check/testdata/function/call/params_one_comma.carbon @@ -26,19 +26,19 @@ fn Main() { // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -74,21 +74,21 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Foo.ref.loc14: %Foo.type = name_ref Foo, file.%Foo.decl [template = constants.%Foo] // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc14: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc14: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc14: = bound_method %int_1.loc14, %impl.elem0.loc14 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc14: = specific_function %Convert.bound.loc14, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc14: init %i32 = call %Convert.specific_fn.loc14(%int_1.loc14) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked.loc14 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1.loc14, %.loc14_7.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc14: init %i32 = call %Convert.specific_fn.loc14(%int_1.loc14) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked.loc14 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1.loc14, %.loc14_7.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %Foo.call.loc14: init %empty_tuple.type = call %Foo.ref.loc14(%.loc14_7.2) // CHECK:STDOUT: %Foo.ref.loc15: %Foo.type = name_ref Foo, file.%Foo.decl [template = constants.%Foo] // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_1.loc15, %impl.elem0.loc15 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_1.loc15) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_7.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_7.2: %i32 = converted %int_1.loc15, %.loc15_7.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_1.loc15) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_7.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_7.2: %i32 = converted %int_1.loc15, %.loc15_7.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %Foo.call.loc15: init %empty_tuple.type = call %Foo.ref.loc15(%.loc15_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 73fcbb5abaae..ded4c0bde565 100644 --- a/toolchain/check/testdata/function/call/params_two.carbon +++ b/toolchain/check/testdata/function/call/params_two.carbon @@ -26,22 +26,22 @@ fn Main() { // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -86,18 +86,18 @@ fn Main() { // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [template = constants.%Foo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc14_7: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_7: = bound_method %int_1, %impl.elem0.loc14_7 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc14_7: = specific_function %Convert.bound.loc14_7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc14_7: init %i32 = call %Convert.specific_fn.loc14_7(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked.loc14_7 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1, %.loc14_7.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc14_10: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_10: = bound_method %int_2, %impl.elem0.loc14_10 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc14_10: = specific_function %Convert.bound.loc14_10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc14_10: init %i32 = call %Convert.specific_fn.loc14_10(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_10.1: %i32 = value_of_initializer %int.convert_checked.loc14_10 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_10.2: %i32 = converted %int_2, %.loc14_10.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc14_7: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_7: = bound_method %int_1, %impl.elem0.loc14_7 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc14_7: = specific_function %Convert.bound.loc14_7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc14_7: init %i32 = call %Convert.specific_fn.loc14_7(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked.loc14_7 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1, %.loc14_7.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc14_10: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_10: = bound_method %int_2, %impl.elem0.loc14_10 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc14_10: = specific_function %Convert.bound.loc14_10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc14_10: init %i32 = call %Convert.specific_fn.loc14_10(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_10.1: %i32 = value_of_initializer %int.convert_checked.loc14_10 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_10.2: %i32 = converted %int_2, %.loc14_10.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc14_7.2, %.loc14_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 889b522baa2b..ac14c42e278d 100644 --- a/toolchain/check/testdata/function/call/params_two_comma.carbon +++ b/toolchain/check/testdata/function/call/params_two_comma.carbon @@ -27,22 +27,22 @@ fn Main() { // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -87,34 +87,34 @@ fn Main() { // CHECK:STDOUT: %Foo.ref.loc14: %Foo.type = name_ref Foo, file.%Foo.decl [template = constants.%Foo] // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc14: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc14_7: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_7: = bound_method %int_1.loc14, %impl.elem0.loc14_7 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc14_7: = specific_function %Convert.bound.loc14_7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc14_7: init %i32 = call %Convert.specific_fn.loc14_7(%int_1.loc14) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked.loc14_7 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1.loc14, %.loc14_7.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc14_10: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_10: = bound_method %int_2.loc14, %impl.elem0.loc14_10 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc14_10: = specific_function %Convert.bound.loc14_10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc14_10: init %i32 = call %Convert.specific_fn.loc14_10(%int_2.loc14) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_10.1: %i32 = value_of_initializer %int.convert_checked.loc14_10 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_10.2: %i32 = converted %int_2.loc14, %.loc14_10.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc14_7: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_7: = bound_method %int_1.loc14, %impl.elem0.loc14_7 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc14_7: = specific_function %Convert.bound.loc14_7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc14_7: init %i32 = call %Convert.specific_fn.loc14_7(%int_1.loc14) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked.loc14_7 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1.loc14, %.loc14_7.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc14_10: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_10: = bound_method %int_2.loc14, %impl.elem0.loc14_10 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc14_10: = specific_function %Convert.bound.loc14_10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc14_10: init %i32 = call %Convert.specific_fn.loc14_10(%int_2.loc14) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_10.1: %i32 = value_of_initializer %int.convert_checked.loc14_10 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_10.2: %i32 = converted %int_2.loc14, %.loc14_10.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %Foo.call.loc14: init %empty_tuple.type = call %Foo.ref.loc14(%.loc14_7.2, %.loc14_10.2) // CHECK:STDOUT: %Foo.ref.loc15: %Foo.type = name_ref Foo, file.%Foo.decl [template = constants.%Foo] // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc15: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc15_7: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15_7: = bound_method %int_1.loc15, %impl.elem0.loc15_7 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc15_7: = specific_function %Convert.bound.loc15_7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc15_7: init %i32 = call %Convert.specific_fn.loc15_7(%int_1.loc15) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_7.1: %i32 = value_of_initializer %int.convert_checked.loc15_7 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_7.2: %i32 = converted %int_1.loc15, %.loc15_7.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc15_10: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15_10: = bound_method %int_2.loc15, %impl.elem0.loc15_10 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc15_10: = specific_function %Convert.bound.loc15_10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc15_10: init %i32 = call %Convert.specific_fn.loc15_10(%int_2.loc15) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc15_10.1: %i32 = value_of_initializer %int.convert_checked.loc15_10 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc15_10.2: %i32 = converted %int_2.loc15, %.loc15_10.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc15_7: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15_7: = bound_method %int_1.loc15, %impl.elem0.loc15_7 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc15_7: = specific_function %Convert.bound.loc15_7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc15_7: init %i32 = call %Convert.specific_fn.loc15_7(%int_1.loc15) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_7.1: %i32 = value_of_initializer %int.convert_checked.loc15_7 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_7.2: %i32 = converted %int_1.loc15, %.loc15_7.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc15_10: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15_10: = bound_method %int_2.loc15, %impl.elem0.loc15_10 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc15_10: = specific_function %Convert.bound.loc15_10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc15_10: init %i32 = call %Convert.specific_fn.loc15_10(%int_2.loc15) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc15_10.1: %i32 = value_of_initializer %int.convert_checked.loc15_10 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc15_10.2: %i32 = converted %int_2.loc15, %.loc15_10.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %Foo.call.loc15: init %empty_tuple.type = call %Foo.ref.loc15(%.loc15_7.2, %.loc15_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 f1e753ae10cb..fcccbf2d3ee4 100644 --- a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon +++ b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon @@ -26,36 +26,36 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: --- prefer_unqualified_lookup.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.2ba: type = bind_symbolic_name F, 0 [symbolic] +// CHECK:STDOUT: %F.8b3: type = bind_symbolic_name F, 0 [symbolic] // CHECK:STDOUT: %F.patt: type = symbolic_binding_pattern F, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [template] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [template] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%F.2ba) [symbolic] -// CHECK:STDOUT: %Inner.ed2: type = class_type @Inner [template] -// CHECK:STDOUT: %Inner.2fe: type = class_type @Inner, @Inner(%F.2ba) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%F.8b3) [symbolic] +// CHECK:STDOUT: %Inner.b32: type = class_type @Inner [template] +// CHECK:STDOUT: %Inner.6e0: type = class_type @Inner, @Inner(%F.8b3) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %F.type: type = fn_type @F, @Inner(%F.2ba) [symbolic] -// CHECK:STDOUT: %F.ee3: %F.type = struct_value () [symbolic] -// CHECK:STDOUT: %G.type: type = fn_type @G, @Inner(%F.2ba) [symbolic] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Inner(%F.8b3) [symbolic] +// CHECK:STDOUT: %F.3fa: %F.type = struct_value () [symbolic] +// CHECK:STDOUT: %G.type: type = fn_type @G, @Inner(%F.8b3) [symbolic] // CHECK:STDOUT: %G: %G.type = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ee3, @F(%F.2ba) [symbolic] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.3fa, @F(%F.8b3) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -72,14 +72,14 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %F.param_patt: type = value_param_pattern %F.patt.loc5_13.1, runtime_param [symbolic = %F.patt.loc5_13.2 (constants.%F.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %F.param: type = value_param runtime_param -// CHECK:STDOUT: %F.loc5_13.1: type = bind_symbolic_name F, 0, %F.param [symbolic = %F.loc5_13.2 (constants.%F.2ba)] +// CHECK:STDOUT: %F.loc5_13.1: type = bind_symbolic_name F, 0, %F.param [symbolic = %F.loc5_13.2 (constants.%F.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [symbolic = constants.%G] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %F.param: type = value_param runtime_param -// CHECK:STDOUT: %F.loc13_10: type = bind_symbolic_name F, 0, %F.param [symbolic = constants.%F.2ba] +// CHECK:STDOUT: %F.loc13_10: type = bind_symbolic_name F, 0, %F.param [symbolic = constants.%F.8b3] // CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %return.param.loc13: ref %i32 = out_param runtime_param0 @@ -88,13 +88,13 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%F.loc5_13.1: type) { -// CHECK:STDOUT: %F.loc5_13.2: type = bind_symbolic_name F, 0 [symbolic = %F.loc5_13.2 (constants.%F.2ba)] +// CHECK:STDOUT: %F.loc5_13.2: type = bind_symbolic_name F, 0 [symbolic = %F.loc5_13.2 (constants.%F.8b3)] // CHECK:STDOUT: %F.patt.loc5_13.2: type = symbolic_binding_pattern F, 0 [symbolic = %F.patt.loc5_13.2 (constants.%F.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [template = constants.%Inner.ed2] {} {} +// CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [template = constants.%Inner.b32] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -106,14 +106,14 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Inner(@Class.%F.loc5_13.1: type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.loc8_19.1: type = bind_symbolic_name F, 0 [symbolic = %F.loc8_19.1 (constants.%F.2ba)] +// CHECK:STDOUT: %F.loc8_19.1: type = bind_symbolic_name F, 0 [symbolic = %F.loc8_19.1 (constants.%F.8b3)] // CHECK:STDOUT: %F.type: type = fn_type @F, @Inner(%F.loc8_19.1) [symbolic = %F.type (constants.%F.type)] -// CHECK:STDOUT: %F.loc8_19.2: @Inner.%F.type (%F.type) = struct_value () [symbolic = %F.loc8_19.2 (constants.%F.ee3)] +// CHECK:STDOUT: %F.loc8_19.2: @Inner.%F.type (%F.type) = struct_value () [symbolic = %F.loc8_19.2 (constants.%F.3fa)] // CHECK:STDOUT: %G.type: type = fn_type @G, @Inner(%F.loc8_19.1) [symbolic = %G.type (constants.%G.type)] // CHECK:STDOUT: %G: @Inner.%G.type (%G.type) = struct_value () [symbolic = %G (constants.%G)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %F.decl: @Inner.%F.type (%F.type) = fn_decl @F [symbolic = @Inner.%F.loc8_19.2 (constants.%F.ee3)] { +// CHECK:STDOUT: %F.decl: @Inner.%F.type (%F.type) = fn_decl @F [symbolic = @Inner.%F.loc8_19.2 (constants.%F.3fa)] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -134,7 +134,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.2fe +// CHECK:STDOUT: .Self = constants.%Inner.6e0 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type @@ -147,28 +147,28 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: fn() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc8_29.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc8_29.2: %i32 = converted %int_0, %.loc8_29.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc8_29.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc8_29.2: %i32 = converted %int_0, %.loc8_29.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc8_29.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(@Class.%F.loc5_13.1: type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.loc13_46.1: type = bind_symbolic_name F, 0 [symbolic = %F.loc13_46.1 (constants.%F.2ba)] +// CHECK:STDOUT: %F.loc13_46.1: type = bind_symbolic_name F, 0 [symbolic = %F.loc13_46.1 (constants.%F.8b3)] // CHECK:STDOUT: %F.type: type = fn_type @F, @Inner(%F.loc13_46.1) [symbolic = %F.type (constants.%F.type)] -// CHECK:STDOUT: %F.loc13_46.2: @G.%F.type (%F.type) = struct_value () [symbolic = %F.loc13_46.2 (constants.%F.ee3)] +// CHECK:STDOUT: %F.loc13_46.2: @G.%F.type (%F.type) = struct_value () [symbolic = %F.loc13_46.2 (constants.%F.3fa)] // CHECK:STDOUT: %F.specific_fn.loc13_46.2: = specific_function %F.loc13_46.2, @F(%F.loc13_46.1) [symbolic = %F.specific_fn.loc13_46.2 (constants.%F.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc13_46: @G.%F.type (%F.type) = specific_constant @Inner.%F.decl, @Inner(constants.%F.2ba) [symbolic = %F.loc13_46.2 (constants.%F.ee3)] -// CHECK:STDOUT: %F.ref: @G.%F.type (%F.type) = name_ref F, %.loc13_46 [symbolic = %F.loc13_46.2 (constants.%F.ee3)] -// CHECK:STDOUT: %F.specific_fn.loc13_46.1: = specific_function %F.ref, @F(constants.%F.2ba) [symbolic = %F.specific_fn.loc13_46.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %.loc13_46: @G.%F.type (%F.type) = specific_constant @Inner.%F.decl, @Inner(constants.%F.8b3) [symbolic = %F.loc13_46.2 (constants.%F.3fa)] +// CHECK:STDOUT: %F.ref: @G.%F.type (%F.type) = name_ref F, %.loc13_46 [symbolic = %F.loc13_46.2 (constants.%F.3fa)] +// CHECK:STDOUT: %F.specific_fn.loc13_46.1: = specific_function %F.ref, @F(constants.%F.8b3) [symbolic = %F.specific_fn.loc13_46.2 (constants.%F.specific_fn)] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn.loc13_46.1() // CHECK:STDOUT: %.loc13_49.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc13_49.2: %i32 = converted %F.call, %.loc13_49.1 @@ -176,27 +176,27 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%F.2ba) { -// CHECK:STDOUT: %F.loc5_13.2 => constants.%F.2ba -// CHECK:STDOUT: %F.patt.loc5_13.2 => constants.%F.2ba +// CHECK:STDOUT: specific @Class(constants.%F.8b3) { +// CHECK:STDOUT: %F.loc5_13.2 => constants.%F.8b3 +// CHECK:STDOUT: %F.patt.loc5_13.2 => constants.%F.8b3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%F.2ba) { +// CHECK:STDOUT: specific @Inner(constants.%F.8b3) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.loc8_19.1 => constants.%F.2ba +// CHECK:STDOUT: %F.loc8_19.1 => constants.%F.8b3 // CHECK:STDOUT: %F.type => constants.%F.type -// CHECK:STDOUT: %F.loc8_19.2 => constants.%F.ee3 +// CHECK:STDOUT: %F.loc8_19.2 => constants.%F.3fa // CHECK:STDOUT: %G.type => constants.%G.type // CHECK:STDOUT: %G => constants.%G // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%F.2ba) { +// CHECK:STDOUT: specific @F(constants.%F.8b3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%F.2ba) {} +// CHECK:STDOUT: specific @G(constants.%F.8b3) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(%F.loc8_19.1) {} // 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 abce7e39b3c1..b2c43edd3599 100644 --- a/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon +++ b/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon @@ -24,7 +24,7 @@ fn F(n: i32, a: [i32; n]*); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // 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 dcdf73608bc3..1b58c053becb 100644 --- a/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon +++ b/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon @@ -27,7 +27,7 @@ fn F(n: i32, n: i32); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/declaration/import.carbon b/toolchain/check/testdata/function/declaration/import.carbon index d0c6bcfff8e7..e547d25a2a51 100644 --- a/toolchain/check/testdata/function/declaration/import.carbon +++ b/toolchain/check/testdata/function/declaration/import.carbon @@ -265,7 +265,7 @@ import library "extern_api"; // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] @@ -277,7 +277,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -312,22 +312,22 @@ import library "extern_api"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [template = constants.%C] { -// CHECK:STDOUT: %c.patt: %tuple.type.0e4 = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %tuple.type.0e4 = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: %tuple.type.a1c = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %tuple.type.a1c = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %struct_type.c = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %struct_type.c = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc6_25: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_25: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template = constants.%struct_type.c] -// CHECK:STDOUT: %c.param: %tuple.type.0e4 = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [template = constants.%tuple.type.0e4] { +// CHECK:STDOUT: %c.param: %tuple.type.a1c = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [template = constants.%tuple.type.a1c] { // CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc6_14.2: %tuple.type.85c = tuple_literal (%i32.loc6_10) -// CHECK:STDOUT: %.loc6_14.3: type = converted %.loc6_14.2, constants.%tuple.type.0e4 [template = constants.%tuple.type.0e4] +// CHECK:STDOUT: %.loc6_14.3: type = converted %.loc6_14.2, constants.%tuple.type.a1c [template = constants.%tuple.type.a1c] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.0e4 = bind_name c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a1c = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param runtime_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -342,7 +342,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: fn @B(%b.param_patt: %i32) -> %i32; // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c; +// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D(); // CHECK:STDOUT: @@ -358,7 +358,7 @@ import library "extern_api"; // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] @@ -370,7 +370,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -405,22 +405,22 @@ import library "extern_api"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [template = constants.%C] { -// CHECK:STDOUT: %c.patt: %tuple.type.0e4 = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %tuple.type.0e4 = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: %tuple.type.a1c = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %tuple.type.a1c = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %struct_type.c = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %struct_type.c = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc6_60: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_60: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template = constants.%struct_type.c] -// CHECK:STDOUT: %c.param: %tuple.type.0e4 = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_49.1: type = splice_block %.loc6_49.3 [template = constants.%tuple.type.0e4] { +// CHECK:STDOUT: %c.param: %tuple.type.a1c = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_49.1: type = splice_block %.loc6_49.3 [template = constants.%tuple.type.a1c] { // CHECK:STDOUT: %int_32.loc6_45: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_45: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc6_49.2: %tuple.type.85c = tuple_literal (%i32.loc6_45) -// CHECK:STDOUT: %.loc6_49.3: type = converted %.loc6_49.2, constants.%tuple.type.0e4 [template = constants.%tuple.type.0e4] +// CHECK:STDOUT: %.loc6_49.3: type = converted %.loc6_49.2, constants.%tuple.type.a1c [template = constants.%tuple.type.a1c] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.0e4 = bind_name c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a1c = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param runtime_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -435,7 +435,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @B(%b.param_patt: %i32) -> %i32; // CHECK:STDOUT: -// CHECK:STDOUT: extern fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c; +// CHECK:STDOUT: extern fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D(); // CHECK:STDOUT: @@ -452,19 +452,19 @@ import library "extern_api"; // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_1.c60) [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_1.5d2) [template] // CHECK:STDOUT: %D.type: type = fn_type @D [template] // CHECK:STDOUT: %D: %D.type = struct_value () [template] // CHECK:STDOUT: %E.type: type = fn_type @E [template] @@ -472,18 +472,18 @@ import library "extern_api"; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.290: %A.type = import_ref Main//api, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.9e3: %B.type = import_ref Main//api, B, loaded [template = constants.%B] -// CHECK:STDOUT: %import_ref.fb4: %C.type = import_ref Main//api, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.b22: %D.type = import_ref Main//api, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.a6e: %A.type = import_ref Main//api, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.54c: %B.type = import_ref Main//api, B, loaded [template = constants.%B] +// CHECK:STDOUT: %import_ref.94c0: %C.type = import_ref Main//api, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.5f5: %D.type = import_ref Main//api, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.d58: = import_ref Main//api, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .E = %import_ref.461 +// CHECK:STDOUT: .E = %import_ref.86f // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.461: %E.type = import_ref Main//api, E, loaded [template = constants.%E] +// CHECK:STDOUT: %import_ref.86f: %E.type = import_ref Main//api, E, loaded [template = constants.%E] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -491,10 +491,10 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.290 -// CHECK:STDOUT: .B = imports.%import_ref.9e3 -// CHECK:STDOUT: .C = imports.%import_ref.fb4 -// CHECK:STDOUT: .D = imports.%import_ref.b22 +// CHECK:STDOUT: .A = imports.%import_ref.a6e +// CHECK:STDOUT: .B = imports.%import_ref.54c +// CHECK:STDOUT: .C = imports.%import_ref.94c0 +// CHECK:STDOUT: .D = imports.%import_ref.5f5 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a @@ -521,7 +521,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: fn @B(%b.param_patt: %i32) -> %i32 [from "api.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c [from "api.carbon"]; +// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c [from "api.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D() [from "api.carbon"]; // CHECK:STDOUT: @@ -529,37 +529,37 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.290 [template = constants.%A] +// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.a6e [template = constants.%A] // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.ref() // CHECK:STDOUT: assign file.%a.var, %A.call -// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.9e3 [template = constants.%B] +// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.54c [template = constants.%B] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc7: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc7: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc7: = bound_method %int_1.loc7, %impl.elem0.loc7 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc7: = specific_function %Convert.bound.loc7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc7: init %i32 = call %Convert.specific_fn.loc7(%int_1.loc7) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc7_16.1: %i32 = value_of_initializer %int.convert_checked.loc7 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc7_16.2: %i32 = converted %int_1.loc7, %.loc7_16.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc7: init %i32 = call %Convert.specific_fn.loc7(%int_1.loc7) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc7_16.1: %i32 = value_of_initializer %int.convert_checked.loc7 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc7_16.2: %i32 = converted %int_1.loc7, %.loc7_16.1 [template = constants.%int_1.5d2] // 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.%import_ref.fb4 [template = constants.%C] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.94c0 [template = constants.%C] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_25.1: %tuple.type.985 = tuple_literal (%int_1.loc8) -// CHECK:STDOUT: %impl.elem0.loc8: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc8: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc8: = specific_function %Convert.bound.loc8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc8: init %i32 = call %Convert.specific_fn.loc8(%int_1.loc8) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_25.2: %i32 = value_of_initializer %int.convert_checked.loc8 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_25.3: %i32 = converted %int_1.loc8, %.loc8_25.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%.loc8_25.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc8_25.4: %tuple.type.0e4 = converted %.loc8_25.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked.loc8: init %i32 = call %Convert.specific_fn.loc8(%int_1.loc8) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_25.2: %i32 = value_of_initializer %int.convert_checked.loc8 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_25.3: %i32 = converted %int_1.loc8, %.loc8_25.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%.loc8_25.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc8_25.4: %tuple.type.a1c = converted %.loc8_25.1, %tuple [template = constants.%tuple] // 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.%import_ref.b22 [template = constants.%D] +// CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%import_ref.5f5 [template = constants.%D] // CHECK:STDOUT: %D.call: init %empty_tuple.type = call %D.ref() // CHECK:STDOUT: assign file.%d.var, %D.call // CHECK:STDOUT: %NS.ref: = name_ref NS, imports.%NS [template = imports.%NS] -// CHECK:STDOUT: %E.ref: %E.type = name_ref E, imports.%import_ref.461 [template = constants.%E] +// CHECK:STDOUT: %E.ref: %E.type = name_ref E, imports.%import_ref.86f [template = constants.%E] // CHECK:STDOUT: %E.call: init %empty_tuple.type = call %E.ref() // CHECK:STDOUT: assign file.%e.var, %E.call // CHECK:STDOUT: return @@ -576,7 +576,7 @@ import library "extern_api"; // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] @@ -585,15 +585,15 @@ import library "extern_api"; // CHECK:STDOUT: %E.type: type = fn_type @E [template] // CHECK:STDOUT: %E: %E.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_1.c60) [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_1.5d2) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -602,8 +602,8 @@ import library "extern_api"; // CHECK:STDOUT: .E = file.%E.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -642,14 +642,14 @@ import library "extern_api"; // CHECK:STDOUT: %int_32.loc32_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc32_32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template = constants.%struct_type.c] -// CHECK:STDOUT: %c.param: %tuple.type.0e4 = value_param runtime_param0 -// CHECK:STDOUT: %.loc32_21.1: type = splice_block %.loc32_21.3 [template = constants.%tuple.type.0e4] { +// CHECK:STDOUT: %c.param: %tuple.type.a1c = value_param runtime_param0 +// CHECK:STDOUT: %.loc32_21.1: type = splice_block %.loc32_21.3 [template = constants.%tuple.type.a1c] { // CHECK:STDOUT: %int_32.loc32_17: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc32_17: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc32_21.2: %tuple.type.85c = tuple_literal (%i32.loc32_17) -// CHECK:STDOUT: %.loc32_21.3: type = converted %.loc32_21.2, constants.%tuple.type.0e4 [template = constants.%tuple.type.0e4] +// CHECK:STDOUT: %.loc32_21.3: type = converted %.loc32_21.2, constants.%tuple.type.a1c [template = constants.%tuple.type.a1c] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.0e4 = bind_name c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a1c = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param runtime_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -671,7 +671,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: fn @B(%b.param_patt: %i32) -> %i32 [from "api.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c [from "api.carbon"]; +// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c [from "api.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D() [from "api.carbon"]; // CHECK:STDOUT: @@ -684,25 +684,25 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc53: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc53: = bound_method %int_1.loc53, %impl.elem0.loc53 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc53: = specific_function %Convert.bound.loc53, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc53: init %i32 = call %Convert.specific_fn.loc53(%int_1.loc53) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %int.convert_checked.loc53 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc53: init %i32 = call %Convert.specific_fn.loc53(%int_1.loc53) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %int.convert_checked.loc53 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [template = constants.%int_1.5d2] // 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 [template = constants.%C] // CHECK:STDOUT: %int_1.loc54: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc54_25.1: %tuple.type.985 = tuple_literal (%int_1.loc54) -// CHECK:STDOUT: %impl.elem0.loc54: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc54: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc54: = bound_method %int_1.loc54, %impl.elem0.loc54 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc54: = specific_function %Convert.bound.loc54, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc54: init %i32 = call %Convert.specific_fn.loc54(%int_1.loc54) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %int.convert_checked.loc54 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%.loc54_25.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc54_25.4: %tuple.type.0e4 = converted %.loc54_25.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked.loc54: init %i32 = call %Convert.specific_fn.loc54(%int_1.loc54) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %int.convert_checked.loc54 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%.loc54_25.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc54_25.4: %tuple.type.a1c = converted %.loc54_25.1, %tuple [template = constants.%tuple] // 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 [template = constants.%D] @@ -726,7 +726,7 @@ import library "extern_api"; // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] @@ -735,15 +735,15 @@ import library "extern_api"; // CHECK:STDOUT: %E.type: type = fn_type @E [template] // CHECK:STDOUT: %E: %E.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_1.c60) [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_1.5d2) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -752,8 +752,8 @@ import library "extern_api"; // CHECK:STDOUT: .E = file.%E.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -792,14 +792,14 @@ import library "extern_api"; // CHECK:STDOUT: %int_32.loc8_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc8_32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template = constants.%struct_type.c] -// CHECK:STDOUT: %c.param: %tuple.type.0e4 = value_param runtime_param0 -// CHECK:STDOUT: %.loc8_21.1: type = splice_block %.loc8_21.3 [template = constants.%tuple.type.0e4] { +// CHECK:STDOUT: %c.param: %tuple.type.a1c = value_param runtime_param0 +// CHECK:STDOUT: %.loc8_21.1: type = splice_block %.loc8_21.3 [template = constants.%tuple.type.a1c] { // CHECK:STDOUT: %int_32.loc8_17: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc8_17: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc8_21.2: %tuple.type.85c = tuple_literal (%i32.loc8_17) -// CHECK:STDOUT: %.loc8_21.3: type = converted %.loc8_21.2, constants.%tuple.type.0e4 [template = constants.%tuple.type.0e4] +// CHECK:STDOUT: %.loc8_21.3: type = converted %.loc8_21.2, constants.%tuple.type.a1c [template = constants.%tuple.type.a1c] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.0e4 = bind_name c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a1c = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param runtime_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -821,7 +821,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @B(%b.param_patt: %i32) -> %i32; // CHECK:STDOUT: -// CHECK:STDOUT: extern fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c; +// CHECK:STDOUT: extern fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D(); // CHECK:STDOUT: @@ -834,25 +834,25 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %int_1.loc13: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_1.loc13, %impl.elem0.loc13 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_1.loc13) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_16.1: %i32 = value_of_initializer %int.convert_checked.loc13 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_16.2: %i32 = converted %int_1.loc13, %.loc13_16.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_1.loc13) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_16.1: %i32 = value_of_initializer %int.convert_checked.loc13 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_16.2: %i32 = converted %int_1.loc13, %.loc13_16.1 [template = constants.%int_1.5d2] // 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 [template = constants.%C] // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_25.1: %tuple.type.985 = tuple_literal (%int_1.loc14) -// CHECK:STDOUT: %impl.elem0.loc14: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc14: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc14: = bound_method %int_1.loc14, %impl.elem0.loc14 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc14: = specific_function %Convert.bound.loc14, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc14: init %i32 = call %Convert.specific_fn.loc14(%int_1.loc14) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_25.2: %i32 = value_of_initializer %int.convert_checked.loc14 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_25.3: %i32 = converted %int_1.loc14, %.loc14_25.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%.loc14_25.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc14_25.4: %tuple.type.0e4 = converted %.loc14_25.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked.loc14: init %i32 = call %Convert.specific_fn.loc14(%int_1.loc14) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_25.2: %i32 = value_of_initializer %int.convert_checked.loc14 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_25.3: %i32 = converted %int_1.loc14, %.loc14_25.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%.loc14_25.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc14_25.4: %tuple.type.a1c = converted %.loc14_25.1, %tuple [template = constants.%tuple] // 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 [template = constants.%D] @@ -876,19 +876,19 @@ import library "extern_api"; // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_1.c60) [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_1.5d2) [template] // CHECK:STDOUT: %D.type: type = fn_type @D [template] // CHECK:STDOUT: %D: %D.type = struct_value () [template] // CHECK:STDOUT: %E.type: type = fn_type @E [template] @@ -896,18 +896,18 @@ import library "extern_api"; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.290: %A.type = import_ref Main//api, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.9e3: %B.type = import_ref Main//api, B, loaded [template = constants.%B] -// CHECK:STDOUT: %import_ref.fb4: %C.type = import_ref Main//api, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.b22: %D.type = import_ref Main//api, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.a6e: %A.type = import_ref Main//api, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.54c: %B.type = import_ref Main//api, B, loaded [template = constants.%B] +// CHECK:STDOUT: %import_ref.94c0: %C.type = import_ref Main//api, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.5f5: %D.type = import_ref Main//api, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.d58: = import_ref Main//api, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .E = %import_ref.461 +// CHECK:STDOUT: .E = %import_ref.86f // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.461: %E.type = import_ref Main//api, E, loaded [template = constants.%E] +// CHECK:STDOUT: %import_ref.86f: %E.type = import_ref Main//api, E, loaded [template = constants.%E] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -915,10 +915,10 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.290 -// CHECK:STDOUT: .B = imports.%import_ref.9e3 -// CHECK:STDOUT: .C = imports.%import_ref.fb4 -// CHECK:STDOUT: .D = imports.%import_ref.b22 +// CHECK:STDOUT: .A = imports.%import_ref.a6e +// CHECK:STDOUT: .B = imports.%import_ref.54c +// CHECK:STDOUT: .C = imports.%import_ref.94c0 +// CHECK:STDOUT: .D = imports.%import_ref.5f5 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a @@ -945,7 +945,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: fn @B(%b.param_patt: %i32) -> %i32 [from "api.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c [from "api.carbon"]; +// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c [from "api.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D() [from "api.carbon"]; // CHECK:STDOUT: @@ -953,37 +953,37 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.290 [template = constants.%A] +// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.a6e [template = constants.%A] // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.ref() // CHECK:STDOUT: assign file.%a.var, %A.call -// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.9e3 [template = constants.%B] +// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.54c [template = constants.%B] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc53: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc53: = bound_method %int_1.loc53, %impl.elem0.loc53 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc53: = specific_function %Convert.bound.loc53, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc53: init %i32 = call %Convert.specific_fn.loc53(%int_1.loc53) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %int.convert_checked.loc53 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc53: init %i32 = call %Convert.specific_fn.loc53(%int_1.loc53) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %int.convert_checked.loc53 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [template = constants.%int_1.5d2] // 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.%import_ref.fb4 [template = constants.%C] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.94c0 [template = constants.%C] // CHECK:STDOUT: %int_1.loc54: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc54_25.1: %tuple.type.985 = tuple_literal (%int_1.loc54) -// CHECK:STDOUT: %impl.elem0.loc54: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc54: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc54: = bound_method %int_1.loc54, %impl.elem0.loc54 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc54: = specific_function %Convert.bound.loc54, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc54: init %i32 = call %Convert.specific_fn.loc54(%int_1.loc54) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %int.convert_checked.loc54 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%.loc54_25.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc54_25.4: %tuple.type.0e4 = converted %.loc54_25.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked.loc54: init %i32 = call %Convert.specific_fn.loc54(%int_1.loc54) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %int.convert_checked.loc54 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%.loc54_25.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc54_25.4: %tuple.type.a1c = converted %.loc54_25.1, %tuple [template = constants.%tuple] // 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.%import_ref.b22 [template = constants.%D] +// CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%import_ref.5f5 [template = constants.%D] // CHECK:STDOUT: %D.call: init %empty_tuple.type = call %D.ref() // CHECK:STDOUT: assign file.%d.var, %D.call // CHECK:STDOUT: %NS.ref: = name_ref NS, imports.%NS [template = imports.%NS] -// CHECK:STDOUT: %E.ref: %E.type = name_ref E, imports.%import_ref.461 [template = constants.%E] +// CHECK:STDOUT: %E.ref: %E.type = name_ref E, imports.%import_ref.86f [template = constants.%E] // CHECK:STDOUT: %E.call: init %empty_tuple.type = call %E.ref() // CHECK:STDOUT: assign file.%e.var, %E.call // CHECK:STDOUT: return @@ -1000,19 +1000,19 @@ import library "extern_api"; // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_1.c60) [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_1.5d2) [template] // CHECK:STDOUT: %D.type: type = fn_type @D [template] // CHECK:STDOUT: %D: %D.type = struct_value () [template] // CHECK:STDOUT: %E.type: type = fn_type @E [template] @@ -1020,18 +1020,18 @@ import library "extern_api"; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.290: %A.type = import_ref Main//extern_api, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.9e3: %B.type = import_ref Main//extern_api, B, loaded [template = constants.%B] -// CHECK:STDOUT: %import_ref.fb4: %C.type = import_ref Main//extern_api, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.b22: %D.type = import_ref Main//extern_api, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.a6e: %A.type = import_ref Main//extern_api, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.54c: %B.type = import_ref Main//extern_api, B, loaded [template = constants.%B] +// CHECK:STDOUT: %import_ref.94c0: %C.type = import_ref Main//extern_api, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.5f5: %D.type = import_ref Main//extern_api, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.d58: = import_ref Main//extern_api, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .E = %import_ref.461 +// CHECK:STDOUT: .E = %import_ref.86f // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.461: %E.type = import_ref Main//extern_api, E, loaded [template = constants.%E] +// CHECK:STDOUT: %import_ref.86f: %E.type = import_ref Main//extern_api, E, loaded [template = constants.%E] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1039,10 +1039,10 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.290 -// CHECK:STDOUT: .B = imports.%import_ref.9e3 -// CHECK:STDOUT: .C = imports.%import_ref.fb4 -// CHECK:STDOUT: .D = imports.%import_ref.b22 +// CHECK:STDOUT: .A = imports.%import_ref.a6e +// CHECK:STDOUT: .B = imports.%import_ref.54c +// CHECK:STDOUT: .C = imports.%import_ref.94c0 +// CHECK:STDOUT: .D = imports.%import_ref.5f5 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a @@ -1069,7 +1069,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @B(%b.param_patt: %i32) -> %i32; // CHECK:STDOUT: -// CHECK:STDOUT: extern fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c; +// CHECK:STDOUT: extern fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D(); // CHECK:STDOUT: @@ -1077,37 +1077,37 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.290 [template = constants.%A] +// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.a6e [template = constants.%A] // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.ref() // CHECK:STDOUT: assign file.%a.var, %A.call -// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.9e3 [template = constants.%B] +// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.54c [template = constants.%B] // CHECK:STDOUT: %int_1.loc52: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc52: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc52: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc52: = bound_method %int_1.loc52, %impl.elem0.loc52 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc52: = specific_function %Convert.bound.loc52, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc52: init %i32 = call %Convert.specific_fn.loc52(%int_1.loc52) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc52_16.1: %i32 = value_of_initializer %int.convert_checked.loc52 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc52_16.2: %i32 = converted %int_1.loc52, %.loc52_16.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc52: init %i32 = call %Convert.specific_fn.loc52(%int_1.loc52) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc52_16.1: %i32 = value_of_initializer %int.convert_checked.loc52 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc52_16.2: %i32 = converted %int_1.loc52, %.loc52_16.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %B.call: init %i32 = call %B.ref(%.loc52_16.2) // CHECK:STDOUT: assign file.%b.var, %B.call -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.fb4 [template = constants.%C] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.94c0 [template = constants.%C] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc53_25.1: %tuple.type.985 = tuple_literal (%int_1.loc53) -// CHECK:STDOUT: %impl.elem0.loc53: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc53: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc53: = bound_method %int_1.loc53, %impl.elem0.loc53 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc53: = specific_function %Convert.bound.loc53, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc53: init %i32 = call %Convert.specific_fn.loc53(%int_1.loc53) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc53_25.2: %i32 = value_of_initializer %int.convert_checked.loc53 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc53_25.3: %i32 = converted %int_1.loc53, %.loc53_25.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%.loc53_25.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc53_25.4: %tuple.type.0e4 = converted %.loc53_25.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked.loc53: init %i32 = call %Convert.specific_fn.loc53(%int_1.loc53) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc53_25.2: %i32 = value_of_initializer %int.convert_checked.loc53 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc53_25.3: %i32 = converted %int_1.loc53, %.loc53_25.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%.loc53_25.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc53_25.4: %tuple.type.a1c = converted %.loc53_25.1, %tuple [template = constants.%tuple] // CHECK:STDOUT: %C.call: init %struct_type.c = call %C.ref(%.loc53_25.4) // CHECK:STDOUT: assign file.%c.var, %C.call -// CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%import_ref.b22 [template = constants.%D] +// CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%import_ref.5f5 [template = constants.%D] // CHECK:STDOUT: %D.call: init %empty_tuple.type = call %D.ref() // CHECK:STDOUT: assign file.%d.var, %D.call // CHECK:STDOUT: %NS.ref: = name_ref NS, imports.%NS [template = imports.%NS] -// CHECK:STDOUT: %E.ref: %E.type = name_ref E, imports.%import_ref.461 [template = constants.%E] +// CHECK:STDOUT: %E.ref: %E.type = name_ref E, imports.%import_ref.86f [template = constants.%E] // CHECK:STDOUT: %E.call: init %empty_tuple.type = call %E.ref() // CHECK:STDOUT: assign file.%e.var, %E.call // CHECK:STDOUT: return @@ -1116,13 +1116,13 @@ import library "extern_api"; // CHECK:STDOUT: --- unloaded.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.f82 = import_ref Main//api, A, unloaded -// CHECK:STDOUT: %import_ref.90c = import_ref Main//api, B, unloaded -// CHECK:STDOUT: %import_ref.40f = import_ref Main//api, C, unloaded -// CHECK:STDOUT: %import_ref.a91 = import_ref Main//api, D, unloaded +// CHECK:STDOUT: %import_ref.0c3 = import_ref Main//api, A, unloaded +// CHECK:STDOUT: %import_ref.8cc = import_ref Main//api, B, unloaded +// CHECK:STDOUT: %import_ref.b05 = import_ref Main//api, C, unloaded +// CHECK:STDOUT: %import_ref.caf = import_ref Main//api, D, unloaded // CHECK:STDOUT: %import_ref.d58: = import_ref Main//api, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .E = %import_ref.ba8 +// CHECK:STDOUT: .E = %import_ref.4ad // CHECK:STDOUT: } // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude @@ -1132,10 +1132,10 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.f82 -// CHECK:STDOUT: .B = imports.%import_ref.90c -// CHECK:STDOUT: .C = imports.%import_ref.40f -// CHECK:STDOUT: .D = imports.%import_ref.a91 +// CHECK:STDOUT: .A = imports.%import_ref.0c3 +// CHECK:STDOUT: .B = imports.%import_ref.8cc +// CHECK:STDOUT: .C = imports.%import_ref.b05 +// CHECK:STDOUT: .D = imports.%import_ref.caf // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } @@ -1146,13 +1146,13 @@ import library "extern_api"; // CHECK:STDOUT: --- unloaded_extern.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.f82 = import_ref Main//extern_api, A, unloaded -// CHECK:STDOUT: %import_ref.90c = import_ref Main//extern_api, B, unloaded -// CHECK:STDOUT: %import_ref.40f = import_ref Main//extern_api, C, unloaded -// CHECK:STDOUT: %import_ref.a91 = import_ref Main//extern_api, D, unloaded +// CHECK:STDOUT: %import_ref.0c3 = import_ref Main//extern_api, A, unloaded +// CHECK:STDOUT: %import_ref.8cc = import_ref Main//extern_api, B, unloaded +// CHECK:STDOUT: %import_ref.b05 = import_ref Main//extern_api, C, unloaded +// CHECK:STDOUT: %import_ref.caf = import_ref Main//extern_api, D, unloaded // CHECK:STDOUT: %import_ref.d58: = import_ref Main//extern_api, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .E = %import_ref.ba8 +// CHECK:STDOUT: .E = %import_ref.4ad // CHECK:STDOUT: } // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude @@ -1162,10 +1162,10 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.f82 -// CHECK:STDOUT: .B = imports.%import_ref.90c -// CHECK:STDOUT: .C = imports.%import_ref.40f -// CHECK:STDOUT: .D = imports.%import_ref.a91 +// CHECK:STDOUT: .A = imports.%import_ref.0c3 +// CHECK:STDOUT: .B = imports.%import_ref.8cc +// CHECK:STDOUT: .C = imports.%import_ref.b05 +// CHECK:STDOUT: .D = imports.%import_ref.caf // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/declaration/no_prelude/extern_library.carbon b/toolchain/check/testdata/function/declaration/no_prelude/extern_library.carbon index db1639504099..3557e6fc36d0 100644 --- a/toolchain/check/testdata/function/declaration/no_prelude/extern_library.carbon +++ b/toolchain/check/testdata/function/declaration/no_prelude/extern_library.carbon @@ -270,12 +270,12 @@ extern library "extern_library_owner" fn F() {} // CHECK:STDOUT: --- fail_extern_library_collision.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.b07 = import_ref Main//extern_library, F, unloaded +// CHECK:STDOUT: %import_ref.bde = import_ref Main//extern_library, F, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .F = imports.%import_ref.b07 +// CHECK:STDOUT: .F = imports.%import_ref.bde // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon b/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon index 5ec48e278d87..4fff7d445cbc 100644 --- a/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon @@ -197,26 +197,26 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//incomplete_return, C, unloaded -// CHECK:STDOUT: %import_ref.5de = import_ref Main//incomplete_return, D, unloaded -// CHECK:STDOUT: %import_ref.3ff: %ReturnCUnused.type = import_ref Main//incomplete_return, ReturnCUnused, loaded [template = constants.%ReturnCUnused] -// CHECK:STDOUT: %import_ref.017: %ReturnCUsed.type = import_ref Main//incomplete_return, ReturnCUsed, loaded [template = constants.%ReturnCUsed] -// CHECK:STDOUT: %import_ref.d60: %ReturnDUnused.type = import_ref Main//incomplete_return, ReturnDUnused, loaded [template = constants.%ReturnDUnused] -// CHECK:STDOUT: %import_ref.7fe: %ReturnDUsed.type = import_ref Main//incomplete_return, ReturnDUsed, loaded [template = constants.%ReturnDUsed] -// CHECK:STDOUT: %import_ref.8e9 = import_ref Main//incomplete_return, Call, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//incomplete_return, C, unloaded +// CHECK:STDOUT: %import_ref.e8f = import_ref Main//incomplete_return, D, unloaded +// CHECK:STDOUT: %import_ref.c3e: %ReturnCUnused.type = import_ref Main//incomplete_return, ReturnCUnused, loaded [template = constants.%ReturnCUnused] +// CHECK:STDOUT: %import_ref.073: %ReturnCUsed.type = import_ref Main//incomplete_return, ReturnCUsed, loaded [template = constants.%ReturnCUsed] +// CHECK:STDOUT: %import_ref.c58: %ReturnDUnused.type = import_ref Main//incomplete_return, ReturnDUnused, loaded [template = constants.%ReturnDUnused] +// CHECK:STDOUT: %import_ref.e1f: %ReturnDUsed.type = import_ref Main//incomplete_return, ReturnDUsed, loaded [template = constants.%ReturnDUsed] +// CHECK:STDOUT: %import_ref.2ce = import_ref Main//incomplete_return, Call, unloaded // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//incomplete_return, loc37_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.cab = import_ref Main//incomplete_return, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d -// CHECK:STDOUT: .D = imports.%import_ref.5de -// CHECK:STDOUT: .ReturnCUnused = imports.%import_ref.3ff -// CHECK:STDOUT: .ReturnCUsed = imports.%import_ref.017 -// CHECK:STDOUT: .ReturnDUnused = imports.%import_ref.d60 -// CHECK:STDOUT: .ReturnDUsed = imports.%import_ref.7fe -// CHECK:STDOUT: .Call = imports.%import_ref.8e9 +// CHECK:STDOUT: .C = imports.%import_ref.f42 +// CHECK:STDOUT: .D = imports.%import_ref.e8f +// CHECK:STDOUT: .ReturnCUnused = imports.%import_ref.c3e +// CHECK:STDOUT: .ReturnCUsed = imports.%import_ref.073 +// CHECK:STDOUT: .ReturnDUnused = imports.%import_ref.c58 +// CHECK:STDOUT: .ReturnDUsed = imports.%import_ref.e1f +// CHECK:STDOUT: .Call = imports.%import_ref.2ce // CHECK:STDOUT: .CallFAndGIncomplete = %CallFAndGIncomplete.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -233,15 +233,15 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: // CHECK:STDOUT: fn @CallFAndGIncomplete() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %ReturnCUnused.ref: %ReturnCUnused.type = name_ref ReturnCUnused, imports.%import_ref.3ff [template = constants.%ReturnCUnused] +// CHECK:STDOUT: %ReturnCUnused.ref: %ReturnCUnused.type = name_ref ReturnCUnused, imports.%import_ref.c3e [template = constants.%ReturnCUnused] // CHECK:STDOUT: %ReturnCUnused.call: init = call %ReturnCUnused.ref() -// CHECK:STDOUT: %ReturnCUsed.ref: %ReturnCUsed.type = name_ref ReturnCUsed, imports.%import_ref.017 [template = constants.%ReturnCUsed] +// CHECK:STDOUT: %ReturnCUsed.ref: %ReturnCUsed.type = name_ref ReturnCUsed, imports.%import_ref.073 [template = constants.%ReturnCUsed] // CHECK:STDOUT: %ReturnCUsed.call: init = call %ReturnCUsed.ref() -// CHECK:STDOUT: %ReturnDUnused.ref: %ReturnDUnused.type = name_ref ReturnDUnused, imports.%import_ref.d60 [template = constants.%ReturnDUnused] +// CHECK:STDOUT: %ReturnDUnused.ref: %ReturnDUnused.type = name_ref ReturnDUnused, imports.%import_ref.c58 [template = constants.%ReturnDUnused] // CHECK:STDOUT: %.loc32_17.1: ref %D = temporary_storage // CHECK:STDOUT: %ReturnDUnused.call: init %D = call %ReturnDUnused.ref() to %.loc32_17.1 // CHECK:STDOUT: %.loc32_17.2: ref %D = temporary %.loc32_17.1, %ReturnDUnused.call -// CHECK:STDOUT: %ReturnDUsed.ref: %ReturnDUsed.type = name_ref ReturnDUsed, imports.%import_ref.7fe [template = constants.%ReturnDUsed] +// CHECK:STDOUT: %ReturnDUsed.ref: %ReturnDUsed.type = name_ref ReturnDUsed, imports.%import_ref.e1f [template = constants.%ReturnDUsed] // CHECK:STDOUT: %.loc33_15.1: ref %D = temporary_storage // CHECK:STDOUT: %ReturnDUsed.call: init %D = call %ReturnDUsed.ref() to %.loc33_15.1 // CHECK:STDOUT: %.loc33_15.2: ref %D = temporary %.loc33_15.1, %ReturnDUsed.call diff --git a/toolchain/check/testdata/function/declaration/no_prelude/name_poisoning.carbon b/toolchain/check/testdata/function/declaration/no_prelude/name_poisoning.carbon index ad56e7016721..c4d100205eb2 100644 --- a/toolchain/check/testdata/function/declaration/no_prelude/name_poisoning.carbon +++ b/toolchain/check/testdata/function/declaration/no_prelude/name_poisoning.carbon @@ -471,11 +471,11 @@ class N.C {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %F1.type: type = fn_type @F1 [template] // CHECK:STDOUT: %F1: %F1.type = struct_value () [template] // CHECK:STDOUT: %.type: type = facet_type <@.1> [template] -// CHECK:STDOUT: %Self.cff: %.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d73: %.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -499,7 +499,7 @@ class N.C {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -507,7 +507,7 @@ class N.C {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @.1 { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.cff] +// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d73] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -568,7 +568,7 @@ class N.C {} // CHECK:STDOUT: %C2: type = class_type @C2 [template] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %C2 [template] // CHECK:STDOUT: %struct_type.C1: type = struct_type {.C1: %C2} [template] -// CHECK:STDOUT: %complete_type.b44: = complete_type_witness %struct_type.C1 [template] +// CHECK:STDOUT: %complete_type.ec1: = complete_type_witness %struct_type.C1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -599,7 +599,7 @@ class N.C {} // CHECK:STDOUT: } // CHECK:STDOUT: %C2.decl: type = class_decl @C2 [template = constants.%C2] {} {} // CHECK:STDOUT: %.loc18: %D.elem = field_decl C1, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.C1 [template = constants.%complete_type.b44] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.C1 [template = constants.%complete_type.ec1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D @@ -793,19 +793,19 @@ class N.C {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %D1: type = class_type @D1 [template] // CHECK:STDOUT: %D2.type: type = facet_type <@D2> [template] -// CHECK:STDOUT: %Self.7cc: %D2.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %D3.cb3: type = class_type @D3 [template] -// CHECK:STDOUT: %D3.4cd: type = class_type @D3, @D3(%Self.7cc) [symbolic] -// CHECK:STDOUT: %F.type: type = fn_type @F, @D3(%Self.7cc) [symbolic] +// CHECK:STDOUT: %Self.8cf: %D2.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %D3.b65: type = class_type @D3 [template] +// CHECK:STDOUT: %D3.68e: type = class_type @D3, @D3(%Self.8cf) [symbolic] +// CHECK:STDOUT: %F.type: type = fn_type @F, @D3(%Self.8cf) [symbolic] // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] -// CHECK:STDOUT: %.a85: type = class_type @.1 [template] -// CHECK:STDOUT: %.f6a: type = class_type @.1, @.1(%Self.7cc) [symbolic] -// CHECK:STDOUT: %.eee: type = class_type @.2 [template] -// CHECK:STDOUT: %.175: type = class_type @.2, @.2(%Self.7cc) [symbolic] -// CHECK:STDOUT: %.700: type = class_type @.3 [template] +// CHECK:STDOUT: %.c1e: type = class_type @.1 [template] +// CHECK:STDOUT: %.180: type = class_type @.1, @.1(%Self.8cf) [symbolic] +// CHECK:STDOUT: %.9af: type = class_type @.2 [template] +// CHECK:STDOUT: %.5c1: type = class_type @.2, @.2(%Self.8cf) [symbolic] +// CHECK:STDOUT: %.6ae: type = class_type @.3 [template] // CHECK:STDOUT: %.1c0: type = class_type @.4 [template] // CHECK:STDOUT: %.type: type = facet_type <@.6> [template] -// CHECK:STDOUT: %Self.d82: %.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.501: %.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %.4b5: type = class_type @.5 [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -831,9 +831,9 @@ class N.C {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @D2 { -// CHECK:STDOUT: %Self: %D2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7cc] -// CHECK:STDOUT: %D3.decl: type = class_decl @D3 [template = constants.%D3.cb3] {} {} -// CHECK:STDOUT: %.decl: type = class_decl @.2 [template = constants.%.eee] {} {} +// CHECK:STDOUT: %Self: %D2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.8cf] +// CHECK:STDOUT: %D3.decl: type = class_decl @D3 [template = constants.%D3.b65] {} {} +// CHECK:STDOUT: %.decl: type = class_decl @.2 [template = constants.%.9af] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -842,7 +842,7 @@ class N.C {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @.6 { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d82] +// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.501] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -859,7 +859,7 @@ class N.C {} // CHECK:STDOUT: // CHECK:STDOUT: class @D1 { // CHECK:STDOUT: %D2.decl: type = interface_decl @D2 [template = constants.%D2.type] {} {} -// CHECK:STDOUT: %.decl: type = class_decl @.3 [template = constants.%.700] {} {} +// CHECK:STDOUT: %.decl: type = class_decl @.3 [template = constants.%.6ae] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -870,7 +870,7 @@ class N.C {} // CHECK:STDOUT: // CHECK:STDOUT: generic class @D3(@D2.%Self: %D2.type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self: %D2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7cc)] +// CHECK:STDOUT: %Self: %D2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.8cf)] // CHECK:STDOUT: %F.type: type = fn_type @F, @D3(%Self) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @D3.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] // CHECK:STDOUT: @@ -883,11 +883,11 @@ class N.C {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %x: %C = bind_name x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: type = class_decl @.1 [template = constants.%.a85] {} {} +// CHECK:STDOUT: %.decl: type = class_decl @.1 [template = constants.%.c1e] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%D3.4cd +// CHECK:STDOUT: .Self = constants.%D3.68e // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } @@ -900,7 +900,7 @@ class N.C {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.f6a +// CHECK:STDOUT: .Self = constants.%.180 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -912,7 +912,7 @@ class N.C {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.175 +// CHECK:STDOUT: .Self = constants.%.5c1 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -921,7 +921,7 @@ class N.C {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.700 +// CHECK:STDOUT: .Self = constants.%.6ae // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -946,15 +946,15 @@ class N.C {} // CHECK:STDOUT: fn(%x.param_patt: %C); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D3(constants.%Self.7cc) {} +// CHECK:STDOUT: specific @D3(constants.%Self.8cf) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self.7cc) {} +// CHECK:STDOUT: specific @F(constants.%Self.8cf) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%Self.7cc) {} +// CHECK:STDOUT: specific @.1(constants.%Self.8cf) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @D3(%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.2(constants.%Self.7cc) {} +// CHECK:STDOUT: specific @.2(constants.%Self.8cf) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_alias.carbon // CHECK:STDOUT: @@ -992,17 +992,17 @@ class N.C {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//poison, C, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//poison, C, unloaded // CHECK:STDOUT: %import_ref.a98: = import_ref Main//poison, N, loaded // CHECK:STDOUT: %N: = namespace %import_ref.a98, [template] { -// CHECK:STDOUT: .F1 = %import_ref.204 +// CHECK:STDOUT: .F1 = %import_ref.cd4 // CHECK:STDOUT: .C = file.%C.decl // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: .N = imports.%N // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -1026,17 +1026,17 @@ class N.C {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//poison, C, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//poison, C, unloaded // CHECK:STDOUT: %import_ref.a98: = import_ref Main//poison, N, loaded // CHECK:STDOUT: %N: = namespace %import_ref.a98, [template] { -// CHECK:STDOUT: .F1 = %import_ref.204 +// CHECK:STDOUT: .F1 = %import_ref.cd4 // CHECK:STDOUT: .C = file.%C.decl // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: .N = imports.%N // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import diff --git a/toolchain/check/testdata/function/declaration/param_same_name.carbon b/toolchain/check/testdata/function/declaration/param_same_name.carbon index 8af405e9df1d..5182f1ab129d 100644 --- a/toolchain/check/testdata/function/declaration/param_same_name.carbon +++ b/toolchain/check/testdata/function/declaration/param_same_name.carbon @@ -25,7 +25,7 @@ fn G(a: i32); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/definition/import.carbon b/toolchain/check/testdata/function/definition/import.carbon index 515d52d68f14..bfb7ea878e87 100644 --- a/toolchain/check/testdata/function/definition/import.carbon +++ b/toolchain/check/testdata/function/definition/import.carbon @@ -119,7 +119,7 @@ fn D() {} // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] @@ -130,7 +130,7 @@ fn D() {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -164,22 +164,22 @@ fn D() {} // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [template = constants.%C] { -// CHECK:STDOUT: %c.patt: %tuple.type.0e4 = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %tuple.type.0e4 = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: %tuple.type.a1c = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %tuple.type.a1c = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %struct_type.c = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %struct_type.c = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc6_25: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_25: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template = constants.%struct_type.c] -// CHECK:STDOUT: %c.param: %tuple.type.0e4 = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [template = constants.%tuple.type.0e4] { +// CHECK:STDOUT: %c.param: %tuple.type.a1c = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [template = constants.%tuple.type.a1c] { // CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc6_14.2: %tuple.type.85c = tuple_literal (%i32.loc6_10) -// CHECK:STDOUT: %.loc6_14.3: type = converted %.loc6_14.2, constants.%tuple.type.0e4 [template = constants.%tuple.type.0e4] +// CHECK:STDOUT: %.loc6_14.3: type = converted %.loc6_14.2, constants.%tuple.type.a1c [template = constants.%tuple.type.a1c] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.0e4 = bind_name c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a1c = bind_name c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param runtime_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -197,9 +197,9 @@ fn D() {} // CHECK:STDOUT: return %b.ref // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c { +// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %tuple.type.0e4 = name_ref c, %c +// CHECK:STDOUT: %c.ref: %tuple.type.a1c = name_ref c, %c // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %tuple.elem0: %i32 = tuple_access %c.ref, element0 // CHECK:STDOUT: %.loc6_48: %struct_type.c = struct_literal (%tuple.elem0) @@ -246,29 +246,29 @@ fn D() {} // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template] // CHECK:STDOUT: %C.type: type = fn_type @C [template] // CHECK:STDOUT: %C: %C.type = struct_value () [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_1.c60) [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_1.5d2) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.290: %A.type = import_ref Main//fns, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.9e3: %B.type = import_ref Main//fns, B, loaded [template = constants.%B] -// CHECK:STDOUT: %import_ref.fb4: %C.type = import_ref Main//fns, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.a91 = import_ref Main//fns, D, unloaded +// CHECK:STDOUT: %import_ref.a6e: %A.type = import_ref Main//fns, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.54c: %B.type = import_ref Main//fns, B, loaded [template = constants.%B] +// CHECK:STDOUT: %import_ref.94c0: %C.type = import_ref Main//fns, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.caf = import_ref Main//fns, D, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -276,10 +276,10 @@ fn D() {} // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.290 -// CHECK:STDOUT: .B = imports.%import_ref.9e3 -// CHECK:STDOUT: .C = imports.%import_ref.fb4 -// CHECK:STDOUT: .D = imports.%import_ref.a91 +// CHECK:STDOUT: .A = imports.%import_ref.a6e +// CHECK:STDOUT: .B = imports.%import_ref.54c +// CHECK:STDOUT: .C = imports.%import_ref.94c0 +// CHECK:STDOUT: .D = imports.%import_ref.caf // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a // CHECK:STDOUT: .b = %b @@ -299,34 +299,34 @@ fn D() {} // CHECK:STDOUT: // CHECK:STDOUT: fn @B(%b.param_patt: %i32) -> %i32 [from "fns.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.0e4) -> %struct_type.c [from "fns.carbon"]; +// CHECK:STDOUT: fn @C(%c.param_patt: %tuple.type.a1c) -> %struct_type.c [from "fns.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.290 [template = constants.%A] +// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.a6e [template = constants.%A] // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.ref() // CHECK:STDOUT: assign file.%a.var, %A.call -// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.9e3 [template = constants.%B] +// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.54c [template = constants.%B] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc7: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc7: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc7: = bound_method %int_1.loc7, %impl.elem0.loc7 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc7: = specific_function %Convert.bound.loc7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc7: init %i32 = call %Convert.specific_fn.loc7(%int_1.loc7) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc7_16.1: %i32 = value_of_initializer %int.convert_checked.loc7 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc7_16.2: %i32 = converted %int_1.loc7, %.loc7_16.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc7: init %i32 = call %Convert.specific_fn.loc7(%int_1.loc7) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc7_16.1: %i32 = value_of_initializer %int.convert_checked.loc7 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc7_16.2: %i32 = converted %int_1.loc7, %.loc7_16.1 [template = constants.%int_1.5d2] // 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.%import_ref.fb4 [template = constants.%C] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.94c0 [template = constants.%C] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_25.1: %tuple.type.985 = tuple_literal (%int_1.loc8) -// CHECK:STDOUT: %impl.elem0.loc8: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc8: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc8: = specific_function %Convert.bound.loc8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc8: init %i32 = call %Convert.specific_fn.loc8(%int_1.loc8) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_25.2: %i32 = value_of_initializer %int.convert_checked.loc8 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc8_25.3: %i32 = converted %int_1.loc8, %.loc8_25.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%.loc8_25.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc8_25.4: %tuple.type.0e4 = converted %.loc8_25.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked.loc8: init %i32 = call %Convert.specific_fn.loc8(%int_1.loc8) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_25.2: %i32 = value_of_initializer %int.convert_checked.loc8 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc8_25.3: %i32 = converted %int_1.loc8, %.loc8_25.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%.loc8_25.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc8_25.4: %tuple.type.a1c = converted %.loc8_25.1, %tuple [template = constants.%tuple] // 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 @@ -344,10 +344,10 @@ fn D() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.40f = import_ref Main//fns, C, unloaded -// CHECK:STDOUT: %import_ref.a91 = import_ref Main//fns, D, unloaded +// CHECK:STDOUT: %import_ref.b05 = import_ref Main//fns, C, unloaded +// CHECK:STDOUT: %import_ref.caf = import_ref Main//fns, D, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -357,8 +357,8 @@ fn D() {} // CHECK:STDOUT: package: = namespace [template] { // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: .B = %B.decl -// CHECK:STDOUT: .C = imports.%import_ref.40f -// CHECK:STDOUT: .D = imports.%import_ref.a91 +// CHECK:STDOUT: .C = imports.%import_ref.b05 +// CHECK:STDOUT: .D = imports.%import_ref.caf // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core @@ -423,9 +423,9 @@ fn D() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.f82 = import_ref Main//fns, A, unloaded -// CHECK:STDOUT: %import_ref.90c = import_ref Main//fns, B, unloaded -// CHECK:STDOUT: %import_ref.40f = import_ref Main//fns, C, unloaded +// CHECK:STDOUT: %import_ref.0c3 = import_ref Main//fns, A, unloaded +// CHECK:STDOUT: %import_ref.8cc = import_ref Main//fns, B, unloaded +// CHECK:STDOUT: %import_ref.b05 = import_ref Main//fns, C, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -434,9 +434,9 @@ fn D() {} // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.f82 -// CHECK:STDOUT: .B = imports.%import_ref.90c -// CHECK:STDOUT: .C = imports.%import_ref.40f +// CHECK:STDOUT: .A = imports.%import_ref.0c3 +// CHECK:STDOUT: .B = imports.%import_ref.8cc +// CHECK:STDOUT: .C = imports.%import_ref.b05 // CHECK:STDOUT: .D = %D.decl.loc13 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/definition/no_prelude/implicit_import.carbon b/toolchain/check/testdata/function/definition/no_prelude/implicit_import.carbon index a6952f716dbb..dbc33b24a65e 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/implicit_import.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/implicit_import.carbon @@ -352,14 +352,14 @@ fn B() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.f82 = import_ref Main//def_alias, A, unloaded -// CHECK:STDOUT: %import_ref.e1b: %A.type = import_ref Main//def_alias, B, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.0c3 = import_ref Main//def_alias, A, unloaded +// CHECK:STDOUT: %import_ref.9d1: %A.type = import_ref Main//def_alias, B, loaded [template = constants.%A] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.f82 -// CHECK:STDOUT: .B = imports.%import_ref.e1b +// CHECK:STDOUT: .A = imports.%import_ref.0c3 +// CHECK:STDOUT: .B = imports.%import_ref.9d1 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import diff --git a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon index 79af01b9bbf1..222238e148bc 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon @@ -452,16 +452,16 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//two_file, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.930: type = import_ref Main//two_file, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//two_file, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.05a: type = import_ref Main//two_file, D, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//two_file, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac -// CHECK:STDOUT: .D = imports.%import_ref.930 +// CHECK:STDOUT: .C = imports.%import_ref.3b0 +// CHECK:STDOUT: .D = imports.%import_ref.05a // CHECK:STDOUT: .Foo = %Foo.decl // CHECK:STDOUT: .Bar = %Bar.decl // CHECK:STDOUT: } @@ -472,7 +472,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param runtime_param0 -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %a: %C = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type = fn_decl @Bar [template = constants.%Bar] { @@ -480,7 +480,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param runtime_param0 -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.930 [template = constants.%C] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.05a [template = constants.%C] // CHECK:STDOUT: %a: %C = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -788,21 +788,21 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//alias_two_file, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//alias_two_file, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//alias_two_file, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .Foo = %Foo.decl // CHECK:STDOUT: .D = %D // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [template = constants.%Foo] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 diff --git a/toolchain/check/testdata/function/definition/params_one.carbon b/toolchain/check/testdata/function/definition/params_one.carbon index c88c45959433..6a10eab9d166 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(a: i32) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/definition/params_one_comma.carbon b/toolchain/check/testdata/function/definition/params_one_comma.carbon index b704cc43f885..0c1a79d19481 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(a: i32,) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/definition/params_two.carbon b/toolchain/check/testdata/function/definition/params_two.carbon index 04d56a3b68b8..a41c92e67407 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(a: i32, b: i32) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/definition/params_two_comma.carbon b/toolchain/check/testdata/function/definition/params_two_comma.carbon index cddb5904d163..19f8c5aa2c7e 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(a: i32, b: i32,) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index d17b5b3af308..05e6c3aec565 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -195,29 +195,29 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %ExplicitGenericParam.type: type = fn_type @ExplicitGenericParam [template] // CHECK:STDOUT: %ExplicitGenericParam: %ExplicitGenericParam.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.645: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%T) [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.c0a: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%T) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %CallExplicitGenericParam.type: type = fn_type @CallExplicitGenericParam [template] // CHECK:STDOUT: %CallExplicitGenericParam: %CallExplicitGenericParam.type = struct_value () [template] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.1e2: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%i32) [template] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.74e: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%i32) [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T} [symbolic] -// CHECK:STDOUT: %ptr.eb5: type = ptr_type %struct_type.a [symbolic] +// CHECK:STDOUT: %ptr.48a: type = ptr_type %struct_type.a [symbolic] // CHECK:STDOUT: %CallExplicitGenericParamWithGenericArg.type: type = fn_type @CallExplicitGenericParamWithGenericArg [template] // CHECK:STDOUT: %CallExplicitGenericParamWithGenericArg: %CallExplicitGenericParamWithGenericArg.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.624: = require_complete_type %ptr.eb5 [symbolic] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.120: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a) [symbolic] -// CHECK:STDOUT: %complete_type.566: = complete_type_witness %ptr.dc3 [template] +// CHECK:STDOUT: %require_complete.86d: = require_complete_type %ptr.48a [symbolic] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.6ad: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a) [symbolic] +// CHECK:STDOUT: %complete_type.3d0: = complete_type_witness %ptr.235 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -234,72 +234,72 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %ExplicitGenericParam.decl: %ExplicitGenericParam.type = fn_decl @ExplicitGenericParam [template = constants.%ExplicitGenericParam] { // CHECK:STDOUT: %T.patt.loc4_25.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_25.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_25.1, runtime_param [symbolic = %T.patt.loc4_25.2 (constants.%T.patt)] -// CHECK:STDOUT: %return.patt: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_39.1: type = ptr_type %T [symbolic = %ptr.loc4_39.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc4_39.1: type = ptr_type %T [symbolic = %ptr.loc4_39.2 (constants.%ptr.79f)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %return.param: ref @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParam.decl: %CallExplicitGenericParam.type = fn_decl @CallExplicitGenericParam [template = constants.%CallExplicitGenericParam] { -// CHECK:STDOUT: %return.patt: %ptr.dc3 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.dc3 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %ptr.235 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.235 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc6: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32 [template = constants.%ptr.dc3] -// CHECK:STDOUT: %return.param: ref %ptr.dc3 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %ptr.dc3 = return_slot %return.param +// CHECK:STDOUT: %ptr: type = ptr_type %i32 [template = constants.%ptr.235] +// CHECK:STDOUT: %return.param: ref %ptr.235 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParamWithGenericArg.decl: %CallExplicitGenericParamWithGenericArg.type = fn_decl @CallExplicitGenericParamWithGenericArg [template = constants.%CallExplicitGenericParamWithGenericArg] { // CHECK:STDOUT: %T.patt.loc10_43.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_43.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc10_43.1, runtime_param [symbolic = %T.patt.loc10_43.2 (constants.%T.patt)] -// CHECK:STDOUT: %return.patt: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc10_43.1 [symbolic = %T.loc10_43.2 (constants.%T)] // CHECK:STDOUT: %struct_type.a.loc10_62.1: type = struct_type {.a: %T} [symbolic = %struct_type.a.loc10_62.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %ptr.loc10_63.1: type = ptr_type %struct_type.a [symbolic = %ptr.loc10_63.2 (constants.%ptr.eb5)] +// CHECK:STDOUT: %ptr.loc10_63.1: type = ptr_type %struct_type.a [symbolic = %ptr.loc10_63.2 (constants.%ptr.48a)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc10_43.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_43.2 (constants.%T)] -// CHECK:STDOUT: %return.param: ref @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ExplicitGenericParam(%T.loc4_25.1: type) { // CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc4_25.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_25.2 (constants.%T.patt)] -// CHECK:STDOUT: %ptr.loc4_39.2: type = ptr_type @ExplicitGenericParam.%T.loc4_25.2 (%T) [symbolic = %ptr.loc4_39.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc4_39.2: type = ptr_type @ExplicitGenericParam.%T.loc4_25.2 (%T) [symbolic = %ptr.loc4_39.2 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) [symbolic = %require_complete (constants.%require_complete.968)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc4_25.2) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.645)] +// CHECK:STDOUT: %require_complete: = require_complete_type @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) [symbolic = %require_complete (constants.%require_complete.6e5)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc4_25.2) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.c0a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type) -> @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) { +// CHECK:STDOUT: fn(%T.param_patt: type) -> @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [template = constants.%ExplicitGenericParam] // CHECK:STDOUT: %T.ref.loc4_71: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (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.645)] -// CHECK:STDOUT: %ExplicitGenericParam.call: init @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) = call %ExplicitGenericParam.specific_fn.loc4_50.1() -// CHECK:STDOUT: %.loc4_73.1: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) = value_of_initializer %ExplicitGenericParam.call -// CHECK:STDOUT: %.loc4_73.2: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.251) = converted %ExplicitGenericParam.call, %.loc4_73.1 +// 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.c0a)] +// CHECK:STDOUT: %ExplicitGenericParam.call: init @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = call %ExplicitGenericParam.specific_fn.loc4_50.1() +// CHECK:STDOUT: %.loc4_73.1: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = value_of_initializer %ExplicitGenericParam.call +// CHECK:STDOUT: %.loc4_73.2: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = converted %ExplicitGenericParam.call, %.loc4_73.1 // CHECK:STDOUT: return %.loc4_73.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallExplicitGenericParam() -> %ptr.dc3 { +// CHECK:STDOUT: fn @CallExplicitGenericParam() -> %ptr.235 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [template = constants.%ExplicitGenericParam] // CHECK:STDOUT: %int_32.loc7: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc7: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%i32) [template = constants.%ExplicitGenericParam.specific_fn.1e2] -// CHECK:STDOUT: %ExplicitGenericParam.call: init %ptr.dc3 = call %ExplicitGenericParam.specific_fn() -// CHECK:STDOUT: %.loc7_35.1: %ptr.dc3 = value_of_initializer %ExplicitGenericParam.call -// CHECK:STDOUT: %.loc7_35.2: %ptr.dc3 = converted %ExplicitGenericParam.call, %.loc7_35.1 +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%i32) [template = constants.%ExplicitGenericParam.specific_fn.74e] +// CHECK:STDOUT: %ExplicitGenericParam.call: init %ptr.235 = call %ExplicitGenericParam.specific_fn() +// CHECK:STDOUT: %.loc7_35.1: %ptr.235 = value_of_initializer %ExplicitGenericParam.call +// CHECK:STDOUT: %.loc7_35.2: %ptr.235 = converted %ExplicitGenericParam.call, %.loc7_35.1 // CHECK:STDOUT: return %.loc7_35.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -307,21 +307,21 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %T.loc10_43.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_43.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc10_43.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_43.2 (constants.%T.patt)] // CHECK:STDOUT: %struct_type.a.loc10_62.2: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.2 (%T)} [symbolic = %struct_type.a.loc10_62.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %ptr.loc10_63.2: type = ptr_type @CallExplicitGenericParamWithGenericArg.%struct_type.a.loc10_62.2 (%struct_type.a) [symbolic = %ptr.loc10_63.2 (constants.%ptr.eb5)] +// CHECK:STDOUT: %ptr.loc10_63.2: type = ptr_type @CallExplicitGenericParamWithGenericArg.%struct_type.a.loc10_62.2 (%struct_type.a) [symbolic = %ptr.loc10_63.2 (constants.%ptr.48a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) [symbolic = %require_complete (constants.%require_complete.624)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a.loc10_62.2) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.120)] +// CHECK:STDOUT: %require_complete: = require_complete_type @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) [symbolic = %require_complete (constants.%require_complete.86d)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a.loc10_62.2) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.6ad)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type) -> @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) { +// CHECK:STDOUT: fn(%T.param_patt: type) -> @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [template = constants.%ExplicitGenericParam] // CHECK:STDOUT: %T.ref.loc11: type = name_ref T, %T.loc10_43.1 [symbolic = %T.loc10_43.2 (constants.%T)] // CHECK:STDOUT: %struct_type.a.loc11: type = struct_type {.a: %T} [symbolic = %struct_type.a.loc10_62.2 (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.120)] -// CHECK:STDOUT: %ExplicitGenericParam.call: init @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) = call %ExplicitGenericParam.specific_fn.loc11_10.1() -// CHECK:STDOUT: %.loc11_39.1: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) = value_of_initializer %ExplicitGenericParam.call -// CHECK:STDOUT: %.loc11_39.2: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.eb5) = converted %ExplicitGenericParam.call, %.loc11_39.1 +// 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.6ad)] +// CHECK:STDOUT: %ExplicitGenericParam.call: init @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = call %ExplicitGenericParam.specific_fn.loc11_10.1() +// CHECK:STDOUT: %.loc11_39.1: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = value_of_initializer %ExplicitGenericParam.call +// CHECK:STDOUT: %.loc11_39.2: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = converted %ExplicitGenericParam.call, %.loc11_39.1 // CHECK:STDOUT: return %.loc11_39.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -329,11 +329,11 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%T) { // CHECK:STDOUT: %T.loc4_25.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_25.2 => constants.%T -// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.79f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.968 -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.645 +// CHECK:STDOUT: %require_complete => constants.%require_complete.6e5 +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.c0a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(%T.loc4_25.2) {} @@ -341,28 +341,28 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%i32) { // CHECK:STDOUT: %T.loc4_25.2 => constants.%i32 // CHECK:STDOUT: %T.patt.loc4_25.2 => constants.%i32 -// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.dc3 +// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.235 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.566 -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.1e2 +// CHECK:STDOUT: %require_complete => constants.%complete_type.3d0 +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.74e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallExplicitGenericParamWithGenericArg(constants.%T) { // CHECK:STDOUT: %T.loc10_43.2 => constants.%T // CHECK:STDOUT: %T.patt.loc10_43.2 => constants.%T // CHECK:STDOUT: %struct_type.a.loc10_62.2 => constants.%struct_type.a -// CHECK:STDOUT: %ptr.loc10_63.2 => constants.%ptr.eb5 +// CHECK:STDOUT: %ptr.loc10_63.2 => constants.%ptr.48a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%struct_type.a) { // CHECK:STDOUT: %T.loc4_25.2 => constants.%struct_type.a // CHECK:STDOUT: %T.patt.loc4_25.2 => constants.%struct_type.a -// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.eb5 +// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.48a // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.624 -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.120 +// CHECK:STDOUT: %require_complete => constants.%require_complete.86d +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.6ad // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(@CallExplicitGenericParamWithGenericArg.%struct_type.a.loc10_62.2) {} @@ -501,16 +501,16 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %ExplicitAndAlsoDeduced.type: type = fn_type @ExplicitAndAlsoDeduced [template] // CHECK:STDOUT: %ExplicitAndAlsoDeduced: %ExplicitAndAlsoDeduced.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.5bc: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T) [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.41d: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T) [symbolic] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [template] // CHECK:STDOUT: %CallExplicitAndAlsoDeduced.type: type = fn_type @CallExplicitAndAlsoDeduced [template] // CHECK:STDOUT: %CallExplicitAndAlsoDeduced: %CallExplicitAndAlsoDeduced.type = struct_value () [template] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.7c3: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%A) [template] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.720: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%A) [template] // CHECK:STDOUT: %A.val: %A = struct_value () [template] // CHECK:STDOUT: %complete_type.7ea: = complete_type_witness %ptr.6db [template] // CHECK:STDOUT: } @@ -536,18 +536,18 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc6_27.1, runtime_param [symbolic = %T.patt.loc6_27.2 (constants.%T.patt)] // CHECK:STDOUT: %x.patt: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = binding_pattern x // CHECK:STDOUT: %x.param_patt: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = value_param_pattern %x.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_46: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc6_47.1: type = ptr_type %T [symbolic = %ptr.loc6_47.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc6_47.1: type = ptr_type %T [symbolic = %ptr.loc6_47.2 (constants.%ptr.79f)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc6_27.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_27.2 (constants.%T)] // CHECK:STDOUT: %x.param: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = value_param runtime_param0 // CHECK:STDOUT: %T.ref.loc6_40: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)] // CHECK:STDOUT: %x: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitAndAlsoDeduced.decl: %CallExplicitAndAlsoDeduced.type = fn_decl @CallExplicitAndAlsoDeduced [template = constants.%CallExplicitAndAlsoDeduced] { // CHECK:STDOUT: %return.patt: %ptr.6db = return_slot_pattern @@ -571,22 +571,22 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: generic fn @ExplicitAndAlsoDeduced(%T.loc6_27.1: type) { // CHECK:STDOUT: %T.loc6_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_27.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc6_27.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_27.2 (constants.%T.patt)] -// CHECK:STDOUT: %ptr.loc6_47.2: type = ptr_type @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) [symbolic = %ptr.loc6_47.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc6_47.2: type = ptr_type @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) [symbolic = %ptr.loc6_47.2 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_43: = require_complete_type @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) [symbolic = %require_complete.loc6_43 (constants.%require_complete.968)] -// CHECK:STDOUT: %require_complete.loc6_38: = require_complete_type @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) [symbolic = %require_complete.loc6_38 (constants.%require_complete.db1)] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2: = specific_function constants.%ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T.loc6_27.2) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.5bc)] +// CHECK:STDOUT: %require_complete.loc6_43: = require_complete_type @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) [symbolic = %require_complete.loc6_43 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc6_38: = require_complete_type @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) [symbolic = %require_complete.loc6_38 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2: = specific_function constants.%ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T.loc6_27.2) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.41d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T)) -> @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) { +// CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T)) -> @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitAndAlsoDeduced.ref: %ExplicitAndAlsoDeduced.type = name_ref ExplicitAndAlsoDeduced, file.%ExplicitAndAlsoDeduced.decl [template = constants.%ExplicitAndAlsoDeduced] // CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)] // CHECK:STDOUT: %x.ref: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%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.5bc)] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) = call %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1(%x.ref) -// CHECK:STDOUT: %.loc7_38.1: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) = value_of_initializer %ExplicitAndAlsoDeduced.call -// CHECK:STDOUT: %.loc7_38.2: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.251) = converted %ExplicitAndAlsoDeduced.call, %.loc7_38.1 +// 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.41d)] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = call %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1(%x.ref) +// CHECK:STDOUT: %.loc7_38.1: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = value_of_initializer %ExplicitAndAlsoDeduced.call +// CHECK:STDOUT: %.loc7_38.2: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = converted %ExplicitAndAlsoDeduced.call, %.loc7_38.1 // CHECK:STDOUT: return %.loc7_38.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -596,7 +596,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %ExplicitAndAlsoDeduced.ref: %ExplicitAndAlsoDeduced.type = name_ref ExplicitAndAlsoDeduced, file.%ExplicitAndAlsoDeduced.decl [template = constants.%ExplicitAndAlsoDeduced] // CHECK:STDOUT: %A.ref.loc11: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %.loc11_37.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn: = specific_function %ExplicitAndAlsoDeduced.ref, @ExplicitAndAlsoDeduced(constants.%A) [template = constants.%ExplicitAndAlsoDeduced.specific_fn.7c3] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn: = specific_function %ExplicitAndAlsoDeduced.ref, @ExplicitAndAlsoDeduced(constants.%A) [template = constants.%ExplicitAndAlsoDeduced.specific_fn.720] // CHECK:STDOUT: %.loc11_37.2: ref %A = temporary_storage // CHECK:STDOUT: %.loc11_37.3: init %A = class_init (), %.loc11_37.2 [template = constants.%A.val] // CHECK:STDOUT: %.loc11_37.4: ref %A = temporary %.loc11_37.2, %.loc11_37.3 @@ -611,12 +611,12 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(constants.%T) { // CHECK:STDOUT: %T.loc6_27.2 => constants.%T // CHECK:STDOUT: %T.patt.loc6_27.2 => constants.%T -// CHECK:STDOUT: %ptr.loc6_47.2 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc6_47.2 => constants.%ptr.79f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_43 => constants.%require_complete.968 -// CHECK:STDOUT: %require_complete.loc6_38 => constants.%require_complete.db1 -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.5bc +// CHECK:STDOUT: %require_complete.loc6_43 => constants.%require_complete.6e5 +// CHECK:STDOUT: %require_complete.loc6_38 => constants.%require_complete.4ae +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.41d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(%T.loc6_27.2) {} @@ -629,7 +629,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_43 => constants.%complete_type.7ea // CHECK:STDOUT: %require_complete.loc6_38 => constants.%complete_type.357 -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.7c3 +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.720 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduce_implicit.carbon @@ -637,26 +637,26 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %ImplicitGenericParam.type: type = fn_type @ImplicitGenericParam [template] // CHECK:STDOUT: %ImplicitGenericParam: %ImplicitGenericParam.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.993: = specific_function %ImplicitGenericParam, @ImplicitGenericParam(%T) [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.fc1: = specific_function %ImplicitGenericParam, @ImplicitGenericParam(%T) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %CallImplicitGenericParam.type: type = fn_type @CallImplicitGenericParam [template] // CHECK:STDOUT: %CallImplicitGenericParam: %CallImplicitGenericParam.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.65b: = specific_function %ImplicitGenericParam, @ImplicitGenericParam(%i32) [template] -// CHECK:STDOUT: %complete_type.566: = complete_type_witness %ptr.dc3 [template] +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.752: = specific_function %ImplicitGenericParam, @ImplicitGenericParam(%i32) [template] +// CHECK:STDOUT: %complete_type.3d0: = complete_type_witness %ptr.235 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -674,81 +674,81 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_25.1, runtime_param [symbolic = %T.patt.loc4_25.2 (constants.%T.patt)] // CHECK:STDOUT: %x.patt: @ImplicitGenericParam.%T.loc4_25.2 (%T) = binding_pattern x // CHECK:STDOUT: %x.param_patt: @ImplicitGenericParam.%T.loc4_25.2 (%T) = value_param_pattern %x.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_45.1: type = ptr_type %T [symbolic = %ptr.loc4_45.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc4_45.1: type = ptr_type %T [symbolic = %ptr.loc4_45.2 (constants.%ptr.79f)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_25.2 (constants.%T)] // CHECK:STDOUT: %x.param: @ImplicitGenericParam.%T.loc4_25.2 (%T) = value_param runtime_param0 // CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] // CHECK:STDOUT: %x: @ImplicitGenericParam.%T.loc4_25.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitGenericParam.decl: %CallImplicitGenericParam.type = fn_decl @CallImplicitGenericParam [template = constants.%CallImplicitGenericParam] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.dc3 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.dc3 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %ptr.235 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.235 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc6_40: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_40: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32 [template = constants.%ptr.dc3] +// CHECK:STDOUT: %ptr: type = ptr_type %i32 [template = constants.%ptr.235] // CHECK:STDOUT: %n.param: %i32 = value_param runtime_param0 // CHECK:STDOUT: %.loc6: type = splice_block %i32.loc6_32 [template = constants.%i32] { // CHECK:STDOUT: %int_32.loc6_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc6_32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %n: %i32 = bind_name n, %n.param -// CHECK:STDOUT: %return.param: ref %ptr.dc3 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.dc3 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %ptr.235 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ImplicitGenericParam(%T.loc4_25.1: type) { // CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc4_25.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_25.2 (constants.%T.patt)] -// CHECK:STDOUT: %ptr.loc4_45.2: type = ptr_type @ImplicitGenericParam.%T.loc4_25.2 (%T) [symbolic = %ptr.loc4_45.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc4_45.2: type = ptr_type @ImplicitGenericParam.%T.loc4_25.2 (%T) [symbolic = %ptr.loc4_45.2 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4_41: = require_complete_type @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) [symbolic = %require_complete.loc4_41 (constants.%require_complete.968)] -// CHECK:STDOUT: %require_complete.loc4_36: = require_complete_type @ImplicitGenericParam.%T.loc4_25.2 (%T) [symbolic = %require_complete.loc4_36 (constants.%require_complete.db1)] -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2: = specific_function constants.%ImplicitGenericParam, @ImplicitGenericParam(%T.loc4_25.2) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.993)] +// CHECK:STDOUT: %require_complete.loc4_41: = require_complete_type @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) [symbolic = %require_complete.loc4_41 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc4_36: = require_complete_type @ImplicitGenericParam.%T.loc4_25.2 (%T) [symbolic = %require_complete.loc4_36 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2: = specific_function constants.%ImplicitGenericParam, @ImplicitGenericParam(%T.loc4_25.2) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.fc1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @ImplicitGenericParam.%T.loc4_25.2 (%T)) -> @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) { +// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @ImplicitGenericParam.%T.loc4_25.2 (%T)) -> @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ImplicitGenericParam.ref: %ImplicitGenericParam.type = name_ref ImplicitGenericParam, file.%ImplicitGenericParam.decl [template = constants.%ImplicitGenericParam] // CHECK:STDOUT: %x.ref: @ImplicitGenericParam.%T.loc4_25.2 (%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.993)] -// CHECK:STDOUT: %ImplicitGenericParam.call: init @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) = call %ImplicitGenericParam.specific_fn.loc4_56.1(%x.ref) -// CHECK:STDOUT: %.loc4_79.1: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) = value_of_initializer %ImplicitGenericParam.call -// CHECK:STDOUT: %.loc4_79.2: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.251) = converted %ImplicitGenericParam.call, %.loc4_79.1 +// 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.fc1)] +// CHECK:STDOUT: %ImplicitGenericParam.call: init @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = call %ImplicitGenericParam.specific_fn.loc4_56.1(%x.ref) +// CHECK:STDOUT: %.loc4_79.1: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = value_of_initializer %ImplicitGenericParam.call +// CHECK:STDOUT: %.loc4_79.2: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = converted %ImplicitGenericParam.call, %.loc4_79.1 // CHECK:STDOUT: return %.loc4_79.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallImplicitGenericParam(%n.param_patt: %i32) -> %ptr.dc3 { +// CHECK:STDOUT: fn @CallImplicitGenericParam(%n.param_patt: %i32) -> %ptr.235 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ImplicitGenericParam.ref: %ImplicitGenericParam.type = name_ref ImplicitGenericParam, file.%ImplicitGenericParam.decl [template = constants.%ImplicitGenericParam] // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn: = specific_function %ImplicitGenericParam.ref, @ImplicitGenericParam(constants.%i32) [template = constants.%ImplicitGenericParam.specific_fn.65b] -// CHECK:STDOUT: %ImplicitGenericParam.call: init %ptr.dc3 = call %ImplicitGenericParam.specific_fn(%n.ref) -// CHECK:STDOUT: %.loc7_33.1: %ptr.dc3 = value_of_initializer %ImplicitGenericParam.call -// CHECK:STDOUT: %.loc7_33.2: %ptr.dc3 = converted %ImplicitGenericParam.call, %.loc7_33.1 +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn: = specific_function %ImplicitGenericParam.ref, @ImplicitGenericParam(constants.%i32) [template = constants.%ImplicitGenericParam.specific_fn.752] +// CHECK:STDOUT: %ImplicitGenericParam.call: init %ptr.235 = call %ImplicitGenericParam.specific_fn(%n.ref) +// CHECK:STDOUT: %.loc7_33.1: %ptr.235 = value_of_initializer %ImplicitGenericParam.call +// CHECK:STDOUT: %.loc7_33.2: %ptr.235 = converted %ImplicitGenericParam.call, %.loc7_33.1 // CHECK:STDOUT: return %.loc7_33.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(constants.%T) { // CHECK:STDOUT: %T.loc4_25.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_25.2 => constants.%T -// CHECK:STDOUT: %ptr.loc4_45.2 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc4_45.2 => constants.%ptr.79f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4_41 => constants.%require_complete.968 -// CHECK:STDOUT: %require_complete.loc4_36 => constants.%require_complete.db1 -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.993 +// CHECK:STDOUT: %require_complete.loc4_41 => constants.%require_complete.6e5 +// CHECK:STDOUT: %require_complete.loc4_36 => constants.%require_complete.4ae +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.fc1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(%T.loc4_25.2) {} @@ -756,12 +756,12 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: specific @ImplicitGenericParam(constants.%i32) { // CHECK:STDOUT: %T.loc4_25.2 => constants.%i32 // CHECK:STDOUT: %T.patt.loc4_25.2 => constants.%i32 -// CHECK:STDOUT: %ptr.loc4_45.2 => constants.%ptr.dc3 +// CHECK:STDOUT: %ptr.loc4_45.2 => constants.%ptr.235 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4_41 => constants.%complete_type.566 +// CHECK:STDOUT: %require_complete.loc4_41 => constants.%complete_type.3d0 // CHECK:STDOUT: %require_complete.loc4_36 => constants.%complete_type.f8a -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.65b +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.752 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduce_nested_tuple.carbon @@ -773,32 +773,32 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.5a7: type = tuple_type (%T, %i32) [symbolic] +// CHECK:STDOUT: %tuple.type.f83: type = tuple_type (%T, %i32) [symbolic] // CHECK:STDOUT: %TupleParam.type: type = fn_type @TupleParam [template] // CHECK:STDOUT: %TupleParam: %TupleParam.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.596: = require_complete_type %tuple.type.5a7 [symbolic] +// CHECK:STDOUT: %require_complete.9c1: = require_complete_type %tuple.type.f83 [symbolic] // CHECK:STDOUT: %CallTupleParam.type: type = fn_type @CallTupleParam [template] // CHECK:STDOUT: %CallTupleParam: %CallTupleParam.type = struct_value () [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple.type.abd: type = tuple_type (Core.IntLiteral, %i32) [template] +// CHECK:STDOUT: %tuple.type.4c8: type = tuple_type (Core.IntLiteral, %i32) [template] // CHECK:STDOUT: %TupleParam.specific_fn: = specific_function %TupleParam, @TupleParam(Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %tuple: %tuple.type.abd = tuple_value (%int_1, %int_2.166) [template] -// CHECK:STDOUT: %complete_type.5b7: = complete_type_witness %tuple.type.abd [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %tuple: %tuple.type.4c8 = tuple_value (%int_1, %int_2.ef8) [template] +// CHECK:STDOUT: %complete_type.c49: = complete_type_witness %tuple.type.4c8 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -814,20 +814,20 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %TupleParam.decl: %TupleParam.type = fn_decl @TupleParam [template = constants.%TupleParam] { // CHECK:STDOUT: %T.patt.loc4_15.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_15.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_15.1, runtime_param [symbolic = %T.patt.loc4_15.2 (constants.%T.patt)] -// CHECK:STDOUT: %x.patt: @TupleParam.%tuple.type (%tuple.type.5a7) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @TupleParam.%tuple.type (%tuple.type.5a7) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: @TupleParam.%tuple.type (%tuple.type.f83) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @TupleParam.%tuple.type (%tuple.type.f83) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @TupleParam.%tuple.type (%tuple.type.5a7) = value_param runtime_param0 -// CHECK:STDOUT: %.loc4_35.1: type = splice_block %.loc4_35.3 [symbolic = %tuple.type (constants.%tuple.type.5a7)] { +// CHECK:STDOUT: %x.param: @TupleParam.%tuple.type (%tuple.type.f83) = value_param runtime_param0 +// CHECK:STDOUT: %.loc4_35.1: type = splice_block %.loc4_35.3 [symbolic = %tuple.type (constants.%tuple.type.f83)] { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc4_35.2: %tuple.type.24b = tuple_literal (%T.ref, %i32) -// CHECK:STDOUT: %.loc4_35.3: type = converted %.loc4_35.2, constants.%tuple.type.5a7 [symbolic = %tuple.type (constants.%tuple.type.5a7)] +// CHECK:STDOUT: %.loc4_35.3: type = converted %.loc4_35.2, constants.%tuple.type.f83 [symbolic = %tuple.type (constants.%tuple.type.f83)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @TupleParam.%tuple.type (%tuple.type.5a7) = bind_name x, %x.param +// CHECK:STDOUT: %x: @TupleParam.%tuple.type (%tuple.type.f83) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallTupleParam.decl: %CallTupleParam.type = fn_decl @CallTupleParam [template = constants.%CallTupleParam] {} {} // CHECK:STDOUT: } @@ -835,12 +835,12 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: generic fn @TupleParam(%T.loc4_15.1: type) { // CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc4_15.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_15.2 (constants.%T.patt)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@TupleParam.%T.loc4_15.2 (%T), %i32) [symbolic = %tuple.type (constants.%tuple.type.5a7)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@TupleParam.%T.loc4_15.2 (%T), %i32) [symbolic = %tuple.type (constants.%tuple.type.f83)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @TupleParam.%tuple.type (%tuple.type.5a7) [symbolic = %require_complete (constants.%require_complete.596)] +// CHECK:STDOUT: %require_complete: = require_complete_type @TupleParam.%tuple.type (%tuple.type.f83) [symbolic = %require_complete (constants.%require_complete.9c1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @TupleParam.%tuple.type (%tuple.type.5a7)) { +// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @TupleParam.%tuple.type (%tuple.type.f83)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -853,14 +853,14 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc7_19.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) // CHECK:STDOUT: %TupleParam.specific_fn: = specific_function %TupleParam.ref, @TupleParam(Core.IntLiteral) [template = constants.%TupleParam.specific_fn] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc7_19.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc7_19.3: %i32 = converted %int_2, %.loc7_19.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %tuple: %tuple.type.abd = tuple_value (%int_1, %.loc7_19.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc7_19.4: %tuple.type.abd = converted %.loc7_19.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc7_19.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc7_19.3: %i32 = converted %int_2, %.loc7_19.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %tuple: %tuple.type.4c8 = tuple_value (%int_1, %.loc7_19.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc7_19.4: %tuple.type.4c8 = converted %.loc7_19.1, %tuple [template = constants.%tuple] // CHECK:STDOUT: %TupleParam.call: init %empty_tuple.type = call %TupleParam.specific_fn(%.loc7_19.4) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -868,16 +868,16 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: specific @TupleParam(constants.%T) { // CHECK:STDOUT: %T.loc4_15.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_15.2 => constants.%T -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.5a7 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.f83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TupleParam(Core.IntLiteral) { // CHECK:STDOUT: %T.loc4_15.2 => Core.IntLiteral // CHECK:STDOUT: %T.patt.loc4_15.2 => Core.IntLiteral -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.abd +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.4c8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.5b7 +// CHECK:STDOUT: %require_complete => constants.%complete_type.c49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduce_nested_struct.carbon @@ -888,32 +888,32 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.b.145: type = struct_type {.a: %T, .b: %i32} [symbolic] +// CHECK:STDOUT: %struct_type.a.b.46e: type = struct_type {.a: %T, .b: %i32} [symbolic] // CHECK:STDOUT: %StructParam.type: type = fn_type @StructParam [template] // CHECK:STDOUT: %StructParam: %StructParam.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.d9e: = require_complete_type %struct_type.a.b.145 [symbolic] +// CHECK:STDOUT: %require_complete.23a: = require_complete_type %struct_type.a.b.46e [symbolic] // CHECK:STDOUT: %CallStructParam.type: type = fn_type @CallStructParam [template] // CHECK:STDOUT: %CallStructParam: %CallStructParam.type = struct_value () [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %struct_type.a.b.788: type = struct_type {.a: Core.IntLiteral, .b: %i32} [template] +// CHECK:STDOUT: %struct_type.a.b.a13: type = struct_type {.a: Core.IntLiteral, .b: %i32} [template] // CHECK:STDOUT: %StructParam.specific_fn: = specific_function %StructParam, @StructParam(Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %struct: %struct_type.a.b.788 = struct_value (%int_1, %int_2.166) [template] -// CHECK:STDOUT: %complete_type.d03: = complete_type_witness %struct_type.a.b.788 [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %struct: %struct_type.a.b.a13 = struct_value (%int_1, %int_2.ef8) [template] +// CHECK:STDOUT: %complete_type.a4a: = complete_type_witness %struct_type.a.b.a13 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -929,19 +929,19 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %StructParam.decl: %StructParam.type = fn_decl @StructParam [template = constants.%StructParam] { // CHECK:STDOUT: %T.patt.loc4_16.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_16.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_16.1, runtime_param [symbolic = %T.patt.loc4_16.2 (constants.%T.patt)] -// CHECK:STDOUT: %x.patt: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.145) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.145) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_16.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.145) = value_param runtime_param0 -// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.a.b.loc4_44.1 [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.145)] { +// CHECK:STDOUT: %x.param: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e) = value_param runtime_param0 +// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.a.b.loc4_44.1 [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.46e)] { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_16.1 [symbolic = %T.loc4_16.2 (constants.%T)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc4_44.1: type = struct_type {.a: %T, .b: %i32} [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.145)] +// CHECK:STDOUT: %struct_type.a.b.loc4_44.1: type = struct_type {.a: %T, .b: %i32} [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.46e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.145) = bind_name x, %x.param +// CHECK:STDOUT: %x: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallStructParam.decl: %CallStructParam.type = fn_decl @CallStructParam [template = constants.%CallStructParam] {} {} // CHECK:STDOUT: } @@ -949,12 +949,12 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: generic fn @StructParam(%T.loc4_16.1: type) { // CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc4_16.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_16.2 (constants.%T.patt)] -// CHECK:STDOUT: %struct_type.a.b.loc4_44.2: type = struct_type {.a: @StructParam.%T.loc4_16.2 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.145)] +// CHECK:STDOUT: %struct_type.a.b.loc4_44.2: type = struct_type {.a: @StructParam.%T.loc4_16.2 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.46e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.145) [symbolic = %require_complete (constants.%require_complete.d9e)] +// CHECK:STDOUT: %require_complete: = require_complete_type @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e) [symbolic = %require_complete (constants.%require_complete.23a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.145)) { +// CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -967,14 +967,14 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc7_30.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %StructParam.specific_fn: = specific_function %StructParam.ref, @StructParam(Core.IntLiteral) [template = constants.%StructParam.specific_fn] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc7_30.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc7_30.3: %i32 = converted %int_2, %.loc7_30.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %struct: %struct_type.a.b.788 = struct_value (%int_1, %.loc7_30.3) [template = constants.%struct] -// CHECK:STDOUT: %.loc7_30.4: %struct_type.a.b.788 = converted %.loc7_30.1, %struct [template = constants.%struct] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc7_30.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc7_30.3: %i32 = converted %int_2, %.loc7_30.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %struct: %struct_type.a.b.a13 = struct_value (%int_1, %.loc7_30.3) [template = constants.%struct] +// CHECK:STDOUT: %.loc7_30.4: %struct_type.a.b.a13 = converted %.loc7_30.1, %struct [template = constants.%struct] // CHECK:STDOUT: %StructParam.call: init %empty_tuple.type = call %StructParam.specific_fn(%.loc7_30.4) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -982,16 +982,16 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: specific @StructParam(constants.%T) { // CHECK:STDOUT: %T.loc4_16.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_16.2 => constants.%T -// CHECK:STDOUT: %struct_type.a.b.loc4_44.2 => constants.%struct_type.a.b.145 +// CHECK:STDOUT: %struct_type.a.b.loc4_44.2 => constants.%struct_type.a.b.46e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @StructParam(Core.IntLiteral) { // CHECK:STDOUT: %T.loc4_16.2 => Core.IntLiteral // CHECK:STDOUT: %T.patt.loc4_16.2 => Core.IntLiteral -// CHECK:STDOUT: %struct_type.a.b.loc4_44.2 => constants.%struct_type.a.b.788 +// CHECK:STDOUT: %struct_type.a.b.loc4_44.2 => constants.%struct_type.a.b.a13 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.d03 +// CHECK:STDOUT: %require_complete => constants.%complete_type.a4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_bigger_struct.carbon @@ -1004,7 +1004,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %struct_type.c.d.e: type = struct_type {.c: %T, .d: %i32, .e: %i32} [symbolic] // CHECK:STDOUT: %BigStructParam.type: type = fn_type @BigStructParam [template] // CHECK:STDOUT: %BigStructParam: %BigStructParam.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.e0d: = require_complete_type %struct_type.c.d.e [symbolic] +// CHECK:STDOUT: %require_complete.694: = require_complete_type %struct_type.c.d.e [symbolic] // CHECK:STDOUT: %CallBigStructParam.type: type = fn_type @CallBigStructParam [template] // CHECK:STDOUT: %CallBigStructParam: %CallBigStructParam.type = struct_value () [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] @@ -1014,7 +1014,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1055,7 +1055,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %struct_type.c.d.e.loc4_56.2: type = struct_type {.c: @BigStructParam.%T.loc4_19.2 (%T), .d: %i32, .e: %i32} [symbolic = %struct_type.c.d.e.loc4_56.2 (constants.%struct_type.c.d.e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @BigStructParam.%struct_type.c.d.e.loc4_56.2 (%struct_type.c.d.e) [symbolic = %require_complete (constants.%require_complete.e0d)] +// CHECK:STDOUT: %require_complete: = require_complete_type @BigStructParam.%struct_type.c.d.e.loc4_56.2 (%struct_type.c.d.e) [symbolic = %require_complete (constants.%require_complete.694)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @BigStructParam.%struct_type.c.d.e.loc4_56.2 (%struct_type.c.d.e)) { // CHECK:STDOUT: !entry: @@ -1088,7 +1088,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %struct_type.f.g: type = struct_type {.f: %T, .g: %i32} [symbolic] // CHECK:STDOUT: %SmallStructParam.type: type = fn_type @SmallStructParam [template] // CHECK:STDOUT: %SmallStructParam: %SmallStructParam.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.64e: = require_complete_type %struct_type.f.g [symbolic] +// CHECK:STDOUT: %require_complete.dad: = require_complete_type %struct_type.f.g [symbolic] // CHECK:STDOUT: %CallSmallStructParam.type: type = fn_type @CallSmallStructParam [template] // CHECK:STDOUT: %CallSmallStructParam: %CallSmallStructParam.type = struct_value () [template] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template] @@ -1099,7 +1099,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1138,7 +1138,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %struct_type.f.g.loc4_49.2: type = struct_type {.f: @SmallStructParam.%T.loc4_21.2 (%T), .g: %i32} [symbolic = %struct_type.f.g.loc4_49.2 (constants.%struct_type.f.g)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @SmallStructParam.%struct_type.f.g.loc4_49.2 (%struct_type.f.g) [symbolic = %require_complete (constants.%require_complete.64e)] +// CHECK:STDOUT: %require_complete: = require_complete_type @SmallStructParam.%struct_type.f.g.loc4_49.2 (%struct_type.f.g) [symbolic = %require_complete (constants.%require_complete.dad)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @SmallStructParam.%struct_type.f.g.loc4_49.2 (%struct_type.f.g)) { // CHECK:STDOUT: !entry: @@ -1172,7 +1172,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %struct_type.i.different: type = struct_type {.i: %T, .different: %i32} [symbolic] // CHECK:STDOUT: %WrongNameStructParam.type: type = fn_type @WrongNameStructParam [template] // CHECK:STDOUT: %WrongNameStructParam: %WrongNameStructParam.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.d65: = require_complete_type %struct_type.i.different [symbolic] +// CHECK:STDOUT: %require_complete.411: = require_complete_type %struct_type.i.different [symbolic] // CHECK:STDOUT: %CallWrongNameStructParam.type: type = fn_type @CallWrongNameStructParam [template] // CHECK:STDOUT: %CallWrongNameStructParam: %CallWrongNameStructParam.type = struct_value () [template] // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [template] @@ -1182,7 +1182,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1221,7 +1221,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %struct_type.i.different.loc4_61.2: type = struct_type {.i: @WrongNameStructParam.%T.loc4_25.2 (%T), .different: %i32} [symbolic = %struct_type.i.different.loc4_61.2 (constants.%struct_type.i.different)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @WrongNameStructParam.%struct_type.i.different.loc4_61.2 (%struct_type.i.different) [symbolic = %require_complete (constants.%require_complete.d65)] +// CHECK:STDOUT: %require_complete: = require_complete_type @WrongNameStructParam.%struct_type.i.different.loc4_61.2 (%struct_type.i.different) [symbolic = %require_complete (constants.%require_complete.411)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @WrongNameStructParam.%struct_type.i.different.loc4_61.2 (%struct_type.i.different)) { // CHECK:STDOUT: !entry: @@ -1254,7 +1254,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %struct_type.first.second: type = struct_type {.first: %T, .second: %i32} [symbolic] // CHECK:STDOUT: %WrongOrderStructParam.type: type = fn_type @WrongOrderStructParam [template] // CHECK:STDOUT: %WrongOrderStructParam: %WrongOrderStructParam.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.231: = require_complete_type %struct_type.first.second [symbolic] +// CHECK:STDOUT: %require_complete.d6e: = require_complete_type %struct_type.first.second [symbolic] // CHECK:STDOUT: %CallWrongOrderStructParam.type: type = fn_type @CallWrongOrderStructParam [template] // CHECK:STDOUT: %CallWrongOrderStructParam: %CallWrongOrderStructParam.type = struct_value () [template] // CHECK:STDOUT: %int_11: Core.IntLiteral = int_value 11 [template] @@ -1264,7 +1264,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1303,7 +1303,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %struct_type.first.second.loc4_63.2: type = struct_type {.first: @WrongOrderStructParam.%T.loc4_26.2 (%T), .second: %i32} [symbolic = %struct_type.first.second.loc4_63.2 (constants.%struct_type.first.second)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @WrongOrderStructParam.%struct_type.first.second.loc4_63.2 (%struct_type.first.second) [symbolic = %require_complete (constants.%require_complete.231)] +// CHECK:STDOUT: %require_complete: = require_complete_type @WrongOrderStructParam.%struct_type.first.second.loc4_63.2 (%struct_type.first.second) [symbolic = %require_complete (constants.%require_complete.d6e)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @WrongOrderStructParam.%struct_type.first.second.loc4_63.2 (%struct_type.first.second)) { // CHECK:STDOUT: !entry: diff --git a/toolchain/check/testdata/function/generic/no_prelude/call.carbon b/toolchain/check/testdata/function/generic/no_prelude/call.carbon index acd9b3f60277..6428b18c59d2 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/call.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/call.carbon @@ -59,21 +59,21 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Function.type: type = fn_type @Function [template] // CHECK:STDOUT: %Function: %Function.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [template] // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [template] -// CHECK:STDOUT: %Function.specific_fn.f85: = specific_function %Function, @Function(%T) [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %Function.specific_fn.46f: = specific_function %Function, @Function(%T) [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %CallGenericPtr.type: type = fn_type @CallGenericPtr [template] // CHECK:STDOUT: %CallGenericPtr: %CallGenericPtr.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %Function.specific_fn.969: = specific_function %Function, @Function(%ptr.251) [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %Function.specific_fn.4d7: = specific_function %Function, @Function(%ptr.79f) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %CallSpecific.type: type = fn_type @CallSpecific [template] // CHECK:STDOUT: %CallSpecific: %CallSpecific.type = struct_value () [template] -// CHECK:STDOUT: %Function.specific_fn.133: = specific_function %Function, @Function(%C) [template] +// CHECK:STDOUT: %Function.specific_fn.1b5: = specific_function %Function, @Function(%C) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -121,23 +121,23 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %CallGenericPtr.decl: %CallGenericPtr.type = fn_decl @CallGenericPtr [template = constants.%CallGenericPtr] { // CHECK:STDOUT: %T.patt.loc12_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_19.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc12_19.1, runtime_param [symbolic = %T.patt.loc12_19.2 (constants.%T.patt)] -// CHECK:STDOUT: %x.patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = value_param_pattern %x.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %x.patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_40: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc12_40: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc12_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = value_param runtime_param0 -// CHECK:STDOUT: %.loc12: type = splice_block %ptr.loc12_33.1 [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] { +// CHECK:STDOUT: %x.param: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_param runtime_param0 +// CHECK:STDOUT: %.loc12: type = splice_block %ptr.loc12_33.1 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] { // CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_33.1: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc12_33.1: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %x: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %CallSpecific.decl: %CallSpecific.type = fn_decl @CallSpecific [template = constants.%CallSpecific] { @@ -168,7 +168,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Function.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Function.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @Function.%T.loc4_13.2 (%T)) -> @Function.%T.loc4_13.2 (%T) { // CHECK:STDOUT: !entry: @@ -182,15 +182,15 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %T.patt.loc8_16.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_16.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @CallGeneric.%T.loc8_16.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Function.specific_fn.loc9_10.2: = specific_function constants.%Function, @Function(%T.loc8_16.2) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.f85)] +// CHECK:STDOUT: %require_complete: = require_complete_type @CallGeneric.%T.loc8_16.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Function.specific_fn.loc9_10.2: = specific_function constants.%Function, @Function(%T.loc8_16.2) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @CallGeneric.%T.loc8_16.2 (%T)) -> @CallGeneric.%T.loc8_16.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] // CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] // CHECK:STDOUT: %x.ref: @CallGeneric.%T.loc8_16.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %Function.specific_fn.loc9_10.1: = specific_function %Function.ref, @Function(constants.%T) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.f85)] +// CHECK:STDOUT: %Function.specific_fn.loc9_10.1: = specific_function %Function.ref, @Function(constants.%T) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] // CHECK:STDOUT: %Function.call: init @CallGeneric.%T.loc8_16.2 (%T) = call %Function.specific_fn.loc9_10.1(%x.ref) // CHECK:STDOUT: %.loc9_24.1: @CallGeneric.%T.loc8_16.2 (%T) = value_of_initializer %Function.call // CHECK:STDOUT: %.loc9_24.2: @CallGeneric.%T.loc8_16.2 (%T) = converted %Function.call, %.loc9_24.1 @@ -201,22 +201,22 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: generic fn @CallGenericPtr(%T.loc12_19.1: type) { // CHECK:STDOUT: %T.loc12_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc12_19.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_19.2 (constants.%T.patt)] -// CHECK:STDOUT: %ptr.loc12_33.2: type = ptr_type @CallGenericPtr.%T.loc12_19.2 (%T) [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc12_33.2: type = ptr_type @CallGenericPtr.%T.loc12_19.2 (%T) [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) [symbolic = %require_complete (constants.%require_complete.968)] -// CHECK:STDOUT: %Function.specific_fn.loc13_10.2: = specific_function constants.%Function, @Function(%ptr.loc12_33.2) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.969)] +// CHECK:STDOUT: %require_complete: = require_complete_type @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) [symbolic = %require_complete (constants.%require_complete.6e5)] +// CHECK:STDOUT: %Function.specific_fn.loc13_10.2: = specific_function constants.%Function, @Function(%ptr.loc12_33.2) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251)) -> @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) { +// CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f)) -> @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] // CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc13: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] -// CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = name_ref x, %x -// CHECK:STDOUT: %Function.specific_fn.loc13_10.1: = specific_function %Function.ref, @Function(constants.%ptr.251) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.969)] -// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = call %Function.specific_fn.loc13_10.1(%x.ref) -// CHECK:STDOUT: %.loc13_25.1: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = value_of_initializer %Function.call -// CHECK:STDOUT: %.loc13_25.2: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = converted %Function.call, %.loc13_25.1 +// CHECK:STDOUT: %ptr.loc13: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = name_ref x, %x +// CHECK:STDOUT: %Function.specific_fn.loc13_10.1: = specific_function %Function.ref, @Function(constants.%ptr.79f) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] +// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = call %Function.specific_fn.loc13_10.1(%x.ref) +// CHECK:STDOUT: %.loc13_25.1: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc13_25.2: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = converted %Function.call, %.loc13_25.1 // CHECK:STDOUT: return %.loc13_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -226,7 +226,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] // CHECK:STDOUT: %C.ref.loc19: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %x.ref: %C = name_ref x, %x -// CHECK:STDOUT: %Function.specific_fn: = specific_function %Function.ref, @Function(constants.%C) [template = constants.%Function.specific_fn.133] +// CHECK:STDOUT: %Function.specific_fn: = specific_function %Function.ref, @Function(constants.%C) [template = constants.%Function.specific_fn.1b5] // CHECK:STDOUT: %.loc18: ref %C = splice_block %return {} // CHECK:STDOUT: %Function.call: init %C = call %Function.specific_fn(%x.ref) to %.loc18 // CHECK:STDOUT: return %Function.call to %return @@ -237,7 +237,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T) { @@ -250,15 +250,15 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: specific @CallGenericPtr(constants.%T) { // CHECK:STDOUT: %T.loc12_19.2 => constants.%T // CHECK:STDOUT: %T.patt.loc12_19.2 => constants.%T -// CHECK:STDOUT: %ptr.loc12_33.2 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc12_33.2 => constants.%ptr.79f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Function(constants.%ptr.251) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.251 -// CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%ptr.251 +// CHECK:STDOUT: specific @Function(constants.%ptr.79f) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%ptr.79f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.968 +// CHECK:STDOUT: %require_complete => constants.%require_complete.6e5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(@CallGenericPtr.%ptr.loc12_33.2) {} @@ -278,21 +278,21 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Function.type: type = fn_type @Function [template] // CHECK:STDOUT: %Function: %Function.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [template] // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [template] -// CHECK:STDOUT: %Function.specific_fn.f85: = specific_function %Function, @Function(%T) [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %Function.specific_fn.46f: = specific_function %Function, @Function(%T) [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %CallGenericPtr.type: type = fn_type @CallGenericPtr [template] // CHECK:STDOUT: %CallGenericPtr: %CallGenericPtr.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %Function.specific_fn.969: = specific_function %Function, @Function(%ptr.251) [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %Function.specific_fn.4d7: = specific_function %Function, @Function(%ptr.79f) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %CallSpecific.type: type = fn_type @CallSpecific [template] // CHECK:STDOUT: %CallSpecific: %CallSpecific.type = struct_value () [template] -// CHECK:STDOUT: %Function.specific_fn.133: = specific_function %Function, @Function(%C) [template] +// CHECK:STDOUT: %Function.specific_fn.1b5: = specific_function %Function, @Function(%C) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -340,23 +340,23 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %CallGenericPtr.decl: %CallGenericPtr.type = fn_decl @CallGenericPtr [template = constants.%CallGenericPtr] { // CHECK:STDOUT: %T.patt.loc12_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_19.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc12_19.1, runtime_param [symbolic = %T.patt.loc12_19.2 (constants.%T.patt)] -// CHECK:STDOUT: %x.patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = value_param_pattern %x.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %x.patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_40: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc12_40: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc12_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = value_param runtime_param0 -// CHECK:STDOUT: %.loc12: type = splice_block %ptr.loc12_33.1 [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] { +// CHECK:STDOUT: %x.param: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_param runtime_param0 +// CHECK:STDOUT: %.loc12: type = splice_block %ptr.loc12_33.1 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] { // CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_33.1: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc12_33.1: type = ptr_type %T [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %x: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %CallSpecific.decl: %CallSpecific.type = fn_decl @CallSpecific [template = constants.%CallSpecific] { @@ -387,7 +387,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Function.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Function.%T.loc4_13.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @Function.%T.loc4_13.2 (%T)) -> @Function.%T.loc4_13.2 (%T) { // CHECK:STDOUT: !entry: @@ -401,14 +401,14 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %T.patt.loc8_16.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_16.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @CallGeneric.%T.loc8_16.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Function.specific_fn.loc9_10.2: = specific_function constants.%Function, @Function(%T.loc8_16.2) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.f85)] +// CHECK:STDOUT: %require_complete: = require_complete_type @CallGeneric.%T.loc8_16.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Function.specific_fn.loc9_10.2: = specific_function constants.%Function, @Function(%T.loc8_16.2) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @CallGeneric.%T.loc8_16.2 (%T)) -> @CallGeneric.%T.loc8_16.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] // CHECK:STDOUT: %x.ref: @CallGeneric.%T.loc8_16.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %Function.specific_fn.loc9_10.1: = specific_function %Function.ref, @Function(constants.%T) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.f85)] +// CHECK:STDOUT: %Function.specific_fn.loc9_10.1: = specific_function %Function.ref, @Function(constants.%T) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] // CHECK:STDOUT: %Function.call: init @CallGeneric.%T.loc8_16.2 (%T) = call %Function.specific_fn.loc9_10.1(%x.ref) // CHECK:STDOUT: %.loc9_21.1: @CallGeneric.%T.loc8_16.2 (%T) = value_of_initializer %Function.call // CHECK:STDOUT: %.loc9_21.2: @CallGeneric.%T.loc8_16.2 (%T) = converted %Function.call, %.loc9_21.1 @@ -419,20 +419,20 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: generic fn @CallGenericPtr(%T.loc12_19.1: type) { // CHECK:STDOUT: %T.loc12_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc12_19.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_19.2 (constants.%T.patt)] -// CHECK:STDOUT: %ptr.loc12_33.2: type = ptr_type @CallGenericPtr.%T.loc12_19.2 (%T) [symbolic = %ptr.loc12_33.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc12_33.2: type = ptr_type @CallGenericPtr.%T.loc12_19.2 (%T) [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) [symbolic = %require_complete (constants.%require_complete.968)] -// CHECK:STDOUT: %Function.specific_fn.loc13_10.2: = specific_function constants.%Function, @Function(%ptr.loc12_33.2) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.969)] +// CHECK:STDOUT: %require_complete: = require_complete_type @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) [symbolic = %require_complete (constants.%require_complete.6e5)] +// CHECK:STDOUT: %Function.specific_fn.loc13_10.2: = specific_function constants.%Function, @Function(%ptr.loc12_33.2) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251)) -> @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) { +// CHECK:STDOUT: fn(%T.param_patt: type, %x.param_patt: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f)) -> @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] -// CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = name_ref x, %x -// CHECK:STDOUT: %Function.specific_fn.loc13_10.1: = specific_function %Function.ref, @Function(constants.%ptr.251) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.969)] -// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = call %Function.specific_fn.loc13_10.1(%x.ref) -// CHECK:STDOUT: %.loc13_21.1: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = value_of_initializer %Function.call -// CHECK:STDOUT: %.loc13_21.2: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.251) = converted %Function.call, %.loc13_21.1 +// CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = name_ref x, %x +// CHECK:STDOUT: %Function.specific_fn.loc13_10.1: = specific_function %Function.ref, @Function(constants.%ptr.79f) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] +// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = call %Function.specific_fn.loc13_10.1(%x.ref) +// CHECK:STDOUT: %.loc13_21.1: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc13_21.2: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = converted %Function.call, %.loc13_21.1 // CHECK:STDOUT: return %.loc13_21.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -441,7 +441,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] // CHECK:STDOUT: %x.ref: %C = name_ref x, %x -// CHECK:STDOUT: %Function.specific_fn: = specific_function %Function.ref, @Function(constants.%C) [template = constants.%Function.specific_fn.133] +// CHECK:STDOUT: %Function.specific_fn: = specific_function %Function.ref, @Function(constants.%C) [template = constants.%Function.specific_fn.1b5] // CHECK:STDOUT: %.loc18: ref %C = splice_block %return {} // CHECK:STDOUT: %Function.call: init %C = call %Function.specific_fn(%x.ref) to %.loc18 // CHECK:STDOUT: return %Function.call to %return @@ -452,7 +452,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T) { @@ -465,15 +465,15 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: specific @CallGenericPtr(constants.%T) { // CHECK:STDOUT: %T.loc12_19.2 => constants.%T // CHECK:STDOUT: %T.patt.loc12_19.2 => constants.%T -// CHECK:STDOUT: %ptr.loc12_33.2 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc12_33.2 => constants.%ptr.79f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Function(constants.%ptr.251) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.251 -// CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%ptr.251 +// CHECK:STDOUT: specific @Function(constants.%ptr.79f) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%ptr.79f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.968 +// CHECK:STDOUT: %require_complete => constants.%require_complete.6e5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(@CallGenericPtr.%ptr.loc12_33.2) {} diff --git a/toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon b/toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon index bc225780794e..b45cbaaa613f 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon @@ -26,8 +26,8 @@ fn F(T:! type, U:! type) { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr [symbolic] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr [symbolic] +// CHECK:STDOUT: %require_complete.b54: = require_complete_type %U [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -55,8 +55,8 @@ fn F(T:! type, U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %ptr: type = ptr_type @F.%T.loc11_6.2 (%T) [symbolic = %ptr (constants.%ptr)] -// CHECK:STDOUT: %require_complete.loc12: = require_complete_type @F.%ptr (%ptr) [symbolic = %require_complete.loc12 (constants.%require_complete.968)] -// CHECK:STDOUT: %require_complete.loc16: = require_complete_type @F.%U.loc11_16.2 (%U) [symbolic = %require_complete.loc16 (constants.%require_complete.427)] +// CHECK:STDOUT: %require_complete.loc12: = require_complete_type @F.%ptr (%ptr) [symbolic = %require_complete.loc12 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc16: = require_complete_type @F.%U.loc11_16.2 (%U) [symbolic = %require_complete.loc16 (constants.%require_complete.b54)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) { // CHECK:STDOUT: !entry: diff --git a/toolchain/check/testdata/function/generic/no_prelude/import_specific.carbon b/toolchain/check/testdata/function/generic/no_prelude/import_specific.carbon index 422b9e6b3146..4fb2c7374a8f 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/import_specific.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/import_specific.carbon @@ -124,22 +124,22 @@ fn H() { // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %F.specific_fn.002: = specific_function %F, @F(%C) [template] +// CHECK:STDOUT: %F.specific_fn.04a: = specific_function %F, @F(%C) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn.3dc: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %F.specific_fn.ef1: = specific_function %F, @F(%T) [symbolic] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%C) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.d4d: %F.type = import_ref Main//library, F, loaded [template = constants.%F] -// CHECK:STDOUT: %import_ref.f18: %G.type = import_ref Main//library, G, loaded [template = constants.%G] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Main//library, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.ad0: %G.type = import_ref Main//library, G, loaded [template = constants.%G] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .F = imports.%import_ref.d4d -// CHECK:STDOUT: .G = imports.%import_ref.f18 +// CHECK:STDOUT: .F = imports.%import_ref.b37 +// CHECK:STDOUT: .G = imports.%import_ref.ad0 // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: } @@ -158,11 +158,11 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: fn @H() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.d4d [template = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] // CHECK:STDOUT: %C.ref.loc10: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.002] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.04a] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() -// CHECK:STDOUT: %G.ref: %G.type = name_ref G, imports.%import_ref.f18 [template = constants.%G] +// CHECK:STDOUT: %G.ref: %G.type = name_ref G, imports.%import_ref.ad0 [template = constants.%G] // CHECK:STDOUT: %C.ref.loc12: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%C) [template = constants.%G.specific_fn] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn() @@ -183,7 +183,7 @@ fn H() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.specific_fn: = specific_function constants.%F, @F(%T) [symbolic = %F.specific_fn (constants.%F.specific_fn.3dc)] +// CHECK:STDOUT: %F.specific_fn: = specific_function constants.%F, @F(%T) [symbolic = %F.specific_fn (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type); // CHECK:STDOUT: } @@ -214,6 +214,6 @@ fn H() { // CHECK:STDOUT: %T.patt => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.specific_fn => constants.%F.specific_fn.002 +// CHECK:STDOUT: %F.specific_fn => constants.%F.specific_fn.04a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon b/toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon index 4a418515954b..0d0bea036590 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon @@ -17,12 +17,12 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %ptr.9ad: type = ptr_type %ptr.251 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr.251 [symbolic] -// CHECK:STDOUT: %require_complete.e31: = require_complete_type %ptr.9ad [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %require_complete.132: = require_complete_type %ptr.a13 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -32,42 +32,42 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt.loc11_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc11_6.1, runtime_param [symbolic = %T.patt.loc11_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %p.patt: @F.%ptr.loc11_21.2 (%ptr.9ad) = binding_pattern p -// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc11_21.2 (%ptr.9ad) = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: @F.%ptr.loc11_20.2 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @F.%ptr.loc11_20.2 (%ptr.251) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: @F.%ptr.loc11_21.2 (%ptr.a13) = binding_pattern p +// CHECK:STDOUT: %p.param_patt: @F.%ptr.loc11_21.2 (%ptr.a13) = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @F.%ptr.loc11_20.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.%ptr.loc11_20.2 (%ptr.79f) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc11_27: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc11_28: type = ptr_type %T [symbolic = %ptr.loc11_20.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc11_28: type = ptr_type %T [symbolic = %ptr.loc11_20.2 (constants.%ptr.79f)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc11_21.2 (%ptr.9ad) = value_param runtime_param0 -// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_21.1 [symbolic = %ptr.loc11_21.2 (constants.%ptr.9ad)] { +// CHECK:STDOUT: %p.param: @F.%ptr.loc11_21.2 (%ptr.a13) = value_param runtime_param0 +// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_21.1 [symbolic = %ptr.loc11_21.2 (constants.%ptr.a13)] { // CHECK:STDOUT: %T.ref.loc11_19: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc11_20.1: type = ptr_type %T [symbolic = %ptr.loc11_20.2 (constants.%ptr.251)] -// CHECK:STDOUT: %ptr.loc11_21.1: type = ptr_type %ptr.251 [symbolic = %ptr.loc11_21.2 (constants.%ptr.9ad)] +// CHECK:STDOUT: %ptr.loc11_20.1: type = ptr_type %T [symbolic = %ptr.loc11_20.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr.loc11_21.1: type = ptr_type %ptr.79f [symbolic = %ptr.loc11_21.2 (constants.%ptr.a13)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc11_21.2 (%ptr.9ad) = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc11_20.2 (%ptr.251) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @F.%ptr.loc11_20.2 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %p: @F.%ptr.loc11_21.2 (%ptr.a13) = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref @F.%ptr.loc11_20.2 (%ptr.79f) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @F.%ptr.loc11_20.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc11_6.1: type) { // CHECK:STDOUT: %T.loc11_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc11_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %ptr.loc11_20.2: type = ptr_type @F.%T.loc11_6.2 (%T) [symbolic = %ptr.loc11_20.2 (constants.%ptr.251)] -// CHECK:STDOUT: %ptr.loc11_21.2: type = ptr_type @F.%ptr.loc11_20.2 (%ptr.251) [symbolic = %ptr.loc11_21.2 (constants.%ptr.9ad)] +// CHECK:STDOUT: %ptr.loc11_20.2: type = ptr_type @F.%T.loc11_6.2 (%T) [symbolic = %ptr.loc11_20.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr.loc11_21.2: type = ptr_type @F.%ptr.loc11_20.2 (%ptr.79f) [symbolic = %ptr.loc11_21.2 (constants.%ptr.a13)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_24: = require_complete_type @F.%ptr.loc11_20.2 (%ptr.251) [symbolic = %require_complete.loc11_24 (constants.%require_complete.968)] -// CHECK:STDOUT: %require_complete.loc11_17: = require_complete_type @F.%ptr.loc11_21.2 (%ptr.9ad) [symbolic = %require_complete.loc11_17 (constants.%require_complete.e31)] +// CHECK:STDOUT: %require_complete.loc11_24: = require_complete_type @F.%ptr.loc11_20.2 (%ptr.79f) [symbolic = %require_complete.loc11_24 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc11_17: = require_complete_type @F.%ptr.loc11_21.2 (%ptr.a13) [symbolic = %require_complete.loc11_17 (constants.%require_complete.132)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %p.param_patt: @F.%ptr.loc11_21.2 (%ptr.9ad)) -> @F.%ptr.loc11_20.2 (%ptr.251) { +// CHECK:STDOUT: fn(%T.param_patt: type, %p.param_patt: @F.%ptr.loc11_21.2 (%ptr.a13)) -> @F.%ptr.loc11_20.2 (%ptr.79f) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: @F.%ptr.loc11_21.2 (%ptr.9ad) = name_ref p, %p -// CHECK:STDOUT: %.loc12_10.1: ref @F.%ptr.loc11_20.2 (%ptr.251) = deref %p.ref -// CHECK:STDOUT: %.loc12_10.2: @F.%ptr.loc11_20.2 (%ptr.251) = bind_value %.loc12_10.1 +// CHECK:STDOUT: %p.ref: @F.%ptr.loc11_21.2 (%ptr.a13) = name_ref p, %p +// CHECK:STDOUT: %.loc12_10.1: ref @F.%ptr.loc11_20.2 (%ptr.79f) = deref %p.ref +// CHECK:STDOUT: %.loc12_10.2: @F.%ptr.loc11_20.2 (%ptr.79f) = bind_value %.loc12_10.1 // CHECK:STDOUT: return %.loc12_10.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -75,7 +75,7 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc11_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc11_6.2 => constants.%T -// CHECK:STDOUT: %ptr.loc11_20.2 => constants.%ptr.251 -// CHECK:STDOUT: %ptr.loc11_21.2 => constants.%ptr.9ad +// CHECK:STDOUT: %ptr.loc11_20.2 => constants.%ptr.79f +// CHECK:STDOUT: %ptr.loc11_21.2 => constants.%ptr.a13 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/no_prelude/type_param.carbon b/toolchain/check/testdata/function/generic/no_prelude/type_param.carbon index e99331da1574..306be0806687 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/type_param.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/type_param.carbon @@ -21,8 +21,8 @@ fn F(T:! type) { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %require_complete.968: = require_complete_type %ptr [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -44,8 +44,8 @@ fn F(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %ptr: type = ptr_type @F.%T.loc11_6.2 (%T) [symbolic = %ptr (constants.%ptr)] -// CHECK:STDOUT: %require_complete.loc12: = require_complete_type @F.%ptr (%ptr) [symbolic = %require_complete.loc12 (constants.%require_complete.968)] -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type @F.%T.loc11_6.2 (%T) [symbolic = %require_complete.loc13 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc12: = require_complete_type @F.%ptr (%ptr) [symbolic = %require_complete.loc12 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type @F.%T.loc11_6.2 (%T) [symbolic = %require_complete.loc13 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type) { // CHECK:STDOUT: !entry: diff --git a/toolchain/check/testdata/function/generic/param_in_type.carbon b/toolchain/check/testdata/function/generic/param_in_type.carbon index c840ab3a21bf..0acb08babeb8 100644 --- a/toolchain/check/testdata/function/generic/param_in_type.carbon +++ b/toolchain/check/testdata/function/generic/param_in_type.carbon @@ -15,15 +15,15 @@ fn F(N:! i32, a: [i32; N]*); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %N.3e4: %i32 = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.52a: %i32 = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.a9b: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [template] -// CHECK:STDOUT: %impl_witness.dd3: = impl_witness (imports.%import_ref.a80), @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.type.d18: type = fn_type @Convert.3, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.079: %Convert.type.d18 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.3e4, %Convert.079 [symbolic] +// CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [template] +// CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%import_ref.85c), @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.3(%int_32) [symbolic] -// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.3e4) [symbolic] +// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %Convert.specific_fn(%N.51e) [symbolic] // CHECK:STDOUT: %array_type: type = array_type %int.convert_checked, %i32 [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %array_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] @@ -32,8 +32,8 @@ fn F(N:! i32, a: [i32; N]*); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -46,8 +46,8 @@ fn F(N:! i32, a: [i32; N]*); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %N.patt.loc11_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc11_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc11_6.1, runtime_param [symbolic = %N.patt.loc11_6.2 (constants.%N.patt.52a)] +// CHECK:STDOUT: %N.patt.loc11_6.1: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc11_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %N.param_patt: %i32 = value_param_pattern %N.patt.loc11_6.1, runtime_param [symbolic = %N.patt.loc11_6.2 (constants.%N.patt.8e2)] // CHECK:STDOUT: %a.patt: @F.%ptr.loc11_26.2 (%ptr) = binding_pattern a // CHECK:STDOUT: %a.param_patt: @F.%ptr.loc11_26.2 (%ptr) = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: } { @@ -56,13 +56,13 @@ fn F(N:! i32, a: [i32; N]*); // CHECK:STDOUT: %int_32.loc11_10: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_10: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc11_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc11_6.2 (constants.%N.3e4)] +// CHECK:STDOUT: %N.loc11_6.1: %i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc11_6.2 (constants.%N.51e)] // CHECK:STDOUT: %a.param: @F.%ptr.loc11_26.2 (%ptr) = value_param runtime_param0 // CHECK:STDOUT: %.loc11_26: type = splice_block %ptr.loc11_26.1 [symbolic = %ptr.loc11_26.2 (constants.%ptr)] { // CHECK:STDOUT: %int_32.loc11_19: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc11_6.1 [symbolic = %N.loc11_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %impl.elem0: %Convert.type.a9b = impl_witness_access constants.%impl_witness.dd3, element0 [template = constants.%Convert.079] +// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc11_6.1 [symbolic = %N.loc11_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %impl.elem0: %Convert.type.71e = impl_witness_access constants.%impl_witness.023, element0 [template = constants.%Convert.960] // CHECK:STDOUT: %Convert.bound.loc11_24.1: = bound_method %N.ref, %impl.elem0 [symbolic = %Convert.bound.loc11_24.2 (constants.%Convert.bound)] // CHECK:STDOUT: %Convert.specific_fn.loc11_24.1: = specific_function %Convert.bound.loc11_24.1, @Convert.3(constants.%int_32) [symbolic = %Convert.specific_fn.loc11_24.2 (constants.%Convert.specific_fn)] // CHECK:STDOUT: %int.convert_checked.loc11_24.1: init Core.IntLiteral = call %Convert.specific_fn.loc11_24.1(%N.ref) [symbolic = %int.convert_checked.loc11_24.2 (constants.%int.convert_checked)] @@ -76,9 +76,9 @@ fn F(N:! i32, a: [i32; N]*); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc11_6.1: %i32) { -// CHECK:STDOUT: %N.loc11_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc11_6.2 (constants.%N.3e4)] -// CHECK:STDOUT: %N.patt.loc11_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc11_6.2 (constants.%N.patt.52a)] -// CHECK:STDOUT: %Convert.bound.loc11_24.2: = bound_method %N.loc11_6.2, constants.%Convert.079 [symbolic = %Convert.bound.loc11_24.2 (constants.%Convert.bound)] +// CHECK:STDOUT: %N.loc11_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc11_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.patt.loc11_6.2: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc11_6.2 (constants.%N.patt.8e2)] +// CHECK:STDOUT: %Convert.bound.loc11_24.2: = bound_method %N.loc11_6.2, constants.%Convert.960 [symbolic = %Convert.bound.loc11_24.2 (constants.%Convert.bound)] // CHECK:STDOUT: %Convert.specific_fn.loc11_24.2: = specific_function %Convert.bound.loc11_24.2, @Convert.3(constants.%int_32) [symbolic = %Convert.specific_fn.loc11_24.2 (constants.%Convert.specific_fn)] // CHECK:STDOUT: %int.convert_checked.loc11_24.2: init Core.IntLiteral = call %Convert.specific_fn.loc11_24.2(%N.loc11_6.2) [symbolic = %int.convert_checked.loc11_24.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %array_type.loc11_25.2: type = array_type %int.convert_checked.loc11_24.2, %i32 [symbolic = %array_type.loc11_25.2 (constants.%array_type)] @@ -87,9 +87,9 @@ fn F(N:! i32, a: [i32; N]*); // CHECK:STDOUT: fn(%N.param_patt: %i32, %a.param_patt: @F.%ptr.loc11_26.2 (%ptr)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.3e4) { -// CHECK:STDOUT: %N.loc11_6.2 => constants.%N.3e4 -// CHECK:STDOUT: %N.patt.loc11_6.2 => constants.%N.3e4 +// CHECK:STDOUT: specific @F(constants.%N.51e) { +// CHECK:STDOUT: %N.loc11_6.2 => constants.%N.51e +// CHECK:STDOUT: %N.patt.loc11_6.2 => constants.%N.51e // CHECK:STDOUT: %Convert.bound.loc11_24.2 => constants.%Convert.bound // CHECK:STDOUT: %Convert.specific_fn.loc11_24.2 => constants.%Convert.specific_fn // CHECK:STDOUT: %int.convert_checked.loc11_24.2 => constants.%int.convert_checked diff --git a/toolchain/check/testdata/function/generic/redeclare.carbon b/toolchain/check/testdata/function/generic/redeclare.carbon index 736df1ed64b7..a1e34d177697 100644 --- a/toolchain/check/testdata/function/generic/redeclare.carbon +++ b/toolchain/check/testdata/function/generic/redeclare.carbon @@ -182,13 +182,13 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %ptr.585: type = ptr_type %U [symbolic] +// CHECK:STDOUT: %ptr.b51: type = ptr_type %U [symbolic] // CHECK:STDOUT: %.type: type = fn_type @.1 [template] // CHECK:STDOUT: %.d85: %.type = struct_value () [template] -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.585 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.b51 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -209,34 +209,34 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_6.1, runtime_param [symbolic = %T.patt.loc4_6.2 (constants.%T.patt)] // CHECK:STDOUT: %U.patt.loc4_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc4_16.1, runtime_param [symbolic = %U.patt.loc4_16.2 (constants.%U.patt)] -// CHECK:STDOUT: %return.patt: @F.%ptr.loc4_30.2 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @F.%ptr.loc4_30.2 (%ptr.251) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @F.%ptr.loc4_30.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.%ptr.loc4_30.2 (%ptr.79f) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T [symbolic = %ptr.loc4_30.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = value_param runtime_param // CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc4_16.2 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.251) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.79f) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.d85] { // CHECK:STDOUT: %T.patt.loc13_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc13_6.1, runtime_param [symbolic = %T.patt.loc13_6.2 (constants.%T.patt)] // CHECK:STDOUT: %U.patt.loc13_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc13_16.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc13_16.1, runtime_param [symbolic = %U.patt.loc13_16.2 (constants.%U.patt)] -// CHECK:STDOUT: %return.patt: @.1.%ptr.loc13_30.2 (%ptr.585) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @.1.%ptr.loc13_30.2 (%ptr.585) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @.1.%ptr.loc13_30.2 (%ptr.b51) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @.1.%ptr.loc13_30.2 (%ptr.b51) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_16.1 [symbolic = %U.loc13_16.2 (constants.%U)] -// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %U [symbolic = %ptr.loc13_30.2 (constants.%ptr.585)] +// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %U [symbolic = %ptr.loc13_30.2 (constants.%ptr.b51)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = value_param runtime_param // CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc13_16.2 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.585) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.585) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.b51) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.b51) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -245,9 +245,9 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %T.patt.loc4_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt)] // CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U)] // CHECK:STDOUT: %U.patt.loc4_16.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt)] -// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T) [symbolic = %ptr.loc4_30.2 (constants.%ptr.251)] +// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T) [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) -> @F.%ptr.loc4_30.2 (%ptr.251); +// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) -> @F.%ptr.loc4_30.2 (%ptr.79f); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.1(%T.loc13_6.1: type, %U.loc13_16.1: type) { @@ -255,12 +255,12 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %T.patt.loc13_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_6.2 (constants.%T.patt)] // CHECK:STDOUT: %U.loc13_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.2 (constants.%U)] // CHECK:STDOUT: %U.patt.loc13_16.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc13_16.2 (constants.%U.patt)] -// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type @.1.%U.loc13_16.2 (%U) [symbolic = %ptr.loc13_30.2 (constants.%ptr.585)] +// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type @.1.%U.loc13_16.2 (%U) [symbolic = %ptr.loc13_30.2 (constants.%ptr.b51)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @.1.%ptr.loc13_30.2 (%ptr.585) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type @.1.%ptr.loc13_30.2 (%ptr.b51) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) -> @.1.%ptr.loc13_30.2 (%ptr.585) { +// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) -> @.1.%ptr.loc13_30.2 (%ptr.b51) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] @@ -273,7 +273,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %T.patt.loc4_6.2 => constants.%T // CHECK:STDOUT: %U.loc4_16.2 => constants.%U // CHECK:STDOUT: %U.patt.loc4_16.2 => constants.%U -// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.251 +// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T, constants.%U) { @@ -281,27 +281,27 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %T.patt.loc13_6.2 => constants.%T // CHECK:STDOUT: %U.loc13_16.2 => constants.%U // CHECK:STDOUT: %U.patt.loc13_16.2 => constants.%U -// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.585 +// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.b51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_reorder.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %T.6bab16.1: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.d8619a.1: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %U.2868b5.1: type = bind_symbolic_name U, 1 [symbolic] -// CHECK:STDOUT: %U.patt.1caacc.1: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %ptr.251602.1: type = ptr_type %T.6bab16.1 [symbolic] +// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e01: type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %U.336: type = bind_symbolic_name U, 1 [symbolic] +// CHECK:STDOUT: %U.patt.7a9: type = symbolic_binding_pattern U, 1 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T.8b3 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %U.2868b5.2: type = bind_symbolic_name U, 0 [symbolic] -// CHECK:STDOUT: %U.patt.1caacc.2: type = symbolic_binding_pattern U, 0 [symbolic] -// CHECK:STDOUT: %T.6bab16.2: type = bind_symbolic_name T, 1 [symbolic] -// CHECK:STDOUT: %T.patt.d8619a.2: type = symbolic_binding_pattern T, 1 [symbolic] -// CHECK:STDOUT: %ptr.251602.2: type = ptr_type %T.6bab16.2 [symbolic] +// CHECK:STDOUT: %U.8b3: type = bind_symbolic_name U, 0 [symbolic] +// CHECK:STDOUT: %U.patt.e01: type = symbolic_binding_pattern U, 0 [symbolic] +// CHECK:STDOUT: %T.336: type = bind_symbolic_name T, 1 [symbolic] +// CHECK:STDOUT: %T.patt.7a9: type = symbolic_binding_pattern T, 1 [symbolic] +// CHECK:STDOUT: %ptr.b51: type = ptr_type %T.336 [symbolic] // CHECK:STDOUT: %.type: type = fn_type @.1 [template] // CHECK:STDOUT: %.d85: %.type = struct_value () [template] -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.251602.2 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.b51 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -318,103 +318,103 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %T.patt.loc4_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.d8619a.1)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_6.1, runtime_param [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.d8619a.1)] -// CHECK:STDOUT: %U.patt.loc4_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.1caacc.1)] -// CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc4_16.1, runtime_param [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.1caacc.1)] -// CHECK:STDOUT: %return.patt: @F.%ptr.loc4_30.2 (%ptr.251602.1) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @F.%ptr.loc4_30.2 (%ptr.251602.1) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %T.patt.loc4_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_6.1, runtime_param [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %U.patt.loc4_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.7a9)] +// CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc4_16.1, runtime_param [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.7a9)] +// CHECK:STDOUT: %return.patt: @F.%ptr.loc4_30.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.%ptr.loc4_30.2 (%ptr.79f) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.6bab16.1)] -// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.6bab16.1 [symbolic = %ptr.loc4_30.2 (constants.%ptr.251602.1)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] +// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.8b3 [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_6.2 (constants.%T.6bab16.1)] +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_6.2 (constants.%T.8b3)] // CHECK:STDOUT: %U.param: type = value_param runtime_param -// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc4_16.2 (constants.%U.2868b5.1)] -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.251602.1) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.251602.1) = return_slot %return.param +// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc4_16.2 (constants.%U.336)] +// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.79f) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.d85] { -// CHECK:STDOUT: %U.patt.loc13_6.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.1caacc.2)] -// CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc13_6.1, runtime_param [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.1caacc.2)] -// CHECK:STDOUT: %T.patt.loc13_16.1: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.d8619a.2)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc13_16.1, runtime_param [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.d8619a.2)] -// CHECK:STDOUT: %return.patt: @.1.%ptr.loc13_30.2 (%ptr.251602.2) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @.1.%ptr.loc13_30.2 (%ptr.251602.2) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %U.patt.loc13_6.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.e01)] +// CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc13_6.1, runtime_param [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.e01)] +// CHECK:STDOUT: %T.patt.loc13_16.1: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.7a9)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc13_16.1, runtime_param [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.7a9)] +// CHECK:STDOUT: %return.patt: @.1.%ptr.loc13_30.2 (%ptr.b51) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @.1.%ptr.loc13_30.2 (%ptr.b51) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.6bab16.2)] -// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %T.6bab16.2 [symbolic = %ptr.loc13_30.2 (constants.%ptr.251602.2)] +// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.336)] +// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %T.336 [symbolic = %ptr.loc13_30.2 (constants.%ptr.b51)] // CHECK:STDOUT: %U.param: type = value_param runtime_param -// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc13_6.2 (constants.%U.2868b5.2)] +// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc13_6.2 (constants.%U.8b3)] // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc13_16.2 (constants.%T.6bab16.2)] -// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.251602.2) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.251602.2) = return_slot %return.param +// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc13_16.2 (constants.%T.336)] +// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.b51) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.b51) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_6.1: type, %U.loc4_16.1: type) { -// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.6bab16.1)] -// CHECK:STDOUT: %T.patt.loc4_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.d8619a.1)] -// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.2868b5.1)] -// CHECK:STDOUT: %U.patt.loc4_16.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.1caacc.1)] -// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T.6bab16.1) [symbolic = %ptr.loc4_30.2 (constants.%ptr.251602.1)] +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc4_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.336)] +// CHECK:STDOUT: %U.patt.loc4_16.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.7a9)] +// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T.8b3) [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) -> @F.%ptr.loc4_30.2 (%ptr.251602.1); +// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) -> @F.%ptr.loc4_30.2 (%ptr.79f); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.1(%U.loc13_6.1: type, %T.loc13_16.1: type) { -// CHECK:STDOUT: %U.loc13_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.2868b5.2)] -// CHECK:STDOUT: %U.patt.loc13_6.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.1caacc.2)] -// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.6bab16.2)] -// CHECK:STDOUT: %T.patt.loc13_16.2: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.d8619a.2)] -// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type @.1.%T.loc13_16.2 (%T.6bab16.2) [symbolic = %ptr.loc13_30.2 (constants.%ptr.251602.2)] +// CHECK:STDOUT: %U.loc13_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.8b3)] +// CHECK:STDOUT: %U.patt.loc13_6.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.e01)] +// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.336)] +// CHECK:STDOUT: %T.patt.loc13_16.2: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.7a9)] +// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type @.1.%T.loc13_16.2 (%T.336) [symbolic = %ptr.loc13_30.2 (constants.%ptr.b51)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @.1.%ptr.loc13_30.2 (%ptr.251602.2) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type @.1.%ptr.loc13_30.2 (%ptr.b51) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.param_patt: type, %T.param_patt: type) -> @.1.%ptr.loc13_30.2 (%ptr.251602.2) { +// CHECK:STDOUT: fn(%U.param_patt: type, %T.param_patt: type) -> @.1.%ptr.loc13_30.2 (%ptr.b51) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.6bab16.2)] +// CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.336)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.6bab16.1, constants.%U.2868b5.1) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T.6bab16.1 -// CHECK:STDOUT: %T.patt.loc4_6.2 => constants.%T.6bab16.1 -// CHECK:STDOUT: %U.loc4_16.2 => constants.%U.2868b5.1 -// CHECK:STDOUT: %U.patt.loc4_16.2 => constants.%U.2868b5.1 -// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.251602.1 +// CHECK:STDOUT: specific @F(constants.%T.8b3, constants.%U.336) { +// CHECK:STDOUT: %T.loc4_6.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc4_6.2 => constants.%T.8b3 +// CHECK:STDOUT: %U.loc4_16.2 => constants.%U.336 +// CHECK:STDOUT: %U.patt.loc4_16.2 => constants.%U.336 +// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%U.2868b5.2, constants.%T.6bab16.2) { -// CHECK:STDOUT: %U.loc13_6.2 => constants.%U.2868b5.2 -// CHECK:STDOUT: %U.patt.loc13_6.2 => constants.%U.2868b5.2 -// CHECK:STDOUT: %T.loc13_16.2 => constants.%T.6bab16.2 -// CHECK:STDOUT: %T.patt.loc13_16.2 => constants.%T.6bab16.2 -// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.251602.2 +// CHECK:STDOUT: specific @.1(constants.%U.8b3, constants.%T.336) { +// CHECK:STDOUT: %U.loc13_6.2 => constants.%U.8b3 +// CHECK:STDOUT: %U.patt.loc13_6.2 => constants.%U.8b3 +// CHECK:STDOUT: %T.loc13_16.2 => constants.%T.336 +// CHECK:STDOUT: %T.patt.loc13_16.2 => constants.%T.336 +// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.b51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_rename.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %T.6bab16.1: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.d8619a.1: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %U.2868b5.1: type = bind_symbolic_name U, 1 [symbolic] -// CHECK:STDOUT: %U.patt.1caacc.1: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T.6bab16.1 [symbolic] +// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e01: type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %U.336: type = bind_symbolic_name U, 1 [symbolic] +// CHECK:STDOUT: %U.patt.7a9: type = symbolic_binding_pattern U, 1 [symbolic] +// CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %T.8b3 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %U.2868b5.2: type = bind_symbolic_name U, 0 [symbolic] -// CHECK:STDOUT: %U.patt.1caacc.2: type = symbolic_binding_pattern U, 0 [symbolic] -// CHECK:STDOUT: %T.6bab16.2: type = bind_symbolic_name T, 1 [symbolic] -// CHECK:STDOUT: %T.patt.d8619a.2: type = symbolic_binding_pattern T, 1 [symbolic] -// CHECK:STDOUT: %ptr.585: type = ptr_type %U.2868b5.2 [symbolic] +// CHECK:STDOUT: %U.8b3: type = bind_symbolic_name U, 0 [symbolic] +// CHECK:STDOUT: %U.patt.e01: type = symbolic_binding_pattern U, 0 [symbolic] +// CHECK:STDOUT: %T.336: type = bind_symbolic_name T, 1 [symbolic] +// CHECK:STDOUT: %T.patt.7a9: type = symbolic_binding_pattern T, 1 [symbolic] +// CHECK:STDOUT: %ptr.79f131.2: type = ptr_type %U.8b3 [symbolic] // CHECK:STDOUT: %.type: type = fn_type @.1 [template] // CHECK:STDOUT: %.d85: %.type = struct_value () [template] -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.585 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.79f131.2 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -431,82 +431,82 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %T.patt.loc4_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.d8619a.1)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_6.1, runtime_param [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.d8619a.1)] -// CHECK:STDOUT: %U.patt.loc4_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.1caacc.1)] -// CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc4_16.1, runtime_param [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.1caacc.1)] -// CHECK:STDOUT: %return.patt: @F.%ptr.loc4_30.2 (%ptr.251) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @F.%ptr.loc4_30.2 (%ptr.251) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %T.patt.loc4_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_6.1, runtime_param [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %U.patt.loc4_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.7a9)] +// CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc4_16.1, runtime_param [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.7a9)] +// CHECK:STDOUT: %return.patt: @F.%ptr.loc4_30.2 (%ptr.79f131.1) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.%ptr.loc4_30.2 (%ptr.79f131.1) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.6bab16.1)] -// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.6bab16.1 [symbolic = %ptr.loc4_30.2 (constants.%ptr.251)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] +// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.8b3 [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f131.1)] // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_6.2 (constants.%T.6bab16.1)] +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_6.2 (constants.%T.8b3)] // CHECK:STDOUT: %U.param: type = value_param runtime_param -// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc4_16.2 (constants.%U.2868b5.1)] -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.251) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.251) = return_slot %return.param +// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc4_16.2 (constants.%U.336)] +// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.79f131.1) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.79f131.1) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.d85] { -// CHECK:STDOUT: %U.patt.loc13_6.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.1caacc.2)] -// CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc13_6.1, runtime_param [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.1caacc.2)] -// CHECK:STDOUT: %T.patt.loc13_16.1: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.d8619a.2)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc13_16.1, runtime_param [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.d8619a.2)] -// CHECK:STDOUT: %return.patt: @.1.%ptr.loc13_30.2 (%ptr.585) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @.1.%ptr.loc13_30.2 (%ptr.585) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %U.patt.loc13_6.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.e01)] +// CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc13_6.1, runtime_param [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.e01)] +// CHECK:STDOUT: %T.patt.loc13_16.1: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.7a9)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc13_16.1, runtime_param [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.7a9)] +// CHECK:STDOUT: %return.patt: @.1.%ptr.loc13_30.2 (%ptr.79f131.2) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @.1.%ptr.loc13_30.2 (%ptr.79f131.2) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_6.1 [symbolic = %U.loc13_6.2 (constants.%U.2868b5.2)] -// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %U.2868b5.2 [symbolic = %ptr.loc13_30.2 (constants.%ptr.585)] +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_6.1 [symbolic = %U.loc13_6.2 (constants.%U.8b3)] +// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %U.8b3 [symbolic = %ptr.loc13_30.2 (constants.%ptr.79f131.2)] // CHECK:STDOUT: %U.param: type = value_param runtime_param -// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc13_6.2 (constants.%U.2868b5.2)] +// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc13_6.2 (constants.%U.8b3)] // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc13_16.2 (constants.%T.6bab16.2)] -// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.585) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.585) = return_slot %return.param +// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc13_16.2 (constants.%T.336)] +// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.79f131.2) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.79f131.2) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_6.1: type, %U.loc4_16.1: type) { -// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.6bab16.1)] -// CHECK:STDOUT: %T.patt.loc4_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.d8619a.1)] -// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.2868b5.1)] -// CHECK:STDOUT: %U.patt.loc4_16.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.1caacc.1)] -// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T.6bab16.1) [symbolic = %ptr.loc4_30.2 (constants.%ptr.251)] +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc4_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_6.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.336)] +// CHECK:STDOUT: %U.patt.loc4_16.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc4_16.2 (constants.%U.patt.7a9)] +// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T.8b3) [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f131.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) -> @F.%ptr.loc4_30.2 (%ptr.251); +// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: type) -> @F.%ptr.loc4_30.2 (%ptr.79f131.1); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.1(%U.loc13_6.1: type, %T.loc13_16.1: type) { -// CHECK:STDOUT: %U.loc13_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.2868b5.2)] -// CHECK:STDOUT: %U.patt.loc13_6.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.1caacc.2)] -// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.6bab16.2)] -// CHECK:STDOUT: %T.patt.loc13_16.2: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.d8619a.2)] -// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type @.1.%U.loc13_6.2 (%U.2868b5.2) [symbolic = %ptr.loc13_30.2 (constants.%ptr.585)] +// CHECK:STDOUT: %U.loc13_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.8b3)] +// CHECK:STDOUT: %U.patt.loc13_6.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.e01)] +// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.336)] +// CHECK:STDOUT: %T.patt.loc13_16.2: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc13_16.2 (constants.%T.patt.7a9)] +// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type @.1.%U.loc13_6.2 (%U.8b3) [symbolic = %ptr.loc13_30.2 (constants.%ptr.79f131.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @.1.%ptr.loc13_30.2 (%ptr.585) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type @.1.%ptr.loc13_30.2 (%ptr.79f131.2) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.param_patt: type, %T.param_patt: type) -> @.1.%ptr.loc13_30.2 (%ptr.585) { +// CHECK:STDOUT: fn(%U.param_patt: type, %T.param_patt: type) -> @.1.%ptr.loc13_30.2 (%ptr.79f131.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.6bab16.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.336)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.6bab16.1, constants.%U.2868b5.1) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T.6bab16.1 -// CHECK:STDOUT: %T.patt.loc4_6.2 => constants.%T.6bab16.1 -// CHECK:STDOUT: %U.loc4_16.2 => constants.%U.2868b5.1 -// CHECK:STDOUT: %U.patt.loc4_16.2 => constants.%U.2868b5.1 -// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.251 +// CHECK:STDOUT: specific @F(constants.%T.8b3, constants.%U.336) { +// CHECK:STDOUT: %T.loc4_6.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc4_6.2 => constants.%T.8b3 +// CHECK:STDOUT: %U.loc4_16.2 => constants.%U.336 +// CHECK:STDOUT: %U.patt.loc4_16.2 => constants.%U.336 +// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f131.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%U.2868b5.2, constants.%T.6bab16.2) { -// CHECK:STDOUT: %U.loc13_6.2 => constants.%U.2868b5.2 -// CHECK:STDOUT: %U.patt.loc13_6.2 => constants.%U.2868b5.2 -// CHECK:STDOUT: %T.loc13_16.2 => constants.%T.6bab16.2 -// CHECK:STDOUT: %T.patt.loc13_16.2 => constants.%T.6bab16.2 -// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.585 +// CHECK:STDOUT: specific @.1(constants.%U.8b3, constants.%T.336) { +// CHECK:STDOUT: %U.loc13_6.2 => constants.%U.8b3 +// CHECK:STDOUT: %U.patt.loc13_6.2 => constants.%U.8b3 +// CHECK:STDOUT: %T.loc13_16.2 => constants.%T.336 +// CHECK:STDOUT: %T.patt.loc13_16.2 => constants.%T.336 +// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.79f131.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/resolve_used.carbon b/toolchain/check/testdata/function/generic/resolve_used.carbon index 9fa811506ceb..856c7a6e9d09 100644 --- a/toolchain/check/testdata/function/generic/resolve_used.carbon +++ b/toolchain/check/testdata/function/generic/resolve_used.carbon @@ -44,7 +44,7 @@ fn CallNegative() { // CHECK:STDOUT: %ErrorIfNIsZero.type: type = fn_type @ErrorIfNIsZero [template] // CHECK:STDOUT: %ErrorIfNIsZero: %ErrorIfNIsZero.type = struct_value () [template] // CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic] -// CHECK:STDOUT: %require_complete.5cb: = require_complete_type %Int [symbolic] +// CHECK:STDOUT: %require_complete.b4f: = require_complete_type %Int [symbolic] // CHECK:STDOUT: %CallNegative.type: type = fn_type @CallNegative [template] // CHECK:STDOUT: %CallNegative: %CallNegative.type = struct_value () [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] @@ -55,12 +55,12 @@ fn CallNegative() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IntLiteral = %import_ref.8ee -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .IntLiteral = %import_ref.72f +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.8ee: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] +// CHECK:STDOUT: %import_ref.72f: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [template = constants.%IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -77,7 +77,7 @@ fn CallNegative() { // CHECK:STDOUT: %N.param: Core.IntLiteral = value_param runtime_param // CHECK:STDOUT: %.loc4_39.1: type = splice_block %.loc4_39.3 [template = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.8ee [template = constants.%IntLiteral] +// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%import_ref.72f [template = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [template = Core.IntLiteral] // CHECK:STDOUT: %.loc4_39.2: type = value_of_initializer %int_literal.make_type [template = Core.IntLiteral] // CHECK:STDOUT: %.loc4_39.3: type = converted %int_literal.make_type, %.loc4_39.2 [template = Core.IntLiteral] @@ -93,7 +93,7 @@ fn CallNegative() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N.loc4_19.2) [symbolic = %Int (constants.%Int)] -// CHECK:STDOUT: %require_complete: = require_complete_type @ErrorIfNIsZero.%Int (%Int) [symbolic = %require_complete (constants.%require_complete.5cb)] +// CHECK:STDOUT: %require_complete: = require_complete_type @ErrorIfNIsZero.%Int (%Int) [symbolic = %require_complete (constants.%require_complete.b4f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%N.param_patt: Core.IntLiteral) { // CHECK:STDOUT: !entry: diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index 7d78101a7461..0e71381ffcce 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -28,13 +28,13 @@ fn G() { // CHECK:STDOUT: %Wrap.type: type = generic_class_type @Wrap [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %Wrap.generic: %Wrap.type = struct_value () [template] -// CHECK:STDOUT: %Wrap.f96: type = class_type @Wrap, @Wrap(%T) [symbolic] -// CHECK:STDOUT: %Make.type.8f2: type = fn_type @Make, @Wrap(%T) [symbolic] -// CHECK:STDOUT: %Make.017: %Make.type.8f2 = struct_value () [symbolic] +// CHECK:STDOUT: %Wrap.af6: type = class_type @Wrap, @Wrap(%T) [symbolic] +// CHECK:STDOUT: %Make.type.652: type = fn_type @Make, @Wrap(%T) [symbolic] +// CHECK:STDOUT: %Make.eb2: %Make.type.652 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Make.specific_fn.b56: = specific_function %Make.017, @Make(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Make.specific_fn.bf1: = specific_function %Make.eb2, @Make(%T) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] @@ -43,28 +43,28 @@ fn G() { // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %array_type [template] -// CHECK:STDOUT: %struct_type.arr.1a0: type = struct_type {.arr: %array_type} [template] -// CHECK:STDOUT: %complete_type.b49: = complete_type_witness %struct_type.arr.1a0 [template] +// CHECK:STDOUT: %struct_type.arr.5f2: type = struct_type {.arr: %array_type} [template] +// CHECK:STDOUT: %complete_type.22a: = complete_type_witness %struct_type.arr.5f2 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %Wrap.7d7: type = class_type @Wrap, @Wrap(%i32) [template] -// CHECK:STDOUT: %Make.type.cc6: type = fn_type @Make, @Wrap(%i32) [template] -// CHECK:STDOUT: %Make.115: %Make.type.cc6 = struct_value () [template] -// CHECK:STDOUT: %Make.specific_fn.05c: = specific_function %Make.115, @Make(%i32) [template] -// CHECK:STDOUT: %Wrap.948: type = class_type @Wrap, @Wrap(%empty_tuple.type) [template] -// CHECK:STDOUT: %Make.type.2c9: type = fn_type @Make, @Wrap(%empty_tuple.type) [template] -// CHECK:STDOUT: %Make.b25: %Make.type.2c9 = struct_value () [template] -// CHECK:STDOUT: %Make.specific_fn.086: = specific_function %Make.b25, @Make(%empty_tuple.type) [template] -// CHECK:STDOUT: %Wrap.411: type = class_type @Wrap, @Wrap(%C) [template] -// CHECK:STDOUT: %Make.type.c1b: type = fn_type @Make, @Wrap(%C) [template] -// CHECK:STDOUT: %Make.0a1: %Make.type.c1b = struct_value () [template] -// CHECK:STDOUT: %Make.specific_fn.9b4: = specific_function %Make.0a1, @Make(%C) [template] +// CHECK:STDOUT: %Wrap.f84: type = class_type @Wrap, @Wrap(%i32) [template] +// CHECK:STDOUT: %Make.type.572: type = fn_type @Make, @Wrap(%i32) [template] +// CHECK:STDOUT: %Make.2c5: %Make.type.572 = struct_value () [template] +// CHECK:STDOUT: %Make.specific_fn.f29: = specific_function %Make.2c5, @Make(%i32) [template] +// CHECK:STDOUT: %Wrap.1aa: type = class_type @Wrap, @Wrap(%empty_tuple.type) [template] +// CHECK:STDOUT: %Make.type.20e: type = fn_type @Make, @Wrap(%empty_tuple.type) [template] +// CHECK:STDOUT: %Make.de0: %Make.type.20e = struct_value () [template] +// CHECK:STDOUT: %Make.specific_fn.e43: = specific_function %Make.de0, @Make(%empty_tuple.type) [template] +// CHECK:STDOUT: %Wrap.2eb: type = class_type @Wrap, @Wrap(%C) [template] +// CHECK:STDOUT: %Make.type.708: type = fn_type @Make, @Wrap(%C) [template] +// CHECK:STDOUT: %Make.e4b: %Make.type.708 = struct_value () [template] +// CHECK:STDOUT: %Make.specific_fn.834: = specific_function %Make.e4b, @Make(%C) [template] // CHECK:STDOUT: %complete_type.782: = complete_type_witness %empty_tuple.type [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -94,11 +94,11 @@ fn G() { // CHECK:STDOUT: %T.patt.loc11_12.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_12.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Wrap(%T.loc11_12.2) [symbolic = %Make.type (constants.%Make.type.8f2)] -// CHECK:STDOUT: %Make: @Wrap.%Make.type (%Make.type.8f2) = struct_value () [symbolic = %Make (constants.%Make.017)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Wrap(%T.loc11_12.2) [symbolic = %Make.type (constants.%Make.type.652)] +// CHECK:STDOUT: %Make: @Wrap.%Make.type (%Make.type.652) = struct_value () [symbolic = %Make (constants.%Make.eb2)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Make.decl: @Wrap.%Make.type (%Make.type.8f2) = fn_decl @Make [symbolic = @Wrap.%Make (constants.%Make.017)] { +// CHECK:STDOUT: %Make.decl: @Wrap.%Make.type (%Make.type.652) = fn_decl @Make [symbolic = @Wrap.%Make (constants.%Make.eb2)] { // CHECK:STDOUT: %return.patt: @Make.%T (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @Make.%T (%T) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -109,7 +109,7 @@ fn G() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Wrap.f96 +// CHECK:STDOUT: .Self = constants.%Wrap.af6 // CHECK:STDOUT: .Make = %Make.decl // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } @@ -117,7 +117,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc15: %C.elem = field_decl arr, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.arr.1a0 [template = constants.%complete_type.b49] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.arr.5f2 [template = constants.%complete_type.22a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C @@ -129,16 +129,16 @@ fn G() { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Make.%T (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Wrap(%T) [symbolic = %Make.type (constants.%Make.type.8f2)] -// CHECK:STDOUT: %Make: @Make.%Make.type (%Make.type.8f2) = struct_value () [symbolic = %Make (constants.%Make.017)] -// CHECK:STDOUT: %Make.specific_fn.loc12_27.2: = specific_function %Make, @Make(%T) [symbolic = %Make.specific_fn.loc12_27.2 (constants.%Make.specific_fn.b56)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Make.%T (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Wrap(%T) [symbolic = %Make.type (constants.%Make.type.652)] +// CHECK:STDOUT: %Make: @Make.%Make.type (%Make.type.652) = struct_value () [symbolic = %Make (constants.%Make.eb2)] +// CHECK:STDOUT: %Make.specific_fn.loc12_27.2: = specific_function %Make, @Make(%T) [symbolic = %Make.specific_fn.loc12_27.2 (constants.%Make.specific_fn.bf1)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @Make.%T (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc12_27: @Make.%Make.type (%Make.type.8f2) = specific_constant @Wrap.%Make.decl, @Wrap(constants.%T) [symbolic = %Make (constants.%Make.017)] -// CHECK:STDOUT: %Make.ref: @Make.%Make.type (%Make.type.8f2) = name_ref Make, %.loc12_27 [symbolic = %Make (constants.%Make.017)] -// CHECK:STDOUT: %Make.specific_fn.loc12_27.1: = specific_function %Make.ref, @Make(constants.%T) [symbolic = %Make.specific_fn.loc12_27.2 (constants.%Make.specific_fn.b56)] +// CHECK:STDOUT: %.loc12_27: @Make.%Make.type (%Make.type.652) = specific_constant @Wrap.%Make.decl, @Wrap(constants.%T) [symbolic = %Make (constants.%Make.eb2)] +// CHECK:STDOUT: %Make.ref: @Make.%Make.type (%Make.type.652) = name_ref Make, %.loc12_27 [symbolic = %Make (constants.%Make.eb2)] +// CHECK:STDOUT: %Make.specific_fn.loc12_27.1: = specific_function %Make.ref, @Make(constants.%T) [symbolic = %Make.specific_fn.loc12_27.2 (constants.%Make.specific_fn.bf1)] // CHECK:STDOUT: %Make.call: init @Make.%T (%T) = call %Make.specific_fn.loc12_27.1() // CHECK:STDOUT: %.loc12_33.1: @Make.%T (%T) = value_of_initializer %Make.call // CHECK:STDOUT: %.loc12_33.2: @Make.%T (%T) = converted %Make.call, %.loc12_33.1 @@ -153,10 +153,10 @@ fn G() { // CHECK:STDOUT: %Wrap.ref.loc18: %Wrap.type = name_ref Wrap, file.%Wrap.decl [template = constants.%Wrap.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Wrap.loc18: type = class_type @Wrap, @Wrap(constants.%i32) [template = constants.%Wrap.7d7] -// CHECK:STDOUT: %.loc18: %Make.type.cc6 = specific_constant @Wrap.%Make.decl, @Wrap(constants.%i32) [template = constants.%Make.115] -// CHECK:STDOUT: %Make.ref.loc18: %Make.type.cc6 = name_ref Make, %.loc18 [template = constants.%Make.115] -// CHECK:STDOUT: %Make.specific_fn.loc18: = specific_function %Make.ref.loc18, @Make(constants.%i32) [template = constants.%Make.specific_fn.05c] +// CHECK:STDOUT: %Wrap.loc18: type = class_type @Wrap, @Wrap(constants.%i32) [template = constants.%Wrap.f84] +// CHECK:STDOUT: %.loc18: %Make.type.572 = specific_constant @Wrap.%Make.decl, @Wrap(constants.%i32) [template = constants.%Make.2c5] +// CHECK:STDOUT: %Make.ref.loc18: %Make.type.572 = name_ref Make, %.loc18 [template = constants.%Make.2c5] +// CHECK:STDOUT: %Make.specific_fn.loc18: = specific_function %Make.ref.loc18, @Make(constants.%i32) [template = constants.%Make.specific_fn.f29] // CHECK:STDOUT: %Make.call.loc18: init %i32 = call %Make.specific_fn.loc18() // CHECK:STDOUT: assign %a.var, %Make.call.loc18 // CHECK:STDOUT: %b.var: ref %empty_tuple.type = var b @@ -164,20 +164,20 @@ fn G() { // CHECK:STDOUT: %Wrap.ref.loc19: %Wrap.type = name_ref Wrap, file.%Wrap.decl [template = constants.%Wrap.generic] // CHECK:STDOUT: %.loc19_21: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc19_22: type = converted %.loc19_21, constants.%empty_tuple.type [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %Wrap.loc19: type = class_type @Wrap, @Wrap(constants.%empty_tuple.type) [template = constants.%Wrap.948] -// CHECK:STDOUT: %.loc19_23: %Make.type.2c9 = specific_constant @Wrap.%Make.decl, @Wrap(constants.%empty_tuple.type) [template = constants.%Make.b25] -// CHECK:STDOUT: %Make.ref.loc19: %Make.type.2c9 = name_ref Make, %.loc19_23 [template = constants.%Make.b25] -// CHECK:STDOUT: %Make.specific_fn.loc19: = specific_function %Make.ref.loc19, @Make(constants.%empty_tuple.type) [template = constants.%Make.specific_fn.086] +// CHECK:STDOUT: %Wrap.loc19: type = class_type @Wrap, @Wrap(constants.%empty_tuple.type) [template = constants.%Wrap.1aa] +// CHECK:STDOUT: %.loc19_23: %Make.type.20e = specific_constant @Wrap.%Make.decl, @Wrap(constants.%empty_tuple.type) [template = constants.%Make.de0] +// CHECK:STDOUT: %Make.ref.loc19: %Make.type.20e = name_ref Make, %.loc19_23 [template = constants.%Make.de0] +// CHECK:STDOUT: %Make.specific_fn.loc19: = specific_function %Make.ref.loc19, @Make(constants.%empty_tuple.type) [template = constants.%Make.specific_fn.e43] // CHECK:STDOUT: %Make.call.loc19: init %empty_tuple.type = call %Make.specific_fn.loc19() // CHECK:STDOUT: assign %b.var, %Make.call.loc19 // CHECK:STDOUT: %c.var: ref %C = var c // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %Wrap.ref.loc20: %Wrap.type = name_ref Wrap, file.%Wrap.decl [template = constants.%Wrap.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %Wrap.loc20: type = class_type @Wrap, @Wrap(constants.%C) [template = constants.%Wrap.411] -// CHECK:STDOUT: %.loc20_21: %Make.type.c1b = specific_constant @Wrap.%Make.decl, @Wrap(constants.%C) [template = constants.%Make.0a1] -// CHECK:STDOUT: %Make.ref.loc20: %Make.type.c1b = name_ref Make, %.loc20_21 [template = constants.%Make.0a1] -// CHECK:STDOUT: %Make.specific_fn.loc20: = specific_function %Make.ref.loc20, @Make(constants.%C) [template = constants.%Make.specific_fn.9b4] +// CHECK:STDOUT: %Wrap.loc20: type = class_type @Wrap, @Wrap(constants.%C) [template = constants.%Wrap.2eb] +// CHECK:STDOUT: %.loc20_21: %Make.type.708 = specific_constant @Wrap.%Make.decl, @Wrap(constants.%C) [template = constants.%Make.e4b] +// CHECK:STDOUT: %Make.ref.loc20: %Make.type.708 = name_ref Make, %.loc20_21 [template = constants.%Make.e4b] +// CHECK:STDOUT: %Make.specific_fn.loc20: = specific_function %Make.ref.loc20, @Make(constants.%C) [template = constants.%Make.specific_fn.834] // CHECK:STDOUT: %.loc20_7: ref %C = splice_block %c.var {} // CHECK:STDOUT: %Make.call.loc20: init %C = call %Make.specific_fn.loc20() to %.loc20_7 // CHECK:STDOUT: assign %c.var, %Make.call.loc20 @@ -189,18 +189,18 @@ fn G() { // CHECK:STDOUT: %T.patt.loc11_12.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type => constants.%Make.type.8f2 -// CHECK:STDOUT: %Make => constants.%Make.017 +// CHECK:STDOUT: %Make.type => constants.%Make.type.652 +// CHECK:STDOUT: %Make => constants.%Make.eb2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %Make.type => constants.%Make.type.8f2 -// CHECK:STDOUT: %Make => constants.%Make.017 -// CHECK:STDOUT: %Make.specific_fn.loc12_27.2 => constants.%Make.specific_fn.b56 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %Make.type => constants.%Make.type.652 +// CHECK:STDOUT: %Make => constants.%Make.eb2 +// CHECK:STDOUT: %Make.specific_fn.loc12_27.2 => constants.%Make.specific_fn.bf1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(%T.loc11_12.2) {} @@ -214,8 +214,8 @@ fn G() { // CHECK:STDOUT: %T.patt.loc11_12.2 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type => constants.%Make.type.cc6 -// CHECK:STDOUT: %Make => constants.%Make.115 +// CHECK:STDOUT: %Make.type => constants.%Make.type.572 +// CHECK:STDOUT: %Make => constants.%Make.2c5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%i32) { @@ -223,9 +223,9 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Make.type => constants.%Make.type.cc6 -// CHECK:STDOUT: %Make => constants.%Make.115 -// CHECK:STDOUT: %Make.specific_fn.loc12_27.2 => constants.%Make.specific_fn.05c +// CHECK:STDOUT: %Make.type => constants.%Make.type.572 +// CHECK:STDOUT: %Make => constants.%Make.2c5 +// CHECK:STDOUT: %Make.specific_fn.loc12_27.2 => constants.%Make.specific_fn.f29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%empty_tuple.type) { @@ -233,8 +233,8 @@ fn G() { // CHECK:STDOUT: %T.patt.loc11_12.2 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type => constants.%Make.type.2c9 -// CHECK:STDOUT: %Make => constants.%Make.b25 +// CHECK:STDOUT: %Make.type => constants.%Make.type.20e +// CHECK:STDOUT: %Make => constants.%Make.de0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%empty_tuple.type) { @@ -242,9 +242,9 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.782 -// CHECK:STDOUT: %Make.type => constants.%Make.type.2c9 -// CHECK:STDOUT: %Make => constants.%Make.b25 -// CHECK:STDOUT: %Make.specific_fn.loc12_27.2 => constants.%Make.specific_fn.086 +// CHECK:STDOUT: %Make.type => constants.%Make.type.20e +// CHECK:STDOUT: %Make => constants.%Make.de0 +// CHECK:STDOUT: %Make.specific_fn.loc12_27.2 => constants.%Make.specific_fn.e43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%C) { @@ -252,17 +252,17 @@ fn G() { // CHECK:STDOUT: %T.patt.loc11_12.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type => constants.%Make.type.c1b -// CHECK:STDOUT: %Make => constants.%Make.0a1 +// CHECK:STDOUT: %Make.type => constants.%Make.type.708 +// CHECK:STDOUT: %Make => constants.%Make.e4b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%C) { // CHECK:STDOUT: %T => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.b49 -// CHECK:STDOUT: %Make.type => constants.%Make.type.c1b -// CHECK:STDOUT: %Make => constants.%Make.0a1 -// CHECK:STDOUT: %Make.specific_fn.loc12_27.2 => constants.%Make.specific_fn.9b4 +// CHECK:STDOUT: %require_complete => constants.%complete_type.22a +// CHECK:STDOUT: %Make.type => constants.%Make.type.708 +// CHECK:STDOUT: %Make => constants.%Make.e4b +// CHECK:STDOUT: %Make.specific_fn.loc12_27.2 => constants.%Make.specific_fn.834 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/undefined.carbon b/toolchain/check/testdata/function/generic/undefined.carbon index c2e9cffa6a91..e5f20492ce84 100644 --- a/toolchain/check/testdata/function/generic/undefined.carbon +++ b/toolchain/check/testdata/function/generic/undefined.carbon @@ -57,7 +57,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Defined.type: type = fn_type @Defined [template] // CHECK:STDOUT: %Defined: %Defined.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %CallDefined.type: type = fn_type @CallDefined [template] @@ -65,20 +65,20 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.1b9: type = fn_type @Convert.1, @As(%i32) [template] -// CHECK:STDOUT: %impl_witness.c9a: = impl_witness (imports.%import_ref.6fa), @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.type.531: type = fn_type @Convert.5, @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.6c4: %Convert.type.531 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.6c4 [template] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [template] +// CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%import_ref.78a), @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %Defined.specific_fn: = specific_function %Defined, @Defined(%i32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -124,7 +124,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %T.patt.loc4_12.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_12.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Defined.%T.loc4_12.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Defined.%T.loc4_12.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: @Defined.%T.loc4_12.2 (%T)) -> @Defined.%T.loc4_12.2 (%T) { // CHECK:STDOUT: !entry: @@ -139,12 +139,12 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc9: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc9: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.c9a, element0 [template = constants.%Convert.6c4] +// CHECK:STDOUT: %impl.elem0: %Convert.type.99b = impl_witness_access constants.%impl_witness.882, element0 [template = constants.%Convert.197] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc9_20.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc9_20.2: %i32 = converted %int_0, %.loc9_20.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc9_20.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc9_20.2: %i32 = converted %int_0, %.loc9_20.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %Defined.specific_fn: = specific_function %Defined.ref, @Defined(constants.%i32) [template = constants.%Defined.specific_fn] // CHECK:STDOUT: %Defined.call: init %i32 = call %Defined.specific_fn(%.loc9_20.2) // CHECK:STDOUT: %.loc9_27.1: %i32 = value_of_initializer %Defined.call @@ -179,21 +179,21 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.1b9: type = fn_type @Convert.1, @As(%i32) [template] -// CHECK:STDOUT: %impl_witness.c9a: = impl_witness (imports.%import_ref.6fa), @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.type.531: type = fn_type @Convert.5, @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.6c4: %Convert.type.531 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.6c4 [template] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [template] +// CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%import_ref.78a), @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %Defined.specific_fn: = specific_function %Defined, @Defined(%i32) [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -256,7 +256,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %T.patt.loc4: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Defined.%T.loc4_12.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Defined.%T.loc4_12.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.param_patt: type](%x.param_patt: %T) -> %T { // CHECK:STDOUT: !entry: @@ -271,12 +271,12 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc7: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc7: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.c9a, element0 [template = constants.%Convert.6c4] +// CHECK:STDOUT: %impl.elem0: %Convert.type.99b = impl_witness_access constants.%impl_witness.882, element0 [template = constants.%Convert.197] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc7_20.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc7_20.2: %i32 = converted %int_0, %.loc7_20.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc7_20.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc7_20.2: %i32 = converted %int_0, %.loc7_20.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %Defined.specific_fn: = specific_function %Defined.ref, @Defined(constants.%i32) [template = constants.%Defined.specific_fn] // CHECK:STDOUT: %Defined.call: init %i32 = call %Defined.specific_fn(%.loc7_20.2) // CHECK:STDOUT: %.loc7_27.1: %i32 = value_of_initializer %Defined.call @@ -309,20 +309,20 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %CallUndefined.type: type = fn_type @CallUndefined [template] // CHECK:STDOUT: %CallUndefined: %CallUndefined.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.1b9: type = fn_type @Convert.1, @As(%i32) [template] -// CHECK:STDOUT: %impl_witness.c9a: = impl_witness (imports.%import_ref.6fa), @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.type.531: type = fn_type @Convert.5, @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.6c4: %Convert.type.531 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.6c4 [template] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [template] +// CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%import_ref.78a), @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %Undefined.specific_fn: = specific_function %Undefined, @Undefined(%i32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -376,12 +376,12 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.c9a, element0 [template = constants.%Convert.6c4] +// CHECK:STDOUT: %impl.elem0: %Convert.type.99b = impl_witness_access constants.%impl_witness.882, element0 [template = constants.%Convert.197] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc13_22.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc13_22.2: %i32 = converted %int_0, %.loc13_22.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc13_22.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc13_22.2: %i32 = converted %int_0, %.loc13_22.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %Undefined.specific_fn: = specific_function %Undefined.ref, @Undefined(constants.%i32) [template = constants.%Undefined.specific_fn] // CHECK:STDOUT: %Undefined.call: init %i32 = call %Undefined.specific_fn(%.loc13_22.2) // CHECK:STDOUT: %.loc13_29.1: %i32 = value_of_initializer %Undefined.call diff --git a/toolchain/check/testdata/generic/complete_type.carbon b/toolchain/check/testdata/generic/complete_type.carbon index c7bf4987eea4..2fc9bd319e2e 100644 --- a/toolchain/check/testdata/generic/complete_type.carbon +++ b/toolchain/check/testdata/generic/complete_type.carbon @@ -83,15 +83,15 @@ fn G() { F(B); } // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %A.type: type = generic_class_type @A [template] // CHECK:STDOUT: %A.generic: %A.type = struct_value () [template] -// CHECK:STDOUT: %A.619: type = class_type @A, @A(%T) [symbolic] +// CHECK:STDOUT: %A.130: type = class_type @A, @A(%T) [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %A.elem.78a: type = unbound_element_type %A.619, %T [symbolic] -// CHECK:STDOUT: %struct_type.v.65f: type = struct_type {.v: %T} [symbolic] -// CHECK:STDOUT: %complete_type.5c5: = complete_type_witness %struct_type.v.65f [symbolic] -// CHECK:STDOUT: %A.ffe: type = class_type @A, @A(%B) [template] +// CHECK:STDOUT: %A.elem.1ce: type = unbound_element_type %A.130, %T [symbolic] +// CHECK:STDOUT: %struct_type.v.ff1: type = struct_type {.v: %T} [symbolic] +// CHECK:STDOUT: %complete_type.460: = complete_type_witness %struct_type.v.ff1 [symbolic] +// CHECK:STDOUT: %A.1d4: type = class_type @A, @A(%B) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %A.elem.853: type = unbound_element_type %A.ffe, %B [template] +// CHECK:STDOUT: %A.elem.4ce: type = unbound_element_type %A.1d4, %B [template] // CHECK:STDOUT: %struct_type.v.d45: type = struct_type {.v: %B} [template] // CHECK:STDOUT: %complete_type.1df: = complete_type_witness %struct_type.v.d45 [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] @@ -122,16 +122,16 @@ fn G() { F(B); } // CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %x.patt: %A.ffe = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %A.ffe = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: %A.1d4 = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %A.1d4 = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: %A.ffe = value_param runtime_param0 -// CHECK:STDOUT: %.loc27: type = splice_block %A [template = constants.%A.ffe] { +// CHECK:STDOUT: %x.param: %A.1d4 = value_param runtime_param0 +// CHECK:STDOUT: %.loc27: type = splice_block %A [template = constants.%A.1d4] { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [template = constants.%A.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl.loc4 [template = constants.%B] -// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%B) [template = constants.%A.ffe] +// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%B) [template = constants.%A.1d4] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %A.ffe = bind_name x, %x.param +// CHECK:STDOUT: %x: %A.1d4 = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl.loc29: type = class_decl @B [template = constants.%B] {} {} // CHECK:STDOUT: } @@ -150,23 +150,23 @@ fn G() { F(B); } // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @A.%T.loc6_9.2 (%T) [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc6_9.2) [symbolic = %A (constants.%A.619)] -// CHECK:STDOUT: %A.elem: type = unbound_element_type @A.%A (%A.619), @A.%T.loc6_9.2 (%T) [symbolic = %A.elem (constants.%A.elem.78a)] -// CHECK:STDOUT: %struct_type.v: type = struct_type {.v: @A.%T.loc6_9.2 (%T)} [symbolic = %struct_type.v (constants.%struct_type.v.65f)] -// CHECK:STDOUT: %complete_type.loc14_1.2: = complete_type_witness @A.%struct_type.v (%struct_type.v.65f) [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.5c5)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc6_9.2) [symbolic = %A (constants.%A.130)] +// CHECK:STDOUT: %A.elem: type = unbound_element_type @A.%A (%A.130), @A.%T.loc6_9.2 (%T) [symbolic = %A.elem (constants.%A.elem.1ce)] +// CHECK:STDOUT: %struct_type.v: type = struct_type {.v: @A.%T.loc6_9.2 (%T)} [symbolic = %struct_type.v (constants.%struct_type.v.ff1)] +// CHECK:STDOUT: %complete_type.loc14_1.2: = complete_type_witness @A.%struct_type.v (%struct_type.v.ff1) [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.460)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc13: @A.%A.elem (%A.elem.78a) = field_decl v, element0 [template] -// CHECK:STDOUT: %complete_type.loc14_1.1: = complete_type_witness %struct_type.v.65f [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.5c5)] +// CHECK:STDOUT: %.loc13: @A.%A.elem (%A.elem.1ce) = field_decl v, element0 [template] +// CHECK:STDOUT: %complete_type.loc14_1.1: = complete_type_witness %struct_type.v.ff1 [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.460)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%A.619 +// CHECK:STDOUT: .Self = constants.%A.130 // CHECK:STDOUT: .v = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type.loc14_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%x.param_patt: %A.ffe) { +// CHECK:STDOUT: fn @F(%x.param_patt: %A.1d4) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -184,8 +184,8 @@ fn G() { F(B); } // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => -// CHECK:STDOUT: %A => constants.%A.ffe -// CHECK:STDOUT: %A.elem => constants.%A.elem.853 +// CHECK:STDOUT: %A => constants.%A.1d4 +// CHECK:STDOUT: %A.elem => constants.%A.elem.4ce // CHECK:STDOUT: %struct_type.v => constants.%struct_type.v.d45 // CHECK:STDOUT: %complete_type.loc14_1.2 => constants.%complete_type.1df // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/global/decl.carbon b/toolchain/check/testdata/global/decl.carbon index 3e367afe3b26..12bfb9ce58b6 100644 --- a/toolchain/check/testdata/global/decl.carbon +++ b/toolchain/check/testdata/global/decl.carbon @@ -18,7 +18,7 @@ var a: i32; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/global/simple_init.carbon b/toolchain/check/testdata/global/simple_init.carbon index dbc9c3260dab..b1f78fd559bf 100644 --- a/toolchain/check/testdata/global/simple_init.carbon +++ b/toolchain/check/testdata/global/simple_init.carbon @@ -15,19 +15,19 @@ var a: i32 = 0; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -46,11 +46,11 @@ var a: i32 = 0; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc10: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc10: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign file.%a.var, %.loc10 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/global/simple_with_fun.carbon b/toolchain/check/testdata/global/simple_with_fun.carbon index 595a17e9245f..d367cb8d339d 100644 --- a/toolchain/check/testdata/global/simple_with_fun.carbon +++ b/toolchain/check/testdata/global/simple_with_fun.carbon @@ -22,19 +22,19 @@ var a: i32 = test_a(); // CHECK:STDOUT: %test_a.type: type = fn_type @test_a [template] // CHECK:STDOUT: %test_a: %test_a.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -63,12 +63,12 @@ var a: i32 = test_a(); // CHECK:STDOUT: fn @test_a() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_0, %.loc12_11.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_0, %.loc12_11.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc12_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon b/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon index 9c246d73ce7c..dcd4fae80688 100644 --- a/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon +++ b/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon @@ -49,28 +49,28 @@ fn If3(b: bool) -> i32 { // CHECK:STDOUT: %If1.type: type = fn_type @If1 [template] // CHECK:STDOUT: %If1: %If1.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %If2.type: type = fn_type @If2 [template] // CHECK:STDOUT: %If2: %If2.type = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: %If3.type: type = fn_type @If3 [template] // CHECK:STDOUT: %If3: %If3.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -147,12 +147,12 @@ fn If3(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_13.2: %i32 = converted %int_1, %.loc13_13.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_13.2: %i32 = converted %int_1, %.loc13_13.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc13_13.2 // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -171,12 +171,12 @@ fn If3(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc25_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc25_13.2: %i32 = converted %int_2, %.loc25_13.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc25_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc25_13.2: %i32 = converted %int_2, %.loc25_13.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: return %.loc25_13.2 // CHECK:STDOUT: // CHECK:STDOUT: !if.done: @@ -189,12 +189,12 @@ fn If3(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc35_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc35_13.2: %i32 = converted %int_1, %.loc35_13.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc35_13.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc35_13.2: %i32 = converted %int_1, %.loc35_13.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc35_13.2 // CHECK:STDOUT: // CHECK:STDOUT: !if.else: diff --git a/toolchain/check/testdata/if/fail_scope.carbon b/toolchain/check/testdata/if/fail_scope.carbon index efaa6f16bbb3..beb7901af526 100644 --- a/toolchain/check/testdata/if/fail_scope.carbon +++ b/toolchain/check/testdata/if/fail_scope.carbon @@ -29,20 +29,20 @@ fn VarScope(b: bool) -> i32 { // CHECK:STDOUT: %VarScope.type: type = fn_type @VarScope [template] // CHECK:STDOUT: %VarScope: %VarScope.type = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -83,11 +83,11 @@ fn VarScope(b: bool) -> i32 { // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %n: ref %i32 = bind_name n, %n.var // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc13: init %i32 = converted %int_2, %int.convert_checked [template = constants.%int_2.166] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc13: init %i32 = converted %int_2, %int.convert_checked [template = constants.%int_2.ef8] // CHECK:STDOUT: assign %n.var, %.loc13 // CHECK:STDOUT: %n.ref.loc14: ref %i32 = name_ref n, %n // CHECK:STDOUT: %.loc14: %i32 = bind_value %n.ref.loc14 diff --git a/toolchain/check/testdata/if/unreachable_fallthrough.carbon b/toolchain/check/testdata/if/unreachable_fallthrough.carbon index e6eb2b78d2bd..2155e3140b72 100644 --- a/toolchain/check/testdata/if/unreachable_fallthrough.carbon +++ b/toolchain/check/testdata/if/unreachable_fallthrough.carbon @@ -27,24 +27,24 @@ fn If(b: bool) -> i32 { // CHECK:STDOUT: %If.type: type = fn_type @If [template] // CHECK:STDOUT: %If: %If.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -83,22 +83,22 @@ fn If(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_1, %impl.elem0.loc13 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_13.1: %i32 = value_of_initializer %int.convert_checked.loc13 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc13_13.2: %i32 = converted %int_1, %.loc13_13.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_1, %impl.elem0.loc13 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_13.1: %i32 = value_of_initializer %int.convert_checked.loc13 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc13_13.2: %i32 = converted %int_1, %.loc13_13.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc13_13.2 // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_2, %impl.elem0.loc15 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc15_13.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc15_13.2: %i32 = converted %int_2, %.loc15_13.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_2, %impl.elem0.loc15 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc15_13.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc15_13.2: %i32 = converted %int_2, %.loc15_13.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: return %.loc15_13.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index 9b220bb73673..f95d03b387d6 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -26,21 +26,21 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_0.f61) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_0.6a9) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -94,14 +94,14 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %x: ref %array_type = bind_name x, %x.var // CHECK:STDOUT: %int_0.loc12_22: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc12_24.1: %tuple.type = tuple_literal (%int_0.loc12_22) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.loc12_22, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0.loc12_22) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_24.2: init %i32 = converted %int_0.loc12_22, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0.loc12_22) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_24.2: init %i32 = converted %int_0.loc12_22, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: %int_0.loc12_24: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc12_24.3: ref %i32 = array_index %x.var, %int_0.loc12_24 -// CHECK:STDOUT: %.loc12_24.4: init %i32 = initialize_from %.loc12_24.2 to %.loc12_24.3 [template = constants.%int_0.f61] +// CHECK:STDOUT: %.loc12_24.4: init %i32 = initialize_from %.loc12_24.2 to %.loc12_24.3 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc12_24.5: init %array_type = array_init (%.loc12_24.4) to %x.var [template = constants.%array] // CHECK:STDOUT: %.loc12_25: init %array_type = converted %.loc12_24.1, %.loc12_24.5 [template = constants.%array] // CHECK:STDOUT: assign %x.var, %.loc12_25 diff --git a/toolchain/check/testdata/if_expr/constant_condition.carbon b/toolchain/check/testdata/if_expr/constant_condition.carbon index 99df0647912e..4b5a565048ba 100644 --- a/toolchain/check/testdata/if_expr/constant_condition.carbon +++ b/toolchain/check/testdata/if_expr/constant_condition.carbon @@ -39,19 +39,19 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %A.type: type = fn_type @A [template] // CHECK:STDOUT: %A: %A.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] @@ -67,8 +67,8 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -148,24 +148,24 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_25.2: %i32 = converted %int_1, %.loc11_25.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_25.2: %i32 = converted %int_1, %.loc11_25.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc11_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @B() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_25.2: %i32 = converted %int_2, %.loc12_25.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_25.2: %i32 = converted %int_2, %.loc12_25.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: return %.loc12_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -222,11 +222,11 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc23: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc23: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %v.var, %.loc23 // CHECK:STDOUT: %w.var: ref %ptr = var w // CHECK:STDOUT: %w: ref %ptr = bind_name w, %w.var @@ -245,11 +245,11 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc29: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc29: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %v.var, %.loc29 // CHECK:STDOUT: %w.var: ref %ptr = var w // CHECK:STDOUT: %w: ref %ptr = bind_name w, %w.var diff --git a/toolchain/check/testdata/if_expr/control_flow.carbon b/toolchain/check/testdata/if_expr/control_flow.carbon index a430741d5948..be1dd61a4efc 100644 --- a/toolchain/check/testdata/if_expr/control_flow.carbon +++ b/toolchain/check/testdata/if_expr/control_flow.carbon @@ -23,19 +23,19 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %A.type: type = fn_type @A [template] // CHECK:STDOUT: %A: %A.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] @@ -44,9 +44,9 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -101,24 +101,24 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_25.2: %i32 = converted %int_1, %.loc11_25.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_25.2: %i32 = converted %int_1, %.loc11_25.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc11_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @B() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_25.2: %i32 = converted %int_2, %.loc12_25.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_25.2: %i32 = converted %int_2, %.loc12_25.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: return %.loc12_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/fail_not_in_function.carbon b/toolchain/check/testdata/if_expr/fail_not_in_function.carbon index e854acfd161a..2ba57df9b9db 100644 --- a/toolchain/check/testdata/if_expr/fail_not_in_function.carbon +++ b/toolchain/check/testdata/if_expr/fail_not_in_function.carbon @@ -60,14 +60,14 @@ class C { // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Float = %import_ref.20bd +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -96,7 +96,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc49: %C.elem = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C diff --git a/toolchain/check/testdata/if_expr/fail_partial_constant.carbon b/toolchain/check/testdata/if_expr/fail_partial_constant.carbon index b643247de032..2dc93ce5c039 100644 --- a/toolchain/check/testdata/if_expr/fail_partial_constant.carbon +++ b/toolchain/check/testdata/if_expr/fail_partial_constant.carbon @@ -51,8 +51,8 @@ fn ChosenBranchIsNonConstant(t: type) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -97,7 +97,7 @@ fn ChosenBranchIsNonConstant(t: type) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if_expr/nested.carbon b/toolchain/check/testdata/if_expr/nested.carbon index 2721674b18d4..6e5bc3ee1359 100644 --- a/toolchain/check/testdata/if_expr/nested.carbon +++ b/toolchain/check/testdata/if_expr/nested.carbon @@ -22,32 +22,32 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -110,22 +110,22 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc12_25: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_25: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc12_25: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_25: = bound_method %int_1, %impl.elem0.loc12_25 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc12_25: = specific_function %Convert.bound.loc12_25, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc12_25: init %i32 = call %Convert.specific_fn.loc12_25(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_25.1: %i32 = value_of_initializer %int.convert_checked.loc12_25 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_25.2: %i32 = converted %int_1, %.loc12_25.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc12_25: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_25: = bound_method %int_1, %impl.elem0.loc12_25 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc12_25: = specific_function %Convert.bound.loc12_25, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc12_25: init %i32 = call %Convert.specific_fn.loc12_25(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_25.1: %i32 = value_of_initializer %int.convert_checked.loc12_25 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_25.2: %i32 = converted %int_1, %.loc12_25.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: br !if.expr.result.loc12_20(%.loc12_25.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc12_20: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc12_32: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_32: = bound_method %int_2, %impl.elem0.loc12_32 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc12_32: = specific_function %Convert.bound.loc12_32, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc12_32: init %i32 = call %Convert.specific_fn.loc12_32(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_32.1: %i32 = value_of_initializer %int.convert_checked.loc12_32 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_32.2: %i32 = converted %int_2, %.loc12_32.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc12_32: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_32: = bound_method %int_2, %impl.elem0.loc12_32 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc12_32: = specific_function %Convert.bound.loc12_32, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc12_32: init %i32 = call %Convert.specific_fn.loc12_32(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_32.1: %i32 = value_of_initializer %int.convert_checked.loc12_32 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_32.2: %i32 = converted %int_2, %.loc12_32.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: br !if.expr.result.loc12_20(%.loc12_32.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc12_20: @@ -140,22 +140,22 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %int_32.loc12_49: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_49: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc12_49: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_49: = bound_method %int_3, %impl.elem0.loc12_49 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc12_49: = specific_function %Convert.bound.loc12_49, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc12_49: init %i32 = call %Convert.specific_fn.loc12_49(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc12_49.1: %i32 = value_of_initializer %int.convert_checked.loc12_49 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc12_49.2: %i32 = converted %int_3, %.loc12_49.1 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc12_49: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_49: = bound_method %int_3, %impl.elem0.loc12_49 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc12_49: = specific_function %Convert.bound.loc12_49, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc12_49: init %i32 = call %Convert.specific_fn.loc12_49(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc12_49.1: %i32 = value_of_initializer %int.convert_checked.loc12_49 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc12_49.2: %i32 = converted %int_3, %.loc12_49.1 [template = constants.%int_3.822] // CHECK:STDOUT: br !if.expr.result.loc12_44(%.loc12_49.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc12_44: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc12_56: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_56: = bound_method %int_4, %impl.elem0.loc12_56 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc12_56: = specific_function %Convert.bound.loc12_56, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc12_56: init %i32 = call %Convert.specific_fn.loc12_56(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc12_56.1: %i32 = value_of_initializer %int.convert_checked.loc12_56 [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc12_56.2: %i32 = converted %int_4, %.loc12_56.1 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc12_56: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_56: = bound_method %int_4, %impl.elem0.loc12_56 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc12_56: = specific_function %Convert.bound.loc12_56, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc12_56: init %i32 = call %Convert.specific_fn.loc12_56(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc12_56.1: %i32 = value_of_initializer %int.convert_checked.loc12_56 [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc12_56.2: %i32 = converted %int_4, %.loc12_56.1 [template = constants.%int_4.940] // CHECK:STDOUT: br !if.expr.result.loc12_44(%.loc12_56.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc12_44: diff --git a/toolchain/check/testdata/if_expr/struct.carbon b/toolchain/check/testdata/if_expr/struct.carbon index 59ea4d29bd87..dfbe6e1f8f1f 100644 --- a/toolchain/check/testdata/if_expr/struct.carbon +++ b/toolchain/check/testdata/if_expr/struct.carbon @@ -21,7 +21,7 @@ fn F(cond: bool) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] @@ -31,24 +31,24 @@ fn F(cond: bool) { // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %struct: %struct_type.a.b.3de = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %struct: %struct_type.a.b.501 = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -62,18 +62,18 @@ fn F(cond: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %s.patt: %struct_type.a.b.3de = binding_pattern s -// CHECK:STDOUT: %s.param_patt: %struct_type.a.b.3de = value_param_pattern %s.patt, runtime_param0 +// CHECK:STDOUT: %s.patt: %struct_type.a.b.501 = binding_pattern s +// CHECK:STDOUT: %s.param_patt: %struct_type.a.b.501 = value_param_pattern %s.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %s.param: %struct_type.a.b.3de = value_param runtime_param0 -// CHECK:STDOUT: %.loc11: type = splice_block %struct_type.a.b [template = constants.%struct_type.a.b.3de] { +// CHECK:STDOUT: %s.param: %struct_type.a.b.501 = value_param runtime_param0 +// CHECK:STDOUT: %.loc11: type = splice_block %struct_type.a.b [template = constants.%struct_type.a.b.501] { // CHECK:STDOUT: %int_32.loc11_14: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_14: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc11_23: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_23: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b.3de] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b.501] // CHECK:STDOUT: } -// CHECK:STDOUT: %s: %struct_type.a.b.3de = bind_name s, %s.param +// CHECK:STDOUT: %s: %struct_type.a.b.501 = bind_name s, %s.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %cond.patt: bool = binding_pattern cond @@ -89,58 +89,58 @@ fn F(cond: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%s.param_patt: %struct_type.a.b.3de); +// CHECK:STDOUT: fn @G(%s.param_patt: %struct_type.a.b.501); // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%cond.param_patt: bool) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.var: ref %struct_type.a.b.3de = var a -// CHECK:STDOUT: %a: ref %struct_type.a.b.3de = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %struct_type.a.b.501 = var a +// CHECK:STDOUT: %a: ref %struct_type.a.b.501 = bind_name a, %a.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc14_46.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc14_46.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_46.1: = bound_method %int_1, %impl.elem0.loc14_46.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc14_46.1: = specific_function %Convert.bound.loc14_46.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc14_46.1: init %i32 = call %Convert.specific_fn.loc14_46.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_46.2: init %i32 = converted %int_1, %int.convert_checked.loc14_46.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc14_46.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_46.1: = bound_method %int_1, %impl.elem0.loc14_46.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc14_46.1: = specific_function %Convert.bound.loc14_46.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc14_46.1: init %i32 = call %Convert.specific_fn.loc14_46.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_46.2: init %i32 = converted %int_1, %int.convert_checked.loc14_46.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_46.3: ref %i32 = struct_access %a.var, element0 -// CHECK:STDOUT: %.loc14_46.4: init %i32 = initialize_from %.loc14_46.2 to %.loc14_46.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc14_46.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_46.2: = bound_method %int_2, %impl.elem0.loc14_46.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc14_46.2: = specific_function %Convert.bound.loc14_46.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc14_46.2: init %i32 = call %Convert.specific_fn.loc14_46.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_46.5: init %i32 = converted %int_2, %int.convert_checked.loc14_46.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc14_46.4: init %i32 = initialize_from %.loc14_46.2 to %.loc14_46.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc14_46.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_46.2: = bound_method %int_2, %impl.elem0.loc14_46.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc14_46.2: = specific_function %Convert.bound.loc14_46.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc14_46.2: init %i32 = call %Convert.specific_fn.loc14_46.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_46.5: init %i32 = converted %int_2, %int.convert_checked.loc14_46.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc14_46.6: ref %i32 = struct_access %a.var, element1 -// CHECK:STDOUT: %.loc14_46.7: init %i32 = initialize_from %.loc14_46.5 to %.loc14_46.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_46.8: init %struct_type.a.b.3de = struct_init (%.loc14_46.4, %.loc14_46.7) to %a.var [template = constants.%struct] -// CHECK:STDOUT: %.loc14_47: init %struct_type.a.b.3de = converted %.loc14_46.1, %.loc14_46.8 [template = constants.%struct] +// CHECK:STDOUT: %.loc14_46.7: init %i32 = initialize_from %.loc14_46.5 to %.loc14_46.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_46.8: init %struct_type.a.b.501 = struct_init (%.loc14_46.4, %.loc14_46.7) to %a.var [template = constants.%struct] +// CHECK:STDOUT: %.loc14_47: init %struct_type.a.b.501 = converted %.loc14_46.1, %.loc14_46.8 [template = constants.%struct] // CHECK:STDOUT: assign %a.var, %.loc14_47 // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [template = 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.loc15_18: ref %struct_type.a.b.3de = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc15_18: ref %struct_type.a.b.501 = name_ref a, %a // CHECK:STDOUT: %.loc15_18.1: ref %i32 = struct_access %a.ref.loc15_18, element0 // CHECK:STDOUT: %.loc15_18.2: %i32 = bind_value %.loc15_18.1 // CHECK:STDOUT: %.loc15_18.3: ref %i32 = struct_access %a.ref.loc15_18, element1 // CHECK:STDOUT: %.loc15_18.4: %i32 = bind_value %.loc15_18.3 -// CHECK:STDOUT: %struct.loc15_18: %struct_type.a.b.3de = struct_value (%.loc15_18.2, %.loc15_18.4) -// CHECK:STDOUT: %.loc15_18.5: %struct_type.a.b.3de = converted %a.ref.loc15_18, %struct.loc15_18 +// CHECK:STDOUT: %struct.loc15_18: %struct_type.a.b.501 = struct_value (%.loc15_18.2, %.loc15_18.4) +// CHECK:STDOUT: %.loc15_18.5: %struct_type.a.b.501 = converted %a.ref.loc15_18, %struct.loc15_18 // CHECK:STDOUT: br !if.expr.result(%.loc15_18.5) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else: -// CHECK:STDOUT: %a.ref.loc15_25: ref %struct_type.a.b.3de = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc15_25: ref %struct_type.a.b.501 = name_ref a, %a // CHECK:STDOUT: %.loc15_25.1: ref %i32 = struct_access %a.ref.loc15_25, element0 // CHECK:STDOUT: %.loc15_25.2: %i32 = bind_value %.loc15_25.1 // CHECK:STDOUT: %.loc15_25.3: ref %i32 = struct_access %a.ref.loc15_25, element1 // CHECK:STDOUT: %.loc15_25.4: %i32 = bind_value %.loc15_25.3 -// CHECK:STDOUT: %struct.loc15_25: %struct_type.a.b.3de = struct_value (%.loc15_25.2, %.loc15_25.4) -// CHECK:STDOUT: %.loc15_20: %struct_type.a.b.3de = converted %a.ref.loc15_25, %struct.loc15_25 +// CHECK:STDOUT: %struct.loc15_25: %struct_type.a.b.501 = struct_value (%.loc15_25.2, %.loc15_25.4) +// CHECK:STDOUT: %.loc15_20: %struct_type.a.b.501 = converted %a.ref.loc15_25, %struct.loc15_25 // CHECK:STDOUT: br !if.expr.result(%.loc15_20) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: -// CHECK:STDOUT: %.loc15_5: %struct_type.a.b.3de = block_arg !if.expr.result +// CHECK:STDOUT: %.loc15_5: %struct_type.a.b.501 = block_arg !if.expr.result // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.ref(%.loc15_5) // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/compound.carbon b/toolchain/check/testdata/impl/compound.carbon index 60b0b6b531eb..7d0fd2f03458 100644 --- a/toolchain/check/testdata/impl/compound.carbon +++ b/toolchain/check/testdata/impl/compound.carbon @@ -38,25 +38,25 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [template] -// CHECK:STDOUT: %Self.7d2: %Simple.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.c46: type = fn_type @F.1 [template] +// CHECK:STDOUT: %Self.3c9: %Simple.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.e2e: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.41f: %F.type.c46 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Simple.type, %F.type.c46 [template] -// CHECK:STDOUT: %assoc0.579: %F.assoc_type = assoc_entity element0, @Simple.%F.decl [template] -// CHECK:STDOUT: %Self.as_type.39e: type = facet_access_type %Self.7d2 [symbolic] -// CHECK:STDOUT: %G.type.1d2: type = fn_type @G.1 [template] -// CHECK:STDOUT: %G.d3c: %G.type.1d2 = struct_value () [template] -// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %Simple.type, %G.type.1d2 [template] +// CHECK:STDOUT: %F.df8: %F.type.e2e = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Simple.type, %F.type.e2e [template] +// CHECK:STDOUT: %assoc0.346: %F.assoc_type = assoc_entity element0, @Simple.%F.decl [template] +// CHECK:STDOUT: %Self.as_type.716: type = facet_access_type %Self.3c9 [symbolic] +// CHECK:STDOUT: %G.type.b60: type = fn_type @G.1 [template] +// CHECK:STDOUT: %G.cb0: %G.type.b60 = struct_value () [template] +// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %Simple.type, %G.type.b60 [template] // CHECK:STDOUT: %assoc1: %G.assoc_type = assoc_entity element1, @Simple.%G.decl [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %impl_witness.99f: = impl_witness (@impl.1.%F.decl, @impl.1.%G.decl) [template] -// CHECK:STDOUT: %F.type.baa: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.2a1: %F.type.baa = struct_value () [template] -// CHECK:STDOUT: %G.type.1b3: type = fn_type @G.2 [template] -// CHECK:STDOUT: %G.8c8: %G.type.1b3 = struct_value () [template] -// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %i32, %impl_witness.99f [template] +// CHECK:STDOUT: %impl_witness.5b2: = impl_witness (@impl.1.%F.decl, @impl.1.%G.decl) [template] +// CHECK:STDOUT: %F.type.758: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.df1: %F.type.758 = struct_value () [template] +// CHECK:STDOUT: %G.type.c98: type = fn_type @G.2 [template] +// CHECK:STDOUT: %G.e73: %G.type.c98 = struct_value () [template] +// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %i32, %impl_witness.5b2 [template] // CHECK:STDOUT: %NonInstanceCall.type: type = fn_type @NonInstanceCall [template] // CHECK:STDOUT: %NonInstanceCall: %NonInstanceCall.type = struct_value () [template] // CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [template] @@ -70,7 +70,7 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -92,7 +92,7 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [template = constants.%Simple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%F.decl, @impl.1.%G.decl) [template = constants.%impl_witness.99f] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%F.decl, @impl.1.%G.decl) [template = constants.%impl_witness.5b2] // CHECK:STDOUT: %NonInstanceCall.decl: %NonInstanceCall.type = fn_decl @NonInstanceCall [template = constants.%NonInstanceCall] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, runtime_param0 @@ -142,20 +142,20 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Simple { -// CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7d2] -// CHECK:STDOUT: %F.decl: %F.type.c46 = fn_decl @F.1 [template = constants.%F.41f] {} {} -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0.579] -// CHECK:STDOUT: %G.decl: %G.type.1d2 = fn_decl @G.1 [template = constants.%G.d3c] { -// CHECK:STDOUT: %self.patt: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.39e) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.39e) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.3c9] +// CHECK:STDOUT: %F.decl: %F.type.e2e = fn_decl @F.1 [template = constants.%F.df8] {} {} +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0.346] +// CHECK:STDOUT: %G.decl: %G.type.b60 = fn_decl @G.1 [template = constants.%G.cb0] { +// CHECK:STDOUT: %self.patt: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.716) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.716) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.39e) = value_param runtime_param0 -// CHECK:STDOUT: %.loc13_14.1: type = splice_block %.loc13_14.2 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.39e)] { -// CHECK:STDOUT: %Self.ref: %Simple.type = name_ref Self, @Simple.%Self [symbolic = %Self (constants.%Self.7d2)] -// CHECK:STDOUT: %Self.as_type.loc13_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.39e)] -// CHECK:STDOUT: %.loc13_14.2: type = converted %Self.ref, %Self.as_type.loc13_14.2 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.39e)] +// CHECK:STDOUT: %self.param: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.716) = value_param runtime_param0 +// CHECK:STDOUT: %.loc13_14.1: type = splice_block %.loc13_14.2 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.716)] { +// CHECK:STDOUT: %Self.ref: %Simple.type = name_ref Self, @Simple.%Self [symbolic = %Self (constants.%Self.3c9)] +// CHECK:STDOUT: %Self.as_type.loc13_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.716)] +// CHECK:STDOUT: %.loc13_14.2: type = converted %Self.ref, %Self.as_type.loc13_14.2 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.716)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.39e) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.716) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %G.assoc_type = assoc_entity element1, %G.decl [template = constants.%assoc1] // CHECK:STDOUT: @@ -167,8 +167,8 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %i32 as %Simple.ref { -// CHECK:STDOUT: %F.decl: %F.type.baa = fn_decl @F.2 [template = constants.%F.2a1] {} {} -// CHECK:STDOUT: %G.decl: %G.type.1b3 = fn_decl @G.2 [template = constants.%G.8c8] { +// CHECK:STDOUT: %F.decl: %F.type.758 = fn_decl @F.2 [template = constants.%F.df1] {} {} +// CHECK:STDOUT: %G.decl: %G.type.c98 = fn_decl @G.2 [template = constants.%G.e73] { // CHECK:STDOUT: %self.patt: %i32 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %i32 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -192,10 +192,10 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G.1(@Simple.%Self: %Simple.type) { -// CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7d2)] -// CHECK:STDOUT: %Self.as_type.loc13_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.39e)] +// CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.3c9)] +// CHECK:STDOUT: %Self.as_type.loc13_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.716)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.39e)](); +// CHECK:STDOUT: fn[%self.param_patt: @G.1.%Self.as_type.loc13_14.1 (%Self.as_type.716)](); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.2(); @@ -206,8 +206,8 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [template = constants.%Simple.type] -// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @Simple.%assoc0 [template = constants.%assoc0.579] -// CHECK:STDOUT: %impl.elem0: %F.type.c46 = impl_witness_access constants.%impl_witness.99f, element0 [template = constants.%F.2a1] +// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @Simple.%assoc0 [template = constants.%assoc0.346] +// CHECK:STDOUT: %impl.elem0: %F.type.e2e = impl_witness_access constants.%impl_witness.5b2, element0 [template = constants.%F.df1] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -217,7 +217,7 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [template = constants.%Simple.type] // CHECK:STDOUT: %G.ref: %G.assoc_type = name_ref G, @Simple.%assoc1 [template = constants.%assoc1] -// CHECK:STDOUT: %impl.elem1: %G.type.1d2 = impl_witness_access constants.%impl_witness.99f, element1 [template = constants.%G.8c8] +// CHECK:STDOUT: %impl.elem1: %G.type.b60 = impl_witness_access constants.%impl_witness.5b2, element1 [template = constants.%G.e73] // CHECK:STDOUT: %G.bound: = bound_method %n.ref, %impl.elem1 // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.bound(%n.ref) // CHECK:STDOUT: return @@ -227,9 +227,9 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr = name_ref p, %p // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [template = constants.%Simple.type] -// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @Simple.%assoc0 [template = constants.%assoc0.579] +// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @Simple.%assoc0 [template = constants.%assoc0.346] // CHECK:STDOUT: %.loc30: ref %i32 = deref %p.ref -// CHECK:STDOUT: %impl.elem0: %F.type.c46 = impl_witness_access constants.%impl_witness.99f, element0 [template = constants.%F.2a1] +// CHECK:STDOUT: %impl.elem0: %F.type.e2e = impl_witness_access constants.%impl_witness.5b2, element0 [template = constants.%F.df1] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -240,18 +240,18 @@ fn InstanceCallIndirect(p: i32*) { // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [template = constants.%Simple.type] // CHECK:STDOUT: %G.ref: %G.assoc_type = name_ref G, @Simple.%assoc1 [template = constants.%assoc1] // CHECK:STDOUT: %.loc34_4.1: ref %i32 = deref %p.ref -// CHECK:STDOUT: %impl.elem1: %G.type.1d2 = impl_witness_access constants.%impl_witness.99f, element1 [template = constants.%G.8c8] +// CHECK:STDOUT: %impl.elem1: %G.type.b60 = impl_witness_access constants.%impl_witness.5b2, element1 [template = constants.%G.e73] // CHECK:STDOUT: %G.bound: = bound_method %.loc34_4.1, %impl.elem1 // CHECK:STDOUT: %.loc34_4.2: %i32 = bind_value %.loc34_4.1 // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.bound(%.loc34_4.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.7d2) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.3c9) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.7d2) { -// CHECK:STDOUT: %Self => constants.%Self.7d2 -// CHECK:STDOUT: %Self.as_type.loc13_14.1 => constants.%Self.as_type.39e +// CHECK:STDOUT: specific @G.1(constants.%Self.3c9) { +// CHECK:STDOUT: %Self => constants.%Self.3c9 +// CHECK:STDOUT: %Self.as_type.loc13_14.1 => constants.%Self.as_type.716 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%Simple.facet) {} diff --git a/toolchain/check/testdata/impl/declaration.carbon b/toolchain/check/testdata/impl/declaration.carbon index 94fbd1e853af..fcde15ee9f9e 100644 --- a/toolchain/check/testdata/impl/declaration.carbon +++ b/toolchain/check/testdata/impl/declaration.carbon @@ -26,7 +26,7 @@ impl i32 as I {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/empty.carbon b/toolchain/check/testdata/impl/empty.carbon index d2be01499a45..17b83b929fac 100644 --- a/toolchain/check/testdata/impl/empty.carbon +++ b/toolchain/check/testdata/impl/empty.carbon @@ -26,7 +26,7 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/extend_impl.carbon b/toolchain/check/testdata/impl/extend_impl.carbon index 894a6aa60477..9d8df51fa69b 100644 --- a/toolchain/check/testdata/impl/extend_impl.carbon +++ b/toolchain/check/testdata/impl/extend_impl.carbon @@ -28,15 +28,15 @@ fn G(c: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.16d: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.b7b: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.a20: %F.type.16d = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.16d [template] +// CHECK:STDOUT: %F.f50: %F.type.b7b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.b7b [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.cf2: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.f1c: %F.type.cf2 = struct_value () [template] +// CHECK:STDOUT: %F.type.a65: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.ad8: %F.type.a65 = struct_value () [template] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] @@ -73,7 +73,7 @@ fn G(c: C) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.16d = fn_decl @F.1 [template = constants.%F.a20] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b7b = fn_decl @F.1 [template = constants.%F.f50] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -83,7 +83,7 @@ fn G(c: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %Self.ref as %HasF.ref { -// CHECK:STDOUT: %F.decl: %F.type.cf2 = fn_decl @F.2 [template = constants.%F.f1c] {} {} +// CHECK:STDOUT: %F.decl: %F.type.a65 = fn_decl @F.2 [template = constants.%F.ad8] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -118,11 +118,11 @@ fn G(c: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc22: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %F.ref.loc22: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc22: %F.type.16d = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.f1c] +// CHECK:STDOUT: %impl.elem0.loc22: %F.type.b7b = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.ad8] // CHECK:STDOUT: %F.call.loc22: init %empty_tuple.type = call %impl.elem0.loc22() // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %F.ref.loc23: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc23: %F.type.16d = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.f1c] +// CHECK:STDOUT: %impl.elem0.loc23: %F.type.b7b = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.ad8] // CHECK:STDOUT: %F.call.loc23: init %empty_tuple.type = call %impl.elem0.loc23() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index e3a65596722f..b33e50feca71 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -54,48 +54,48 @@ class X(U:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %HasF.type.fe3: type = generic_interface_type @HasF [template] // CHECK:STDOUT: %HasF.generic: %HasF.type.fe3 = struct_value () [template] -// CHECK:STDOUT: %HasF.type.a19: type = facet_type <@HasF, @HasF(%T)> [symbolic] -// CHECK:STDOUT: %Self.340: %HasF.type.a19 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %F.type.38a: type = fn_type @F.1, @HasF(%T) [symbolic] -// CHECK:STDOUT: %F.81b: %F.type.38a = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.cd1: type = assoc_entity_type %HasF.type.a19, %F.type.38a [symbolic] -// CHECK:STDOUT: %assoc0.8ee: %F.assoc_type.cd1 = assoc_entity element0, @HasF.%F.decl [symbolic] +// CHECK:STDOUT: %HasF.type.901: type = facet_type <@HasF, @HasF(%T)> [symbolic] +// CHECK:STDOUT: %Self.322: %HasF.type.901 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %F.type.46c: type = fn_type @F.1, @HasF(%T) [symbolic] +// CHECK:STDOUT: %F.823: %F.type.46c = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.a8c: type = assoc_entity_type %HasF.type.901, %F.type.46c [symbolic] +// CHECK:STDOUT: %assoc0.c51: %F.assoc_type.a8c = assoc_entity element0, @HasF.%F.decl [symbolic] // CHECK:STDOUT: %Param: type = class_type @Param [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %Param.elem: type = unbound_element_type %Param, %i32 [template] -// CHECK:STDOUT: %struct_type.x.b74: type = struct_type {.x: %i32} [template] -// CHECK:STDOUT: %complete_type.f6d: = complete_type_witness %struct_type.x.b74 [template] +// CHECK:STDOUT: %struct_type.x.ed6: type = struct_type {.x: %i32} [template] +// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.x.ed6 [template] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %HasF.type.fd3: type = facet_type <@HasF, @HasF(%Param)> [template] -// CHECK:STDOUT: %F.type.4fd: type = fn_type @F.1, @HasF(%Param) [template] -// CHECK:STDOUT: %F.4ae: %F.type.4fd = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.343: type = assoc_entity_type %HasF.type.fd3, %F.type.4fd [template] -// CHECK:STDOUT: %assoc0.d46: %F.assoc_type.343 = assoc_entity element0, @HasF.%F.decl [template] -// CHECK:STDOUT: %impl_witness.f5c: = impl_witness (@impl.1.%F.decl) [template] -// CHECK:STDOUT: %F.type.ab8: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.cf6: %F.type.ab8 = struct_value () [template] -// CHECK:STDOUT: %HasF.facet: %HasF.type.a19 = facet_value %C, %impl_witness.f5c [symbolic] +// CHECK:STDOUT: %HasF.type.b18: type = facet_type <@HasF, @HasF(%Param)> [template] +// CHECK:STDOUT: %F.type.7f1: type = fn_type @F.1, @HasF(%Param) [template] +// CHECK:STDOUT: %F.eff: %F.type.7f1 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.b26: type = assoc_entity_type %HasF.type.b18, %F.type.7f1 [template] +// CHECK:STDOUT: %assoc0.501: %F.assoc_type.b26 = assoc_entity element0, @HasF.%F.decl [template] +// CHECK:STDOUT: %impl_witness.9bf: = impl_witness (@impl.1.%F.decl) [template] +// CHECK:STDOUT: %F.type.94c: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.901: %F.type.94c = struct_value () [template] +// CHECK:STDOUT: %HasF.facet: %HasF.type.901 = facet_value %C, %impl_witness.9bf [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.x.c96: type = struct_type {.x: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Param.val: %Param = struct_value (%int_2.166) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Param.val: %Param = struct_value (%int_2.ef8) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -134,16 +134,16 @@ class X(U:! type) { // CHECK:STDOUT: %T.patt.loc4_16.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_16.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.a19)] -// CHECK:STDOUT: %Self.2: %HasF.type.a19 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.340)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.38a)] -// CHECK:STDOUT: %F: @HasF.%F.type (%F.type.38a) = struct_value () [symbolic = %F (constants.%F.81b)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.a19), @HasF.%F.type (%F.type.38a) [symbolic = %F.assoc_type (constants.%F.assoc_type.cd1)] -// CHECK:STDOUT: %assoc0.loc5_14.2: @HasF.%F.assoc_type (%F.assoc_type.cd1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_14.2 (constants.%assoc0.8ee)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.901)] +// CHECK:STDOUT: %Self.2: %HasF.type.901 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.322)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.46c)] +// CHECK:STDOUT: %F: @HasF.%F.type (%F.type.46c) = struct_value () [symbolic = %F (constants.%F.823)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.901), @HasF.%F.type (%F.type.46c) [symbolic = %F.assoc_type (constants.%F.assoc_type.a8c)] +// CHECK:STDOUT: %assoc0.loc5_14.2: @HasF.%F.assoc_type (%F.assoc_type.a8c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_14.2 (constants.%assoc0.c51)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.a19) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.340)] -// CHECK:STDOUT: %F.decl: @HasF.%F.type (%F.type.38a) = fn_decl @F.1 [symbolic = @HasF.%F (constants.%F.81b)] { +// CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.901) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.322)] +// CHECK:STDOUT: %F.decl: @HasF.%F.type (%F.type.46c) = fn_decl @F.1 [symbolic = @HasF.%F (constants.%F.823)] { // CHECK:STDOUT: %return.patt: @F.1.%T (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.1.%T (%T) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -151,7 +151,7 @@ class X(U:! type) { // CHECK:STDOUT: %return.param: ref @F.1.%T (%T) = out_param runtime_param0 // CHECK:STDOUT: %return: ref @F.1.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc5_14.1: @HasF.%F.assoc_type (%F.assoc_type.cd1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_14.2 (constants.%assoc0.8ee)] +// CHECK:STDOUT: %assoc0.loc5_14.1: @HasF.%F.assoc_type (%F.assoc_type.a8c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_14.2 (constants.%assoc0.c51)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -161,7 +161,7 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %Self.ref as %HasF.type { -// CHECK:STDOUT: %F.decl: %F.type.ab8 = fn_decl @F.2 [template = constants.%F.cf6] { +// CHECK:STDOUT: %F.decl: %F.type.94c = fn_decl @F.2 [template = constants.%F.901] { // CHECK:STDOUT: %return.patt: %Param = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %Param = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -177,7 +177,7 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Param { // CHECK:STDOUT: %.loc9: %Param.elem = field_decl x, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.b74 [template = constants.%complete_type.f6d] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x.ed6 [template = constants.%complete_type.1ec] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Param @@ -190,9 +190,9 @@ class X(U:! type) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [template = constants.%C] // CHECK:STDOUT: %HasF.ref: %HasF.type.fe3 = name_ref HasF, file.%HasF.decl [template = constants.%HasF.generic] // CHECK:STDOUT: %Param.ref: type = name_ref Param, file.%Param.decl [template = constants.%Param] -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%Param)> [template = constants.%HasF.type.fd3] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%Param)> [template = constants.%HasF.type.b18] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%F.decl) [template = constants.%impl_witness.f5c] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%F.decl) [template = constants.%impl_witness.9bf] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -201,7 +201,7 @@ class X(U:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.a19)) { +// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @F.1.%T (%T); @@ -211,13 +211,13 @@ class X(U:! type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc15_21.1: %struct_type.x.c96 = struct_literal (%int_2) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc15_21.2: init %i32 = converted %int_2, %int.convert_checked [template = constants.%int_2.166] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc15_21.2: init %i32 = converted %int_2, %int.convert_checked [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc15_21.3: ref %i32 = class_element_access %return, element0 -// CHECK:STDOUT: %.loc15_21.4: init %i32 = initialize_from %.loc15_21.2 to %.loc15_21.3 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc15_21.4: init %i32 = initialize_from %.loc15_21.2 to %.loc15_21.3 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc15_21.5: init %Param = class_init (%.loc15_21.4), %return [template = constants.%Param.val] // CHECK:STDOUT: %.loc15_22: init %Param = converted %.loc15_21.1, %.loc15_21.5 [template = constants.%Param.val] // CHECK:STDOUT: return %.loc15_22 to %return @@ -226,9 +226,9 @@ class X(U:! type) { // CHECK:STDOUT: fn @G(%c.param_patt: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc21: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %.loc21_17: %F.assoc_type.343 = specific_constant @HasF.%assoc0.loc5_14.1, @HasF(constants.%Param) [template = constants.%assoc0.d46] -// CHECK:STDOUT: %F.ref.loc21: %F.assoc_type.343 = name_ref F, %.loc21_17 [template = constants.%assoc0.d46] -// CHECK:STDOUT: %impl.elem0.loc21: %F.type.4fd = impl_witness_access constants.%impl_witness.f5c, element0 [template = constants.%F.cf6] +// CHECK:STDOUT: %.loc21_17: %F.assoc_type.b26 = specific_constant @HasF.%assoc0.loc5_14.1, @HasF(constants.%Param) [template = constants.%assoc0.501] +// CHECK:STDOUT: %F.ref.loc21: %F.assoc_type.b26 = name_ref F, %.loc21_17 [template = constants.%assoc0.501] +// CHECK:STDOUT: %impl.elem0.loc21: %F.type.7f1 = impl_witness_access constants.%impl_witness.9bf, element0 [template = constants.%F.901] // CHECK:STDOUT: %.loc21_20.1: ref %Param = temporary_storage // CHECK:STDOUT: %F.call.loc21: init %Param = call %impl.elem0.loc21() to %.loc21_20.1 // CHECK:STDOUT: %.loc21_20.2: ref %Param = temporary %.loc21_20.1, %F.call.loc21 @@ -239,9 +239,9 @@ class X(U:! type) { // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %c.ref: %C = name_ref c, %c -// CHECK:STDOUT: %.loc22_17: %F.assoc_type.343 = specific_constant @HasF.%assoc0.loc5_14.1, @HasF(constants.%Param) [template = constants.%assoc0.d46] -// CHECK:STDOUT: %F.ref.loc22: %F.assoc_type.343 = name_ref F, %.loc22_17 [template = constants.%assoc0.d46] -// CHECK:STDOUT: %impl.elem0.loc22: %F.type.4fd = impl_witness_access constants.%impl_witness.f5c, element0 [template = constants.%F.cf6] +// CHECK:STDOUT: %.loc22_17: %F.assoc_type.b26 = specific_constant @HasF.%assoc0.loc5_14.1, @HasF(constants.%Param) [template = constants.%assoc0.501] +// CHECK:STDOUT: %F.ref.loc22: %F.assoc_type.b26 = name_ref F, %.loc22_17 [template = constants.%assoc0.501] +// CHECK:STDOUT: %impl.elem0.loc22: %F.type.7f1 = impl_witness_access constants.%impl_witness.9bf, element0 [template = constants.%F.901] // CHECK:STDOUT: %.loc22_20.1: ref %Param = temporary_storage // CHECK:STDOUT: %F.call.loc22: init %Param = call %impl.elem0.loc22() to %.loc22_20.1 // CHECK:STDOUT: %.loc22_20.2: ref %Param = temporary %.loc22_20.1, %F.call.loc22 @@ -257,7 +257,7 @@ class X(U:! type) { // CHECK:STDOUT: %T.patt.loc4_16.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self.340) { +// CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self.322) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: @@ -268,12 +268,12 @@ class X(U:! type) { // CHECK:STDOUT: %T.patt.loc4_16.2 => constants.%Param // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.fd3 -// CHECK:STDOUT: %Self.2 => constants.%Self.340 -// CHECK:STDOUT: %F.type => constants.%F.type.4fd -// CHECK:STDOUT: %F => constants.%F.4ae -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.343 -// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.d46 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.b18 +// CHECK:STDOUT: %Self.2 => constants.%Self.322 +// CHECK:STDOUT: %F.type => constants.%F.type.7f1 +// CHECK:STDOUT: %F => constants.%F.eff +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.b26 +// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.501 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%Param, constants.%HasF.facet) { @@ -287,32 +287,32 @@ class X(U:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.bc4: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.325e65.1: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325e65.1 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %F.type.c41: type = fn_type @F.1, @I(%T) [symbolic] -// CHECK:STDOUT: %F.ada: %F.type.c41 = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.b9c: type = assoc_entity_type %I.type.bc4, %F.type.c41 [symbolic] -// CHECK:STDOUT: %assoc0.55f: %F.assoc_type.b9c = assoc_entity element0, @I.%F.decl [symbolic] +// CHECK:STDOUT: %F.type.2aef59.1: type = fn_type @F.1, @I(%T) [symbolic] +// CHECK:STDOUT: %F.bb2dd4.1: %F.type.2aef59.1 = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003a5c.1: type = assoc_entity_type %I.type.325e65.1, %F.type.2aef59.1 [symbolic] +// CHECK:STDOUT: %assoc0.819972.1: %F.assoc_type.003a5c.1 = assoc_entity element0, @I.%F.decl [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] // CHECK:STDOUT: %X.type: type = generic_class_type @X [template] // CHECK:STDOUT: %X.generic: %X.type = struct_value () [template] // CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic] -// CHECK:STDOUT: %I.type.2fa: type = facet_type <@I, @I(%U)> [symbolic] -// CHECK:STDOUT: %require_complete.296: = require_complete_type %I.type.2fa [symbolic] -// CHECK:STDOUT: %F.type.490: type = fn_type @F.1, @I(%U) [symbolic] -// CHECK:STDOUT: %F.009: %F.type.490 = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.c2e: type = assoc_entity_type %I.type.2fa, %F.type.490 [symbolic] -// CHECK:STDOUT: %assoc0.525: %F.assoc_type.c2e = assoc_entity element0, @I.%F.decl [symbolic] +// CHECK:STDOUT: %I.type.325e65.2: type = facet_type <@I, @I(%U)> [symbolic] +// CHECK:STDOUT: %require_complete.cfe: = require_complete_type %I.type.325e65.2 [symbolic] +// CHECK:STDOUT: %F.type.2aef59.2: type = fn_type @F.1, @I(%U) [symbolic] +// CHECK:STDOUT: %F.bb2dd4.2: %F.type.2aef59.2 = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003a5c.2: type = assoc_entity_type %I.type.325e65.2, %F.type.2aef59.2 [symbolic] +// CHECK:STDOUT: %assoc0.819972.2: %F.assoc_type.003a5c.2 = assoc_entity element0, @I.%F.decl [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%U) [symbolic] -// CHECK:STDOUT: %F.type.8e1: type = fn_type @F.2, @impl(%U) [symbolic] -// CHECK:STDOUT: %F.400: %F.type.8e1 = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.bc4 = facet_value %X, %impl_witness [symbolic] +// CHECK:STDOUT: %F.type.e88: type = fn_type @F.2, @impl(%U) [symbolic] +// CHECK:STDOUT: %F.b02: %F.type.e88 = struct_value () [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.325e65.1 = facet_value %X, %impl_witness [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.0b5: = require_complete_type %X [symbolic] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %require_complete.441: = require_complete_type %X [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %U [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -350,16 +350,16 @@ class X(U:! type) { // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_13.2)> [symbolic = %I.type (constants.%I.type.bc4)] -// CHECK:STDOUT: %Self.2: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type.c41)] -// CHECK:STDOUT: %F: @I.%F.type (%F.type.c41) = struct_value () [symbolic = %F (constants.%F.ada)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.bc4), @I.%F.type (%F.type.c41) [symbolic = %F.assoc_type (constants.%F.assoc_type.b9c)] -// CHECK:STDOUT: %assoc0.loc5_25.2: @I.%F.assoc_type (%F.assoc_type.b9c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_25.2 (constants.%assoc0.55f)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_13.2)> [symbolic = %I.type (constants.%I.type.325e65.1)] +// CHECK:STDOUT: %Self.2: %I.type.325e65.1 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type.2aef59.1)] +// CHECK:STDOUT: %F: @I.%F.type (%F.type.2aef59.1) = struct_value () [symbolic = %F (constants.%F.bb2dd4.1)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325e65.1), @I.%F.type (%F.type.2aef59.1) [symbolic = %F.assoc_type (constants.%F.assoc_type.003a5c.1)] +// CHECK:STDOUT: %assoc0.loc5_25.2: @I.%F.assoc_type (%F.assoc_type.003a5c.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_25.2 (constants.%assoc0.819972.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.bc4) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.c41) = fn_decl @F.1 [symbolic = @I.%F (constants.%F.ada)] { +// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.325e65.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.2aef59.1) = fn_decl @F.1 [symbolic = @I.%F (constants.%F.bb2dd4.1)] { // CHECK:STDOUT: %self.patt: @F.1.%Self.as_type.loc5_14.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %t.patt: @F.1.%T (%T) = binding_pattern t @@ -367,8 +367,8 @@ class X(U:! type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param runtime_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: @F.1.%I.type (%I.type.bc4) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @F.1.%I.type (%I.type.bc4) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc5_14.2: @F.1.%I.type (%I.type.325e65.1) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @F.1.%I.type (%I.type.325e65.1) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -377,7 +377,7 @@ class X(U:! type) { // CHECK:STDOUT: %T.ref: type = name_ref T, @I.%T.loc4_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @F.1.%T (%T) = bind_name t, %t.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc5_25.1: @I.%F.assoc_type (%F.assoc_type.b9c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_25.2 (constants.%assoc0.55f)] +// CHECK:STDOUT: %assoc0.loc5_25.1: @I.%F.assoc_type (%F.assoc_type.003a5c.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_25.2 (constants.%assoc0.819972.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -389,16 +389,16 @@ class X(U:! type) { // CHECK:STDOUT: generic impl @impl(@X.%U.loc8_9.1: type) { // CHECK:STDOUT: %U: type = bind_symbolic_name 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.2: type = facet_type <@I, @I(%U)> [symbolic = %I.type.loc9_21.2 (constants.%I.type.2fa)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%I.type.loc9_21.2 (%I.type.2fa) [symbolic = %require_complete (constants.%require_complete.296)] +// CHECK:STDOUT: %I.type.loc9_21.2: type = facet_type <@I, @I(%U)> [symbolic = %I.type.loc9_21.2 (constants.%I.type.325e65.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%I.type.loc9_21.2 (%I.type.325e65.2) [symbolic = %require_complete (constants.%require_complete.cfe)] // CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%U) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%U) [symbolic = %F.type (constants.%F.type.8e1)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.8e1) = struct_value () [symbolic = %F (constants.%F.400)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%U) [symbolic = %F.type (constants.%F.type.e88)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.e88) = struct_value () [symbolic = %F (constants.%F.b02)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %I.type.loc9_21.1 { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.8e1) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.400)] { +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.e88) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.b02)] { // CHECK:STDOUT: %self.patt: @F.2.%X (%X) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @F.2.%X (%X) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %t.patt: @F.2.%U (%U) = binding_pattern t @@ -426,17 +426,17 @@ class X(U:! type) { // CHECK:STDOUT: %U.patt.loc8_9.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc8_9.2 (constants.%U.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc8_9.2)> [symbolic = %I.type (constants.%I.type.2fa)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc8_9.2)> [symbolic = %I.type (constants.%I.type.325e65.2)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: impl_decl @impl [template] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%X [symbolic = %X (constants.%X)] // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc8_9.1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %I.type.loc9_21.1: type = facet_type <@I, @I(constants.%U)> [symbolic = %I.type.loc9_21.2 (constants.%I.type.2fa)] +// CHECK:STDOUT: %I.type.loc9_21.1: type = facet_type <@I, @I(constants.%U)> [symbolic = %I.type.loc9_21.2 (constants.%I.type.325e65.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%U) [symbolic = @impl.%impl_witness (constants.%impl_witness)] -// CHECK:STDOUT: %.loc9: type = specific_constant @impl.%I.type.loc9_21.1, @impl(constants.%U) [symbolic = %I.type (constants.%I.type.2fa)] +// CHECK:STDOUT: %.loc9: type = specific_constant @impl.%I.type.loc9_21.1, @impl(constants.%U) [symbolic = %I.type (constants.%I.type.325e65.2)] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -446,10 +446,10 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@I.%T.loc4_13.1: type, @I.%Self.1: @I.%I.type (%I.type.bc4)) { +// CHECK:STDOUT: generic fn @F.1(@I.%T.loc4_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325e65.1)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.bc4)] -// CHECK:STDOUT: %Self: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325e65.1)] +// CHECK:STDOUT: %Self: %I.type.325e65.1 = bind_symbolic_name Self, 1 [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: // CHECK:STDOUT: fn[%self.param_patt: @F.1.%Self.as_type.loc5_14.1 (%Self.as_type)](%t.param_patt: @F.1.%T (%T)); @@ -458,12 +458,12 @@ class X(U:! type) { // CHECK:STDOUT: generic fn @F.2(@X.%U.loc8_9.1: type) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U)> [symbolic = %I.type (constants.%I.type.2fa)] -// CHECK:STDOUT: %require_complete.loc10_25: = require_complete_type @F.2.%I.type (%I.type.2fa) [symbolic = %require_complete.loc10_25 (constants.%require_complete.296)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U)> [symbolic = %I.type (constants.%I.type.325e65.2)] +// CHECK:STDOUT: %require_complete.loc10_25: = require_complete_type @F.2.%I.type (%I.type.325e65.2) [symbolic = %require_complete.loc10_25 (constants.%require_complete.cfe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10_14: = require_complete_type @F.2.%X (%X) [symbolic = %require_complete.loc10_14 (constants.%require_complete.0b5)] -// CHECK:STDOUT: %require_complete.loc10_23: = require_complete_type @F.2.%U (%U) [symbolic = %require_complete.loc10_23 (constants.%require_complete.427)] +// CHECK:STDOUT: %require_complete.loc10_14: = require_complete_type @F.2.%X (%X) [symbolic = %require_complete.loc10_14 (constants.%require_complete.441)] +// CHECK:STDOUT: %require_complete.loc10_23: = require_complete_type @F.2.%U (%U) [symbolic = %require_complete.loc10_23 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: @F.2.%X (%X)](%t.param_patt: @F.2.%U (%U)) { // CHECK:STDOUT: !entry: @@ -478,7 +478,7 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.bc4 +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.1 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type // CHECK:STDOUT: } @@ -492,7 +492,7 @@ class X(U:! type) { // CHECK:STDOUT: %U.patt.loc8_9.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.2fa +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%U) { @@ -500,24 +500,24 @@ class X(U:! type) { // CHECK:STDOUT: %T.patt.loc4_13.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.2fa +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.490 -// CHECK:STDOUT: %F => constants.%F.009 -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.c2e -// CHECK:STDOUT: %assoc0.loc5_25.2 => constants.%assoc0.525 +// CHECK:STDOUT: %F.type => constants.%F.type.2aef59.2 +// CHECK:STDOUT: %F => constants.%F.bb2dd4.2 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.003a5c.2 +// CHECK:STDOUT: %assoc0.loc5_25.2 => constants.%assoc0.819972.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%U) { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: %X => constants.%X -// CHECK:STDOUT: %I.type.loc9_21.2 => constants.%I.type.2fa -// CHECK:STDOUT: %require_complete => constants.%require_complete.296 +// CHECK:STDOUT: %I.type.loc9_21.2 => constants.%I.type.325e65.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.cfe // CHECK:STDOUT: %impl_witness => constants.%impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.8e1 -// CHECK:STDOUT: %F => constants.%F.400 +// CHECK:STDOUT: %F.type => constants.%F.type.e88 +// CHECK:STDOUT: %F => constants.%F.b02 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(@impl.%U) {} @@ -529,8 +529,8 @@ class X(U:! type) { // CHECK:STDOUT: specific @F.2(constants.%U) { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: %X => constants.%X -// CHECK:STDOUT: %I.type => constants.%I.type.2fa -// CHECK:STDOUT: %require_complete.loc10_25 => constants.%require_complete.296 +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 +// CHECK:STDOUT: %require_complete.loc10_25 => constants.%require_complete.cfe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(@F.2.%U) {} @@ -539,7 +539,7 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%U, constants.%I.facet) { // CHECK:STDOUT: %T => constants.%U -// CHECK:STDOUT: %I.type => constants.%I.type.2fa +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%X // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_call_invalid.carbon b/toolchain/check/testdata/impl/fail_call_invalid.carbon index affcc90f7a7f..d25a242dfbed 100644 --- a/toolchain/check/testdata/impl/fail_call_invalid.carbon +++ b/toolchain/check/testdata/impl/fail_call_invalid.carbon @@ -27,17 +27,17 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [template] -// CHECK:STDOUT: %Self.7d2: %Simple.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.39e: type = facet_access_type %Self.7d2 [symbolic] -// CHECK:STDOUT: %G.type.1d2: type = fn_type @G.1 [template] -// CHECK:STDOUT: %G.d3c: %G.type.1d2 = struct_value () [template] -// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %Simple.type, %G.type.1d2 [template] -// CHECK:STDOUT: %assoc0.c6f: %G.assoc_type = assoc_entity element0, @Simple.%G.decl [template] +// CHECK:STDOUT: %Self.3c9: %Simple.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.716: type = facet_access_type %Self.3c9 [symbolic] +// CHECK:STDOUT: %G.type.b60: type = fn_type @G.1 [template] +// CHECK:STDOUT: %G.cb0: %G.type.b60 = struct_value () [template] +// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %Simple.type, %G.type.b60 [template] +// CHECK:STDOUT: %assoc0.f1b: %G.assoc_type = assoc_entity element0, @Simple.%G.decl [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %impl_witness.85b: = impl_witness () [template] -// CHECK:STDOUT: %G.type.1b3: type = fn_type @G.2 [template] -// CHECK:STDOUT: %G.8c8: %G.type.1b3 = struct_value () [template] +// CHECK:STDOUT: %G.type.c98: type = fn_type @G.2 [template] +// CHECK:STDOUT: %G.e73: %G.type.c98 = struct_value () [template] // CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %i32, %impl_witness.85b [template] // CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [template] // CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [template] @@ -45,7 +45,7 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -79,20 +79,20 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Simple { -// CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7d2] -// CHECK:STDOUT: %G.decl: %G.type.1d2 = fn_decl @G.1 [template = constants.%G.d3c] { -// CHECK:STDOUT: %self.patt: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.39e) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.39e) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.3c9] +// CHECK:STDOUT: %G.decl: %G.type.b60 = fn_decl @G.1 [template = constants.%G.cb0] { +// CHECK:STDOUT: %self.patt: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.716) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.716) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.39e) = value_param runtime_param0 -// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.39e)] { -// CHECK:STDOUT: %Self.ref: %Simple.type = name_ref Self, @Simple.%Self [symbolic = %Self (constants.%Self.7d2)] -// 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.39e)] -// 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.39e)] +// CHECK:STDOUT: %self.param: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.716) = value_param runtime_param0 +// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.716)] { +// CHECK:STDOUT: %Self.ref: %Simple.type = name_ref Self, @Simple.%Self [symbolic = %Self (constants.%Self.3c9)] +// 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.716)] +// 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.716)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.39e) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.716) = bind_name self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, %G.decl [template = constants.%assoc0.c6f] +// CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, %G.decl [template = constants.%assoc0.f1b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -101,7 +101,7 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %i32 as %Simple.ref { -// CHECK:STDOUT: %G.decl: %G.type.1b3 = fn_decl @G.2 [template = constants.%G.8c8] { +// CHECK:STDOUT: %G.decl: %G.type.c98 = fn_decl @G.2 [template = constants.%G.e73] { // CHECK:STDOUT: %self.patt: = binding_pattern self // CHECK:STDOUT: %self.param_patt: = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -116,10 +116,10 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G.1(@Simple.%Self: %Simple.type) { -// CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7d2)] -// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.39e)] +// CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.3c9)] +// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.716)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.39e)](); +// CHECK:STDOUT: fn[%self.param_patt: @G.1.%Self.as_type.loc12_14.1 (%Self.as_type.716)](); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G.2[%self.param_patt: ](); @@ -128,15 +128,15 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [template = constants.%Simple.type] -// CHECK:STDOUT: %G.ref: %G.assoc_type = name_ref G, @Simple.%assoc0 [template = constants.%assoc0.c6f] -// CHECK:STDOUT: %impl.elem0: %G.type.1d2 = impl_witness_access constants.%impl_witness.85b, element0 [template = ] +// CHECK:STDOUT: %G.ref: %G.assoc_type = name_ref G, @Simple.%assoc0 [template = constants.%assoc0.f1b] +// CHECK:STDOUT: %impl.elem0: %G.type.b60 = impl_witness_access constants.%impl_witness.85b, element0 [template = ] // CHECK:STDOUT: %G.bound: = bound_method %n.ref, %impl.elem0 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.7d2) { -// CHECK:STDOUT: %Self => constants.%Self.7d2 -// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type.39e +// CHECK:STDOUT: specific @G.1(constants.%Self.3c9) { +// CHECK:STDOUT: %Self => constants.%Self.3c9 +// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type.716 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G.1(constants.%Simple.facet) { diff --git a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon index f4573bee4615..e22be6202815 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon @@ -28,21 +28,21 @@ class C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %GenericInterface.type.c92: type = generic_interface_type @GenericInterface [template] // CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.c92 = struct_value () [template] -// CHECK:STDOUT: %GenericInterface.type.94a: type = facet_type <@GenericInterface, @GenericInterface(%T)> [symbolic] -// CHECK:STDOUT: %Self: %GenericInterface.type.94a = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %F.type.614: type = fn_type @F.1, @GenericInterface(%T) [symbolic] -// CHECK:STDOUT: %F.98b: %F.type.614 = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %GenericInterface.type.94a, %F.type.614 [symbolic] +// CHECK:STDOUT: %GenericInterface.type.3fe: type = facet_type <@GenericInterface, @GenericInterface(%T)> [symbolic] +// CHECK:STDOUT: %Self: %GenericInterface.type.3fe = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %F.type.a4b: type = fn_type @F.1, @GenericInterface(%T) [symbolic] +// CHECK:STDOUT: %F.3d9: %F.type.a4b = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %GenericInterface.type.3fe, %F.type.a4b [symbolic] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @GenericInterface.%F.decl [symbolic] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %require_complete.8db: = require_complete_type %GenericInterface.type.94a [symbolic] +// CHECK:STDOUT: %require_complete.70f: = require_complete_type %GenericInterface.type.3fe [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.3c5: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.700: %F.type.3c5 = struct_value () [symbolic] -// CHECK:STDOUT: %GenericInterface.facet: %GenericInterface.type.94a = facet_value %C, %impl_witness [symbolic] +// CHECK:STDOUT: %F.type.2cb: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.4b1: %F.type.2cb = struct_value () [symbolic] +// CHECK:STDOUT: %GenericInterface.facet: %GenericInterface.type.3fe = facet_value %C, %impl_witness [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -74,16 +74,16 @@ class C { // CHECK:STDOUT: %T.patt.loc11_28.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_28.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%T.loc11_28.2)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.94a)] -// CHECK:STDOUT: %Self.2: %GenericInterface.type.94a = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @GenericInterface(%T.loc11_28.2) [symbolic = %F.type (constants.%F.type.614)] -// CHECK:STDOUT: %F: @GenericInterface.%F.type (%F.type.614) = struct_value () [symbolic = %F (constants.%F.98b)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @GenericInterface.%GenericInterface.type (%GenericInterface.type.94a), @GenericInterface.%F.type (%F.type.614) [symbolic = %F.assoc_type (constants.%F.assoc_type)] +// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%T.loc11_28.2)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.3fe)] +// CHECK:STDOUT: %Self.2: %GenericInterface.type.3fe = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @GenericInterface(%T.loc11_28.2) [symbolic = %F.type (constants.%F.type.a4b)] +// CHECK:STDOUT: %F: @GenericInterface.%F.type (%F.type.a4b) = struct_value () [symbolic = %F (constants.%F.3d9)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @GenericInterface.%GenericInterface.type (%GenericInterface.type.3fe), @GenericInterface.%F.type (%F.type.a4b) [symbolic = %F.assoc_type (constants.%F.assoc_type)] // CHECK:STDOUT: %assoc0.loc12_13.2: @GenericInterface.%F.assoc_type (%F.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc12_13.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.94a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.decl: @GenericInterface.%F.type (%F.type.614) = fn_decl @F.1 [symbolic = @GenericInterface.%F (constants.%F.98b)] { +// CHECK:STDOUT: %Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.3fe) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.decl: @GenericInterface.%F.type (%F.type.a4b) = fn_decl @F.1 [symbolic = @GenericInterface.%F (constants.%F.3d9)] { // CHECK:STDOUT: %x.patt: @F.1.%T (%T) = binding_pattern x // CHECK:STDOUT: %x.param_patt: @F.1.%T (%T) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { @@ -103,16 +103,16 @@ class C { // CHECK:STDOUT: generic impl @impl(%T.loc19_23.1: type) { // CHECK:STDOUT: %T.loc19_23.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_23.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc19_23.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_23.2 (constants.%T.patt)] -// CHECK:STDOUT: %GenericInterface.type.loc19_54.2: type = facet_type <@GenericInterface, @GenericInterface(%T.loc19_23.2)> [symbolic = %GenericInterface.type.loc19_54.2 (constants.%GenericInterface.type.94a)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%GenericInterface.type.loc19_54.2 (%GenericInterface.type.94a) [symbolic = %require_complete (constants.%require_complete.8db)] +// CHECK:STDOUT: %GenericInterface.type.loc19_54.2: type = facet_type <@GenericInterface, @GenericInterface(%T.loc19_23.2)> [symbolic = %GenericInterface.type.loc19_54.2 (constants.%GenericInterface.type.3fe)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%GenericInterface.type.loc19_54.2 (%GenericInterface.type.3fe) [symbolic = %require_complete (constants.%require_complete.70f)] // CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc19_23.2) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc19_23.2) [symbolic = %F.type (constants.%F.type.3c5)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.3c5) = struct_value () [symbolic = %F (constants.%F.700)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc19_23.2) [symbolic = %F.type (constants.%F.type.2cb)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.2cb) = struct_value () [symbolic = %F (constants.%F.4b1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %GenericInterface.type.loc19_54.1 { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.3c5) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.700)] { +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2cb) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.4b1)] { // CHECK:STDOUT: %x.patt: @F.2.%T (%T) = binding_pattern x // CHECK:STDOUT: %x.param_patt: @F.2.%T (%T) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { @@ -135,12 +135,12 @@ class C { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [template = constants.%C] // CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.c92 = name_ref GenericInterface, file.%GenericInterface.decl [template = constants.%GenericInterface.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc19_23.1 [symbolic = %T.loc19_23.2 (constants.%T)] -// CHECK:STDOUT: %GenericInterface.type.loc19_54.1: type = facet_type <@GenericInterface, @GenericInterface(constants.%T)> [symbolic = %GenericInterface.type.loc19_54.2 (constants.%GenericInterface.type.94a)] +// CHECK:STDOUT: %GenericInterface.type.loc19_54.1: type = facet_type <@GenericInterface, @GenericInterface(constants.%T)> [symbolic = %GenericInterface.type.loc19_54.2 (constants.%GenericInterface.type.3fe)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc19_23.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_23.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness)] -// CHECK:STDOUT: %.loc19: type = specific_constant @impl.%GenericInterface.type.loc19_54.1, @impl(constants.%T) [symbolic = constants.%GenericInterface.type.94a] +// CHECK:STDOUT: %.loc19: type = specific_constant @impl.%GenericInterface.type.loc19_54.1, @impl(constants.%T) [symbolic = constants.%GenericInterface.type.3fe] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -149,7 +149,7 @@ class C { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@GenericInterface.%T.loc11_28.1: type, @GenericInterface.%Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.94a)) { +// CHECK:STDOUT: generic fn @F.1(@GenericInterface.%T.loc11_28.1: type, @GenericInterface.%Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.3fe)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param_patt: @F.1.%T (%T)); @@ -159,7 +159,7 @@ class C { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @F.2.%T (%T) [symbolic = %require_complete (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.2.%T (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param_patt: @F.2.%T (%T)) { // CHECK:STDOUT: !entry: @@ -172,10 +172,10 @@ class C { // CHECK:STDOUT: %T.patt.loc11_28.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type => constants.%GenericInterface.type.94a +// CHECK:STDOUT: %GenericInterface.type => constants.%GenericInterface.type.3fe // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.614 -// CHECK:STDOUT: %F => constants.%F.98b +// CHECK:STDOUT: %F.type => constants.%F.type.a4b +// CHECK:STDOUT: %F => constants.%F.3d9 // CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type // CHECK:STDOUT: %assoc0.loc12_13.2 => constants.%assoc0 // CHECK:STDOUT: } @@ -189,13 +189,13 @@ class C { // CHECK:STDOUT: specific @impl(constants.%T) { // CHECK:STDOUT: %T.loc19_23.2 => constants.%T // CHECK:STDOUT: %T.patt.loc19_23.2 => constants.%T -// CHECK:STDOUT: %GenericInterface.type.loc19_54.2 => constants.%GenericInterface.type.94a -// CHECK:STDOUT: %require_complete => constants.%require_complete.8db +// CHECK:STDOUT: %GenericInterface.type.loc19_54.2 => constants.%GenericInterface.type.3fe +// CHECK:STDOUT: %require_complete => constants.%require_complete.70f // CHECK:STDOUT: %impl_witness => constants.%impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.3c5 -// CHECK:STDOUT: %F => constants.%F.700 +// CHECK:STDOUT: %F.type => constants.%F.type.2cb +// CHECK:STDOUT: %F => constants.%F.4b1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericInterface(@impl.%T.loc19_23.2) {} diff --git a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon index 5b94681fb975..5d99b3ad1996 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon @@ -27,7 +27,7 @@ extend impl i32 as I {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // 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 c2b7e130107c..f5bb22e02701 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon @@ -60,7 +60,7 @@ class E { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_extend_non_interface.carbon b/toolchain/check/testdata/impl/fail_extend_non_interface.carbon index 98ee79591896..ca98467f25eb 100644 --- a/toolchain/check/testdata/impl/fail_extend_non_interface.carbon +++ b/toolchain/check/testdata/impl/fail_extend_non_interface.carbon @@ -35,7 +35,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_extend_partially_defined_interface.carbon b/toolchain/check/testdata/impl/fail_extend_partially_defined_interface.carbon index 19b22c12aafa..4e93960bab42 100644 --- a/toolchain/check/testdata/impl/fail_extend_partially_defined_interface.carbon +++ b/toolchain/check/testdata/impl/fail_extend_partially_defined_interface.carbon @@ -29,8 +29,8 @@ interface I { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %C.4bc: type = class_type @C [template] -// CHECK:STDOUT: %C.dbe: type = class_type @C, @C(%Self) [symbolic] +// CHECK:STDOUT: %C.f28: type = class_type @C [template] +// CHECK:STDOUT: %C.6b4: type = class_type @C, @C(%Self) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } @@ -53,7 +53,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C.4bc] {} {} +// CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C.f28] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -63,7 +63,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%Self) [symbolic = %C (constants.%C.dbe)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%Self) [symbolic = %C (constants.%C.6b4)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %I.ref; // CHECK:STDOUT: } @@ -73,14 +73,14 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: impl_decl @impl [template] {} { -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C.dbe [symbolic = %C (constants.%C.dbe)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C.6b4 [symbolic = %C (constants.%C.6b4)] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [template = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc23: type = specific_constant @impl.%I.ref, @impl(constants.%Self) [template = constants.%I.type] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.dbe +// CHECK:STDOUT: .Self = constants.%C.6b4 // CHECK:STDOUT: extend %.loc23 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type @@ -91,7 +91,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %C => constants.%C.dbe +// CHECK:STDOUT: %C => constants.%C.6b4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(@impl.%Self) {} 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 80e86f83351e..24b1c49b4366 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -217,18 +217,18 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.5f5: type = assoc_entity_type %I.type, %F.type.9df [template] -// CHECK:STDOUT: %assoc0.389: %F.assoc_type.5f5 = assoc_entity element0, @I.%F.decl [template] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.ae7: type = assoc_entity_type %I.type, %F.type.cf0 [template] +// CHECK:STDOUT: %assoc0.fa7: %F.assoc_type.ae7 = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %NoF: type = class_type @NoF [template] // CHECK:STDOUT: %impl_witness.85bcb7.1: = impl_witness () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %FNotFunction: type = class_type @FNotFunction [template] // CHECK:STDOUT: %impl_witness.85bcb7.2: = impl_witness () [template] -// CHECK:STDOUT: %F.25a: type = class_type @F.16 [template] +// CHECK:STDOUT: %F.70c: type = class_type @F.16 [template] // CHECK:STDOUT: %PossiblyF.type: type = fn_type @PossiblyF [template] // CHECK:STDOUT: %PossiblyF: %PossiblyF.type = struct_value () [template] // CHECK:STDOUT: %FAlias: type = class_type @FAlias [template] @@ -237,101 +237,101 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %impl_witness.85bcb7.4: = impl_witness () [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [template] -// CHECK:STDOUT: %F.type.b6e: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.081: %F.type.b6e = struct_value () [template] +// CHECK:STDOUT: %F.type.44e: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.424: %F.type.44e = struct_value () [template] // CHECK:STDOUT: %I.facet.3bf: %I.type = facet_value %FExtraParam, %impl_witness.85bcb7.4 [template] // CHECK:STDOUT: %FExtraImplicitParam: type = class_type @FExtraImplicitParam [template] // CHECK:STDOUT: %impl_witness.85bcb7.5: = impl_witness () [template] -// CHECK:STDOUT: %F.type.a8b: type = fn_type @F.3 [template] -// CHECK:STDOUT: %F.bf5: %F.type.a8b = struct_value () [template] +// CHECK:STDOUT: %F.type.e1a: type = fn_type @F.3 [template] +// CHECK:STDOUT: %F.6ff: %F.type.e1a = struct_value () [template] // CHECK:STDOUT: %I.facet.33b: %I.type = facet_value %FExtraImplicitParam, %impl_witness.85bcb7.5 [template] // CHECK:STDOUT: %FExtraReturnType: type = class_type @FExtraReturnType [template] // CHECK:STDOUT: %impl_witness.85bcb7.6: = impl_witness () [template] -// CHECK:STDOUT: %F.type.60d: type = fn_type @F.4 [template] -// CHECK:STDOUT: %F.ae3: %F.type.60d = struct_value () [template] +// CHECK:STDOUT: %F.type.387: type = fn_type @F.4 [template] +// CHECK:STDOUT: %F.df5: %F.type.387 = struct_value () [template] // CHECK:STDOUT: %I.facet.fad: %I.type = facet_value %FExtraReturnType, %impl_witness.85bcb7.6 [template] // CHECK:STDOUT: %J.type: type = facet_type <@J> [template] -// CHECK:STDOUT: %Self.f9f: %J.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.b65: type = fn_type @F.5 [template] -// CHECK:STDOUT: %F.83e: %F.type.b65 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.60d: type = assoc_entity_type %J.type, %F.type.b65 [template] -// CHECK:STDOUT: %assoc0.03a: %F.assoc_type.60d = assoc_entity element0, @J.%F.decl [template] +// CHECK:STDOUT: %Self.ccd: %J.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.c14: type = fn_type @F.5 [template] +// CHECK:STDOUT: %F.b71: %F.type.c14 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.a73: type = assoc_entity_type %J.type, %F.type.c14 [template] +// CHECK:STDOUT: %assoc0.93f: %F.assoc_type.a73 = assoc_entity element0, @J.%F.decl [template] // CHECK:STDOUT: %FMissingParam: type = class_type @FMissingParam [template] // CHECK:STDOUT: %impl_witness.85bcb7.7: = impl_witness () [template] -// CHECK:STDOUT: %F.type.254: type = fn_type @F.6 [template] -// CHECK:STDOUT: %F.3dd: %F.type.254 = struct_value () [template] +// CHECK:STDOUT: %F.type.695: type = fn_type @F.6 [template] +// CHECK:STDOUT: %F.738: %F.type.695 = struct_value () [template] // CHECK:STDOUT: %J.facet.515: %J.type = facet_value %FMissingParam, %impl_witness.85bcb7.7 [template] // CHECK:STDOUT: %FMissingImplicitParam: type = class_type @FMissingImplicitParam [template] // CHECK:STDOUT: %impl_witness.85bcb7.8: = impl_witness () [template] -// CHECK:STDOUT: %F.type.a49: type = fn_type @F.7 [template] -// CHECK:STDOUT: %F.95b: %F.type.a49 = struct_value () [template] +// CHECK:STDOUT: %F.type.d97: type = fn_type @F.7 [template] +// CHECK:STDOUT: %F.01d: %F.type.d97 = struct_value () [template] // CHECK:STDOUT: %J.facet.f88: %J.type = facet_value %FMissingImplicitParam, %impl_witness.85bcb7.8 [template] // CHECK:STDOUT: %FMissingReturnType: type = class_type @FMissingReturnType [template] // CHECK:STDOUT: %impl_witness.85bcb7.9: = impl_witness () [template] -// CHECK:STDOUT: %F.type.bc5: type = fn_type @F.8 [template] -// CHECK:STDOUT: %F.d2b: %F.type.bc5 = struct_value () [template] +// CHECK:STDOUT: %F.type.123: type = fn_type @F.8 [template] +// CHECK:STDOUT: %F.c7d: %F.type.123 = struct_value () [template] // CHECK:STDOUT: %J.facet.43b: %J.type = facet_value %FMissingReturnType, %impl_witness.85bcb7.9 [template] // CHECK:STDOUT: %FDifferentParamType: type = class_type @FDifferentParamType [template] // CHECK:STDOUT: %impl_witness.85bcb7.10: = impl_witness () [template] -// CHECK:STDOUT: %F.type.f00: type = fn_type @F.9 [template] -// CHECK:STDOUT: %F.a37: %F.type.f00 = struct_value () [template] +// CHECK:STDOUT: %F.type.6b5: type = fn_type @F.9 [template] +// CHECK:STDOUT: %F.043: %F.type.6b5 = struct_value () [template] // CHECK:STDOUT: %J.facet.9b0: %J.type = facet_value %FDifferentParamType, %impl_witness.85bcb7.10 [template] // CHECK:STDOUT: %FDifferentImplicitParamType: type = class_type @FDifferentImplicitParamType [template] // CHECK:STDOUT: %impl_witness.85bcb7.11: = impl_witness () [template] -// CHECK:STDOUT: %F.type.c1a: type = fn_type @F.10 [template] -// CHECK:STDOUT: %F.edd: %F.type.c1a = struct_value () [template] +// CHECK:STDOUT: %F.type.d62: type = fn_type @F.10 [template] +// CHECK:STDOUT: %F.886: %F.type.d62 = struct_value () [template] // CHECK:STDOUT: %J.facet.4bb: %J.type = facet_value %FDifferentImplicitParamType, %impl_witness.85bcb7.11 [template] // CHECK:STDOUT: %FDifferentReturnType: type = class_type @FDifferentReturnType [template] // CHECK:STDOUT: %impl_witness.85bcb7.12: = impl_witness () [template] -// CHECK:STDOUT: %F.type.bad: type = fn_type @F.11 [template] -// CHECK:STDOUT: %F.6df: %F.type.bad = struct_value () [template] +// CHECK:STDOUT: %F.type.d3b: type = fn_type @F.11 [template] +// CHECK:STDOUT: %F.be8: %F.type.d3b = struct_value () [template] // CHECK:STDOUT: %J.facet.5c7: %J.type = facet_value %FDifferentReturnType, %impl_witness.85bcb7.12 [template] // CHECK:STDOUT: %FDifferentParamName: type = class_type @FDifferentParamName [template] // CHECK:STDOUT: %impl_witness.85bcb7.13: = impl_witness () [template] -// CHECK:STDOUT: %F.type.b18: type = fn_type @F.12 [template] -// CHECK:STDOUT: %F.ada: %F.type.b18 = struct_value () [template] +// CHECK:STDOUT: %F.type.d19: type = fn_type @F.12 [template] +// CHECK:STDOUT: %F.669: %F.type.d19 = struct_value () [template] // CHECK:STDOUT: %J.facet.daf: %J.type = facet_value %FDifferentParamName, %impl_witness.85bcb7.13 [template] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [template] -// CHECK:STDOUT: %Self.36c: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.36c [symbolic] -// CHECK:STDOUT: %ptr.af7: type = ptr_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.2ff: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.2ff [symbolic] +// CHECK:STDOUT: %ptr.e87: type = ptr_type %Self.as_type [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.x.y.a57: type = struct_type {.x: %Self.as_type, .y: %i32} [symbolic] +// CHECK:STDOUT: %struct_type.x.y.81e: type = struct_type {.x: %Self.as_type, .y: %i32} [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.5f6: type = tuple_type (%ptr.af7, %struct_type.x.y.a57) [symbolic] +// CHECK:STDOUT: %tuple.type.229: type = tuple_type (%ptr.e87, %struct_type.x.y.81e) [symbolic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %array_type.126f: type = array_type %int_4, %Self.as_type [symbolic] -// CHECK:STDOUT: %F.type.f33: type = fn_type @F.13 [template] -// CHECK:STDOUT: %F.04f: %F.type.f33 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.c02: type = assoc_entity_type %SelfNested.type, %F.type.f33 [template] -// CHECK:STDOUT: %assoc0.b35: %F.assoc_type.c02 = assoc_entity element0, @SelfNested.%F.decl [template] +// CHECK:STDOUT: %array_type.873: type = array_type %int_4, %Self.as_type [symbolic] +// CHECK:STDOUT: %F.type.6ed: type = fn_type @F.13 [template] +// CHECK:STDOUT: %F.998: %F.type.6ed = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.4b1: type = assoc_entity_type %SelfNested.type, %F.type.6ed [template] +// CHECK:STDOUT: %assoc0.7e7: %F.assoc_type.4b1 = assoc_entity element0, @SelfNested.%F.decl [template] // CHECK:STDOUT: %SelfNestedBadParam: type = class_type @SelfNestedBadParam [template] // CHECK:STDOUT: %impl_witness.85bcb7.14: = impl_witness () [template] // CHECK:STDOUT: %ptr.4cd: type = ptr_type %SelfNestedBadParam [template] -// CHECK:STDOUT: %struct_type.x.y.f68: type = struct_type {.x: %i32, .y: %i32} [template] -// CHECK:STDOUT: %tuple.type.0cf: type = tuple_type (%ptr.4cd, %struct_type.x.y.f68) [template] +// CHECK:STDOUT: %struct_type.x.y.871: type = struct_type {.x: %i32, .y: %i32} [template] +// CHECK:STDOUT: %tuple.type.a7d: type = tuple_type (%ptr.4cd, %struct_type.x.y.871) [template] // CHECK:STDOUT: %array_type.a41: type = array_type %int_4, %SelfNestedBadParam [template] -// CHECK:STDOUT: %F.type.965: type = fn_type @F.14 [template] -// CHECK:STDOUT: %F.f18: %F.type.965 = struct_value () [template] +// CHECK:STDOUT: %F.type.f90: type = fn_type @F.14 [template] +// CHECK:STDOUT: %F.fa8: %F.type.f90 = struct_value () [template] // CHECK:STDOUT: %SelfNested.facet.61c: %SelfNested.type = facet_value %SelfNestedBadParam, %impl_witness.85bcb7.14 [template] -// CHECK:STDOUT: %struct_type.x.y.110: type = struct_type {.x: %SelfNestedBadParam, .y: %i32} [template] -// CHECK:STDOUT: %tuple.type.aa1: type = tuple_type (%ptr.4cd, %struct_type.x.y.110) [template] +// CHECK:STDOUT: %struct_type.x.y.a89: type = struct_type {.x: %SelfNestedBadParam, .y: %i32} [template] +// CHECK:STDOUT: %tuple.type.9c9: type = tuple_type (%ptr.4cd, %struct_type.x.y.a89) [template] // CHECK:STDOUT: %SelfNestedBadReturnType: type = class_type @SelfNestedBadReturnType [template] // CHECK:STDOUT: %impl_witness.85bcb7.15: = impl_witness () [template] // CHECK:STDOUT: %ptr.612: type = ptr_type %SelfNestedBadReturnType [template] -// CHECK:STDOUT: %struct_type.x.y.d53: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [template] -// CHECK:STDOUT: %tuple.type.ff1: type = tuple_type (%ptr.612, %struct_type.x.y.d53) [template] -// CHECK:STDOUT: %F.type.3e7: type = fn_type @F.15 [template] -// CHECK:STDOUT: %F.be8: %F.type.3e7 = struct_value () [template] +// CHECK:STDOUT: %struct_type.x.y.ac5: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [template] +// CHECK:STDOUT: %tuple.type.eb9: type = tuple_type (%ptr.612, %struct_type.x.y.ac5) [template] +// CHECK:STDOUT: %F.type.0e7: type = fn_type @F.15 [template] +// CHECK:STDOUT: %F.0bc: %F.type.0e7 = struct_value () [template] // CHECK:STDOUT: %SelfNested.facet.01f: %SelfNested.type = facet_value %SelfNestedBadReturnType, %impl_witness.85bcb7.15 [template] -// CHECK:STDOUT: %array_type.126b: type = array_type %int_4, %SelfNestedBadReturnType [template] +// CHECK:STDOUT: %array_type.126: type = array_type %int_4, %SelfNestedBadReturnType [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -383,9 +383,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] {} {} -// CHECK:STDOUT: %assoc0: %F.assoc_type.5f5 = assoc_entity element0, %F.decl [template = constants.%assoc0.389] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] {} {} +// CHECK:STDOUT: %assoc0: %F.assoc_type.ae7 = assoc_entity element0, %F.decl [template = constants.%assoc0.fa7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -394,8 +394,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f9f] -// CHECK:STDOUT: %F.decl: %F.type.b65 = fn_decl @F.5 [template = constants.%F.83e] { +// CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.ccd] +// CHECK:STDOUT: %F.decl: %F.type.c14 = fn_decl @F.5 [template = constants.%F.b71] { // CHECK:STDOUT: %self.patt: bool = binding_pattern self // CHECK:STDOUT: %self.param_patt: bool = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %b.patt: bool = binding_pattern b @@ -423,7 +423,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param runtime_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %F.assoc_type.60d = assoc_entity element0, %F.decl [template = constants.%assoc0.03a] +// CHECK:STDOUT: %assoc0: %F.assoc_type.a73 = assoc_entity element0, %F.decl [template = constants.%assoc0.93f] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -432,38 +432,38 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @SelfNested { -// CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.36c] -// CHECK:STDOUT: %F.decl: %F.type.f33 = fn_decl @F.13 [template = constants.%F.04f] { -// CHECK:STDOUT: %x.patt: @F.13.%tuple.type (%tuple.type.5f6) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @F.13.%tuple.type (%tuple.type.5f6) = value_param_pattern %x.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: @F.13.%array_type.loc188_52.1 (%array_type.126f) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @F.13.%array_type.loc188_52.1 (%array_type.126f) = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.2ff] +// CHECK:STDOUT: %F.decl: %F.type.6ed = fn_decl @F.13 [template = constants.%F.998] { +// CHECK:STDOUT: %x.patt: @F.13.%tuple.type (%tuple.type.229) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @F.13.%tuple.type (%tuple.type.229) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: @F.13.%array_type.loc188_52.1 (%array_type.873) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.13.%array_type.loc188_52.1 (%array_type.873) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref.loc188_45: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.36c)] +// CHECK:STDOUT: %Self.ref.loc188_45: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4] // CHECK:STDOUT: %Self.as_type.loc188_45: type = facet_access_type %Self.ref.loc188_45 [symbolic = %Self.as_type.loc188_16.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc188_45: type = converted %Self.ref.loc188_45, %Self.as_type.loc188_45 [symbolic = %Self.as_type.loc188_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %array_type.loc188_52.2: type = array_type %int_4, %Self.as_type [symbolic = %array_type.loc188_52.1 (constants.%array_type.126f)] -// CHECK:STDOUT: %x.param: @F.13.%tuple.type (%tuple.type.5f6) = value_param runtime_param0 -// CHECK:STDOUT: %.loc188_38.1: type = splice_block %.loc188_38.3 [symbolic = %tuple.type (constants.%tuple.type.5f6)] { -// CHECK:STDOUT: %Self.ref.loc188_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.36c)] +// CHECK:STDOUT: %array_type.loc188_52.2: type = array_type %int_4, %Self.as_type [symbolic = %array_type.loc188_52.1 (constants.%array_type.873)] +// CHECK:STDOUT: %x.param: @F.13.%tuple.type (%tuple.type.229) = value_param runtime_param0 +// CHECK:STDOUT: %.loc188_38.1: type = splice_block %.loc188_38.3 [symbolic = %tuple.type (constants.%tuple.type.229)] { +// CHECK:STDOUT: %Self.ref.loc188_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] // CHECK:STDOUT: %Self.as_type.loc188_16.2: type = facet_access_type %Self.ref.loc188_12 [symbolic = %Self.as_type.loc188_16.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc188_16: type = converted %Self.ref.loc188_12, %Self.as_type.loc188_16.2 [symbolic = %Self.as_type.loc188_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %ptr.loc188_16.2: type = ptr_type %Self.as_type [symbolic = %ptr.loc188_16.1 (constants.%ptr.af7)] -// CHECK:STDOUT: %Self.ref.loc188_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.36c)] +// CHECK:STDOUT: %ptr.loc188_16.2: type = ptr_type %Self.as_type [symbolic = %ptr.loc188_16.1 (constants.%ptr.e87)] +// CHECK:STDOUT: %Self.ref.loc188_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] // CHECK:STDOUT: %Self.as_type.loc188_24: type = facet_access_type %Self.ref.loc188_24 [symbolic = %Self.as_type.loc188_16.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc188_24: type = converted %Self.ref.loc188_24, %Self.as_type.loc188_24 [symbolic = %Self.as_type.loc188_16.1 (constants.%Self.as_type)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y.loc188_37.2: type = struct_type {.x: %Self.as_type, .y: %i32} [symbolic = %struct_type.x.y.loc188_37.1 (constants.%struct_type.x.y.a57)] +// CHECK:STDOUT: %struct_type.x.y.loc188_37.2: type = struct_type {.x: %Self.as_type, .y: %i32} [symbolic = %struct_type.x.y.loc188_37.1 (constants.%struct_type.x.y.81e)] // CHECK:STDOUT: %.loc188_38.2: %tuple.type.24b = tuple_literal (%ptr.loc188_16.2, %struct_type.x.y.loc188_37.2) -// CHECK:STDOUT: %.loc188_38.3: type = converted %.loc188_38.2, constants.%tuple.type.5f6 [symbolic = %tuple.type (constants.%tuple.type.5f6)] +// CHECK:STDOUT: %.loc188_38.3: type = converted %.loc188_38.2, constants.%tuple.type.229 [symbolic = %tuple.type (constants.%tuple.type.229)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.13.%tuple.type (%tuple.type.5f6) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @F.13.%array_type.loc188_52.1 (%array_type.126f) = out_param runtime_param1 -// CHECK:STDOUT: %return: ref @F.13.%array_type.loc188_52.1 (%array_type.126f) = return_slot %return.param +// CHECK:STDOUT: %x: @F.13.%tuple.type (%tuple.type.229) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @F.13.%array_type.loc188_52.1 (%array_type.873) = out_param runtime_param1 +// CHECK:STDOUT: %return: ref @F.13.%array_type.loc188_52.1 (%array_type.873) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %F.assoc_type.c02 = assoc_entity element0, %F.decl [template = constants.%assoc0.b35] +// CHECK:STDOUT: %assoc0: %F.assoc_type.4b1 = assoc_entity element0, %F.decl [template = constants.%assoc0.7e7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -477,7 +477,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %Self.ref as %I.ref { -// CHECK:STDOUT: %F.decl: type = class_decl @F.16 [template = constants.%F.25a] {} {} +// CHECK:STDOUT: %F.decl: type = class_decl @F.16 [template = constants.%F.70c] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -494,7 +494,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.4: %Self.ref as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.b6e = fn_decl @F.2 [template = constants.%F.081] { +// CHECK:STDOUT: %F.decl: %F.type.44e = fn_decl @F.2 [template = constants.%F.424] { // CHECK:STDOUT: %b.patt: bool = binding_pattern b // CHECK:STDOUT: %b.param_patt: bool = value_param_pattern %b.patt, runtime_param0 // CHECK:STDOUT: } { @@ -513,7 +513,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.5: %Self.ref as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.a8b = fn_decl @F.3 [template = constants.%F.bf5] { +// CHECK:STDOUT: %F.decl: %F.type.e1a = fn_decl @F.3 [template = constants.%F.6ff] { // CHECK:STDOUT: %self.patt: %FExtraImplicitParam = binding_pattern self // CHECK:STDOUT: %self.param_patt: %FExtraImplicitParam = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { @@ -528,7 +528,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.6: %Self.ref as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.60d = fn_decl @F.4 [template = constants.%F.ae3] { +// CHECK:STDOUT: %F.decl: %F.type.387 = fn_decl @F.4 [template = constants.%F.df5] { // CHECK:STDOUT: %return.patt: bool = return_slot_pattern // CHECK:STDOUT: %return.param_patt: bool = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -545,7 +545,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.7: %Self.ref as %J.ref { -// CHECK:STDOUT: %F.decl: %F.type.254 = fn_decl @F.6 [template = constants.%F.3dd] { +// CHECK:STDOUT: %F.decl: %F.type.695 = fn_decl @F.6 [template = constants.%F.738] { // CHECK:STDOUT: %self.patt: bool = binding_pattern self // CHECK:STDOUT: %self.param_patt: bool = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: bool = return_slot_pattern @@ -571,7 +571,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.8: %Self.ref as %J.ref { -// CHECK:STDOUT: %F.decl: %F.type.a49 = fn_decl @F.7 [template = constants.%F.95b] { +// CHECK:STDOUT: %F.decl: %F.type.d97 = fn_decl @F.7 [template = constants.%F.01d] { // CHECK:STDOUT: %b.patt: bool = binding_pattern b // CHECK:STDOUT: %b.param_patt: bool = value_param_pattern %b.patt, runtime_param0 // CHECK:STDOUT: %return.patt: bool = return_slot_pattern @@ -597,7 +597,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.9: %Self.ref as %J.ref { -// CHECK:STDOUT: %F.decl: %F.type.bc5 = fn_decl @F.8 [template = constants.%F.d2b] { +// CHECK:STDOUT: %F.decl: %F.type.123 = fn_decl @F.8 [template = constants.%F.c7d] { // CHECK:STDOUT: %self.patt: bool = binding_pattern self // CHECK:STDOUT: %self.param_patt: bool = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %b.patt: bool = binding_pattern b @@ -625,7 +625,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.10: %Self.ref as %J.ref { -// CHECK:STDOUT: %F.decl: %F.type.f00 = fn_decl @F.9 [template = constants.%F.a37] { +// CHECK:STDOUT: %F.decl: %F.type.6b5 = fn_decl @F.9 [template = constants.%F.043] { // CHECK:STDOUT: %self.patt: bool = binding_pattern self // CHECK:STDOUT: %self.param_patt: bool = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %b.patt: %FDifferentParamType = binding_pattern b @@ -656,7 +656,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.11: %Self.ref as %J.ref { -// CHECK:STDOUT: %F.decl: %F.type.c1a = fn_decl @F.10 [template = constants.%F.edd] { +// CHECK:STDOUT: %F.decl: %F.type.d62 = fn_decl @F.10 [template = constants.%F.886] { // CHECK:STDOUT: %self.patt: %FDifferentImplicitParamType = binding_pattern self // CHECK:STDOUT: %self.param_patt: %FDifferentImplicitParamType = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %b.patt: bool = binding_pattern b @@ -687,7 +687,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.12: %Self.ref as %J.ref { -// CHECK:STDOUT: %F.decl: %F.type.bad = fn_decl @F.11 [template = constants.%F.6df] { +// CHECK:STDOUT: %F.decl: %F.type.d3b = fn_decl @F.11 [template = constants.%F.be8] { // CHECK:STDOUT: %self.patt: bool = binding_pattern self // CHECK:STDOUT: %self.param_patt: bool = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %b.patt: bool = binding_pattern b @@ -720,7 +720,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.13: %Self.ref as %J.ref { -// CHECK:STDOUT: %F.decl: %F.type.b18 = fn_decl @F.12 [template = constants.%F.ada] { +// CHECK:STDOUT: %F.decl: %F.type.d19 = fn_decl @F.12 [template = constants.%F.669] { // CHECK:STDOUT: %self.patt: bool = binding_pattern self // CHECK:STDOUT: %self.param_patt: bool = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %not_b.patt: bool = binding_pattern not_b @@ -755,28 +755,28 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.14: %Self.ref as %SelfNested.ref { -// CHECK:STDOUT: %F.decl: %F.type.965 = fn_decl @F.14 [template = constants.%F.f18] { -// CHECK:STDOUT: %x.patt: %tuple.type.0cf = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %tuple.type.0cf = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %F.decl: %F.type.f90 = fn_decl @F.14 [template = constants.%F.fa8] { +// CHECK:STDOUT: %x.patt: %tuple.type.a7d = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %tuple.type.a7d = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %array_type.a41 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %array_type.a41 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %SelfNestedBadParam.ref.loc200_60: type = name_ref SelfNestedBadParam, file.%SelfNestedBadParam.decl [template = constants.%SelfNestedBadParam] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4] // CHECK:STDOUT: %array_type: type = array_type %int_4, %SelfNestedBadParam [template = constants.%array_type.a41] -// CHECK:STDOUT: %x.param: %tuple.type.0cf = value_param runtime_param0 -// CHECK:STDOUT: %.loc200_53.1: type = splice_block %.loc200_53.3 [template = constants.%tuple.type.0cf] { +// CHECK:STDOUT: %x.param: %tuple.type.a7d = value_param runtime_param0 +// CHECK:STDOUT: %.loc200_53.1: type = splice_block %.loc200_53.3 [template = constants.%tuple.type.a7d] { // CHECK:STDOUT: %SelfNestedBadParam.ref.loc200_14: type = name_ref SelfNestedBadParam, file.%SelfNestedBadParam.decl [template = constants.%SelfNestedBadParam] // CHECK:STDOUT: %ptr: type = ptr_type %SelfNestedBadParam [template = constants.%ptr.4cd] // CHECK:STDOUT: %int_32.loc200_40: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc200_40: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc200_49: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc200_49: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %i32, .y: %i32} [template = constants.%struct_type.x.y.f68] +// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %i32, .y: %i32} [template = constants.%struct_type.x.y.871] // CHECK:STDOUT: %.loc200_53.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) -// CHECK:STDOUT: %.loc200_53.3: type = converted %.loc200_53.2, constants.%tuple.type.0cf [template = constants.%tuple.type.0cf] +// CHECK:STDOUT: %.loc200_53.3: type = converted %.loc200_53.2, constants.%tuple.type.a7d [template = constants.%tuple.type.a7d] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %tuple.type.0cf = bind_name x, %x.param +// CHECK:STDOUT: %x: %tuple.type.a7d = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %array_type.a41 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %array_type.a41 = return_slot %return.param // CHECK:STDOUT: } @@ -787,27 +787,27 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.15: %Self.ref as %SelfNested.ref { -// CHECK:STDOUT: %F.decl: %F.type.3e7 = fn_decl @F.15 [template = constants.%F.be8] { -// CHECK:STDOUT: %x.patt: %tuple.type.ff1 = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %tuple.type.ff1 = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %F.decl: %F.type.0e7 = fn_decl @F.15 [template = constants.%F.0bc] { +// CHECK:STDOUT: %x.patt: %tuple.type.eb9 = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %tuple.type.eb9 = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %array_type.a41 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %array_type.a41 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %SelfNestedBadParam.ref: type = name_ref SelfNestedBadParam, file.%SelfNestedBadParam.decl [template = constants.%SelfNestedBadParam] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4] // CHECK:STDOUT: %array_type: type = array_type %int_4, %SelfNestedBadParam [template = constants.%array_type.a41] -// CHECK:STDOUT: %x.param: %tuple.type.ff1 = value_param runtime_param0 -// CHECK:STDOUT: %.loc212_78.1: type = splice_block %.loc212_78.3 [template = constants.%tuple.type.ff1] { +// CHECK:STDOUT: %x.param: %tuple.type.eb9 = value_param runtime_param0 +// CHECK:STDOUT: %.loc212_78.1: type = splice_block %.loc212_78.3 [template = constants.%tuple.type.eb9] { // CHECK:STDOUT: %SelfNestedBadReturnType.ref.loc212_14: type = name_ref SelfNestedBadReturnType, file.%SelfNestedBadReturnType.decl [template = constants.%SelfNestedBadReturnType] // CHECK:STDOUT: %ptr: type = ptr_type %SelfNestedBadReturnType [template = constants.%ptr.612] // CHECK:STDOUT: %SelfNestedBadReturnType.ref.loc212_45: type = name_ref SelfNestedBadReturnType, file.%SelfNestedBadReturnType.decl [template = constants.%SelfNestedBadReturnType] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [template = constants.%struct_type.x.y.d53] +// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [template = constants.%struct_type.x.y.ac5] // CHECK:STDOUT: %.loc212_78.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) -// CHECK:STDOUT: %.loc212_78.3: type = converted %.loc212_78.2, constants.%tuple.type.ff1 [template = constants.%tuple.type.ff1] +// CHECK:STDOUT: %.loc212_78.3: type = converted %.loc212_78.2, constants.%tuple.type.eb9 [template = constants.%tuple.type.eb9] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %tuple.type.ff1 = bind_name x, %x.param +// CHECK:STDOUT: %x: %tuple.type.eb9 = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %array_type.a41 = out_param runtime_param1 // CHECK:STDOUT: %return: ref %array_type.a41 = return_slot %return.param // CHECK:STDOUT: } @@ -1047,21 +1047,21 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: fn @F.12[%self.param_patt: bool](%not_b.param_patt: bool) -> bool; // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.13(@SelfNested.%Self: %SelfNested.type) { -// CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.36c)] +// CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2ff)] // CHECK:STDOUT: %Self.as_type.loc188_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc188_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %ptr.loc188_16.1: type = ptr_type @F.13.%Self.as_type.loc188_16.1 (%Self.as_type) [symbolic = %ptr.loc188_16.1 (constants.%ptr.af7)] -// CHECK:STDOUT: %struct_type.x.y.loc188_37.1: type = struct_type {.x: @F.13.%Self.as_type.loc188_16.1 (%Self.as_type), .y: %i32} [symbolic = %struct_type.x.y.loc188_37.1 (constants.%struct_type.x.y.a57)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.13.%ptr.loc188_16.1 (%ptr.af7), @F.13.%struct_type.x.y.loc188_37.1 (%struct_type.x.y.a57)) [symbolic = %tuple.type (constants.%tuple.type.5f6)] -// CHECK:STDOUT: %array_type.loc188_52.1: type = array_type constants.%int_4, @F.13.%Self.as_type.loc188_16.1 (%Self.as_type) [symbolic = %array_type.loc188_52.1 (constants.%array_type.126f)] +// CHECK:STDOUT: %ptr.loc188_16.1: type = ptr_type @F.13.%Self.as_type.loc188_16.1 (%Self.as_type) [symbolic = %ptr.loc188_16.1 (constants.%ptr.e87)] +// CHECK:STDOUT: %struct_type.x.y.loc188_37.1: type = struct_type {.x: @F.13.%Self.as_type.loc188_16.1 (%Self.as_type), .y: %i32} [symbolic = %struct_type.x.y.loc188_37.1 (constants.%struct_type.x.y.81e)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.13.%ptr.loc188_16.1 (%ptr.e87), @F.13.%struct_type.x.y.loc188_37.1 (%struct_type.x.y.81e)) [symbolic = %tuple.type (constants.%tuple.type.229)] +// CHECK:STDOUT: %array_type.loc188_52.1: type = array_type constants.%int_4, @F.13.%Self.as_type.loc188_16.1 (%Self.as_type) [symbolic = %array_type.loc188_52.1 (constants.%array_type.873)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param_patt: @F.13.%tuple.type (%tuple.type.5f6)) -> @F.13.%array_type.loc188_52.1 (%array_type.126f); +// CHECK:STDOUT: fn(%x.param_patt: @F.13.%tuple.type (%tuple.type.229)) -> @F.13.%array_type.loc188_52.1 (%array_type.873); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.14(%x.param_patt: %tuple.type.0cf) -> %array_type.a41; +// CHECK:STDOUT: fn @F.14(%x.param_patt: %tuple.type.a7d) -> %array_type.a41; // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.15(%x.param_patt: %tuple.type.ff1) -> %array_type.a41; +// CHECK:STDOUT: fn @F.15(%x.param_patt: %tuple.type.eb9) -> %array_type.a41; // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.fb7) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.826) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%I.facet.3bf) {} // CHECK:STDOUT: @@ -1069,7 +1069,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%I.facet.fad) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.5(constants.%Self.f9f) {} +// CHECK:STDOUT: specific @F.5(constants.%Self.ccd) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.5(constants.%J.facet.515) {} // CHECK:STDOUT: @@ -1085,21 +1085,21 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.5(constants.%J.facet.daf) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.13(constants.%Self.36c) { -// CHECK:STDOUT: %Self => constants.%Self.36c +// CHECK:STDOUT: specific @F.13(constants.%Self.2ff) { +// CHECK:STDOUT: %Self => constants.%Self.2ff // CHECK:STDOUT: %Self.as_type.loc188_16.1 => constants.%Self.as_type -// CHECK:STDOUT: %ptr.loc188_16.1 => constants.%ptr.af7 -// CHECK:STDOUT: %struct_type.x.y.loc188_37.1 => constants.%struct_type.x.y.a57 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.5f6 -// CHECK:STDOUT: %array_type.loc188_52.1 => constants.%array_type.126f +// CHECK:STDOUT: %ptr.loc188_16.1 => constants.%ptr.e87 +// CHECK:STDOUT: %struct_type.x.y.loc188_37.1 => constants.%struct_type.x.y.81e +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.229 +// CHECK:STDOUT: %array_type.loc188_52.1 => constants.%array_type.873 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.13(constants.%SelfNested.facet.61c) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.61c // CHECK:STDOUT: %Self.as_type.loc188_16.1 => constants.%SelfNestedBadParam // CHECK:STDOUT: %ptr.loc188_16.1 => constants.%ptr.4cd -// CHECK:STDOUT: %struct_type.x.y.loc188_37.1 => constants.%struct_type.x.y.110 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.aa1 +// CHECK:STDOUT: %struct_type.x.y.loc188_37.1 => constants.%struct_type.x.y.a89 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.9c9 // CHECK:STDOUT: %array_type.loc188_52.1 => constants.%array_type.a41 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1107,8 +1107,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.01f // CHECK:STDOUT: %Self.as_type.loc188_16.1 => constants.%SelfNestedBadReturnType // CHECK:STDOUT: %ptr.loc188_16.1 => constants.%ptr.612 -// CHECK:STDOUT: %struct_type.x.y.loc188_37.1 => constants.%struct_type.x.y.d53 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.ff1 -// CHECK:STDOUT: %array_type.loc188_52.1 => constants.%array_type.126b +// CHECK:STDOUT: %struct_type.x.y.loc188_37.1 => constants.%struct_type.x.y.ac5 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.eb9 +// CHECK:STDOUT: %array_type.loc188_52.1 => constants.%array_type.126 // 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 f9f5dcdeab8c..3ea235eb825d 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon @@ -53,8 +53,8 @@ impl f64 as type where .Self impls type {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_redefinition.carbon b/toolchain/check/testdata/impl/fail_redefinition.carbon index 2202646d3eb9..b7037bc68743 100644 --- a/toolchain/check/testdata/impl/fail_redefinition.carbon +++ b/toolchain/check/testdata/impl/fail_redefinition.carbon @@ -32,7 +32,7 @@ impl i32 as I {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon index a72665044b67..7a74252f0d49 100644 --- a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon +++ b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon @@ -33,29 +33,29 @@ impl i32 as I { // CHECK:STDOUT: %X.patt: %T = symbolic_binding_pattern X, 1 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.b62: type = class_type @C, @C(%T, %X) [symbolic] +// CHECK:STDOUT: %C.b36: type = class_type @C, @C(%T, %X) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %C.082: type = class_type @C, @C(%I.type, %Self) [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] +// CHECK:STDOUT: %C.dbb: type = class_type @C, @C(%I.type, %Self) [symbolic] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %impl_witness: = impl_witness () [template] -// CHECK:STDOUT: %C.11b: type = class_type @C, @C(type, %i32) [template] -// CHECK:STDOUT: %F.type.0e2: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.c9c: %F.type.0e2 = struct_value () [template] +// CHECK:STDOUT: %C.6fb: type = class_type @C, @C(type, %i32) [template] +// CHECK:STDOUT: %F.type.066: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.9ec: %F.type.066 = struct_value () [template] // CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, %impl_witness [template] -// CHECK:STDOUT: %C.33a: type = class_type @C, @C(%I.type, %I.facet) [template] +// CHECK:STDOUT: %C.d7a: type = class_type @C, @C(%I.type, %I.facet) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -91,17 +91,17 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] { -// CHECK:STDOUT: %c.patt: @F.1.%C.loc14_17.1 (%C.082) = binding_pattern c -// CHECK:STDOUT: %c.param_patt: @F.1.%C.loc14_17.1 (%C.082) = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] { +// CHECK:STDOUT: %c.patt: @F.1.%C.loc14_17.1 (%C.dbb) = binding_pattern c +// CHECK:STDOUT: %c.param_patt: @F.1.%C.loc14_17.1 (%C.dbb) = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: @F.1.%C.loc14_17.1 (%C.082) = value_param runtime_param0 -// CHECK:STDOUT: %.loc14: type = splice_block %C.loc14_17.2 [symbolic = %C.loc14_17.1 (constants.%C.082)] { +// CHECK:STDOUT: %c.param: @F.1.%C.loc14_17.1 (%C.dbb) = value_param runtime_param0 +// CHECK:STDOUT: %.loc14: type = splice_block %C.loc14_17.2 [symbolic = %C.loc14_17.1 (constants.%C.dbb)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %C.loc14_17.2: type = class_type @C, @C(constants.%I.type, constants.%Self) [symbolic = %C.loc14_17.1 (constants.%C.082)] +// CHECK:STDOUT: %C.loc14_17.2: type = class_type @C, @C(constants.%I.type, constants.%Self) [symbolic = %C.loc14_17.1 (constants.%C.dbb)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @F.1.%C.loc14_17.1 (%C.082) = bind_name c, %c.param +// CHECK:STDOUT: %c: @F.1.%C.loc14_17.1 (%C.dbb) = bind_name c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: @@ -112,18 +112,18 @@ impl i32 as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %i32 as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.0e2 = fn_decl @F.2 [template = constants.%F.c9c] { -// CHECK:STDOUT: %c.patt: %C.11b = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %C.11b = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %F.decl: %F.type.066 = fn_decl @F.2 [template = constants.%F.9ec] { +// CHECK:STDOUT: %c.patt: %C.6fb = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %C.6fb = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.11b = value_param runtime_param0 -// CHECK:STDOUT: %.loc24: type = splice_block %C [template = constants.%C.11b] { +// CHECK:STDOUT: %c.param: %C.6fb = value_param runtime_param0 +// CHECK:STDOUT: %.loc24: type = splice_block %C [template = constants.%C.6fb] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(type, constants.%i32) [template = constants.%C.11b] +// CHECK:STDOUT: %C: type = class_type @C, @C(type, constants.%i32) [template = constants.%C.6fb] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %C.11b = bind_name c, %c.param +// CHECK:STDOUT: %c: %C.6fb = bind_name c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -143,19 +143,19 @@ impl i32 as I { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.b62 +// CHECK:STDOUT: .Self = constants.%C.b36 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %C.loc14_17.1: type = class_type @C, @C(constants.%I.type, %Self) [symbolic = %C.loc14_17.1 (constants.%C.082)] +// CHECK:STDOUT: %C.loc14_17.1: type = class_type @C, @C(constants.%I.type, %Self) [symbolic = %C.loc14_17.1 (constants.%C.dbb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param_patt: @F.1.%C.loc14_17.1 (%C.082)); +// CHECK:STDOUT: fn(%c.param_patt: @F.1.%C.loc14_17.1 (%C.dbb)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2(%c.param_patt: %C.11b); +// CHECK:STDOUT: fn @F.2(%c.param_patt: %C.6fb); // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T, constants.%X) { // CHECK:STDOUT: %T.loc11_9.2 => constants.%T @@ -173,7 +173,7 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %C.loc14_17.1 => constants.%C.082 +// CHECK:STDOUT: %C.loc14_17.1 => constants.%C.dbb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%I.type, @F.1.%Self) {} @@ -187,7 +187,7 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %C.loc14_17.1 => constants.%C.33a +// CHECK:STDOUT: %C.loc14_17.1 => constants.%C.d7a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet) { diff --git a/toolchain/check/testdata/impl/impl_as.carbon b/toolchain/check/testdata/impl/impl_as.carbon index 9cec142b5695..74e842970edb 100644 --- a/toolchain/check/testdata/impl/impl_as.carbon +++ b/toolchain/check/testdata/impl/impl_as.carbon @@ -26,14 +26,14 @@ class C { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [template] // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.c46: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.41f: %F.type.c46 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Simple.type, %F.type.c46 [template] +// CHECK:STDOUT: %F.type.e2e: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.df8: %F.type.e2e = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Simple.type, %F.type.e2e [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @Simple.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.1ec: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.c23: %F.type.1ec = struct_value () [template] +// CHECK:STDOUT: %F.type.e4b: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.c94: %F.type.e4b = struct_value () [template] // CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] @@ -60,7 +60,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: interface @Simple { // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.c46 = fn_decl @F.1 [template = constants.%F.41f] {} {} +// CHECK:STDOUT: %F.decl: %F.type.e2e = fn_decl @F.1 [template = constants.%F.df8] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -70,7 +70,7 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %Self.ref as %Simple.ref { -// CHECK:STDOUT: %F.decl: %F.type.1ec = fn_decl @F.2 [template = constants.%F.c23] {} {} +// CHECK:STDOUT: %F.decl: %F.type.e4b = fn_decl @F.2 [template = constants.%F.c94] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl diff --git a/toolchain/check/testdata/impl/impl_forall.carbon b/toolchain/check/testdata/impl/impl_forall.carbon index 336673dfbcd5..e588ea65b2fa 100644 --- a/toolchain/check/testdata/impl/impl_forall.carbon +++ b/toolchain/check/testdata/impl/impl_forall.carbon @@ -21,15 +21,15 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [template] // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.c46: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.41f: %F.type.c46 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Simple.type, %F.type.c46 [template] +// CHECK:STDOUT: %F.type.e2e: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.df8: %F.type.e2e = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Simple.type, %F.type.e2e [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @Simple.%F.decl [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.f2d: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.d76: %F.type.f2d = struct_value () [symbolic] +// CHECK:STDOUT: %F.type.1e1: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.4c3: %F.type.1e1 = struct_value () [symbolic] // CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %T, %impl_witness [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -61,7 +61,7 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: // CHECK:STDOUT: interface @Simple { // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.c46 = fn_decl @F.1 [template = constants.%F.41f] {} {} +// CHECK:STDOUT: %F.decl: %F.type.e2e = fn_decl @F.1 [template = constants.%F.df8] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -76,11 +76,11 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc15_14.2) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc15_14.2) [symbolic = %F.type (constants.%F.type.f2d)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.f2d) = struct_value () [symbolic = %F (constants.%F.d76)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc15_14.2) [symbolic = %F.type (constants.%F.type.1e1)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.1e1) = struct_value () [symbolic = %F (constants.%F.4c3)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %Simple.ref { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.f2d) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.d76)] {} {} +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.1e1) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.4c3)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -110,8 +110,8 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: %impl_witness => constants.%impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.f2d -// CHECK:STDOUT: %F => constants.%F.d76 +// CHECK:STDOUT: %F.type => constants.%F.type.1e1 +// CHECK:STDOUT: %F => constants.%F.4c3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(%T.loc15_14.2) {} diff --git a/toolchain/check/testdata/impl/lookup/alias.carbon b/toolchain/check/testdata/impl/lookup/alias.carbon index ca43dddce1cc..9e259bcbfe6f 100644 --- a/toolchain/check/testdata/impl/lookup/alias.carbon +++ b/toolchain/check/testdata/impl/lookup/alias.carbon @@ -30,17 +30,17 @@ fn G(c: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.16d: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.b7b: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.a20: %F.type.16d = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.16d [template] +// CHECK:STDOUT: %F.f50: %F.type.b7b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.b7b [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.2e0: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.89c: %F.type.2e0 = struct_value () [template] +// CHECK:STDOUT: %F.type.a02: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.dc7: %F.type.a02 = struct_value () [template] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] @@ -80,7 +80,7 @@ fn G(c: C) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.16d = fn_decl @F.1 [template = constants.%F.a20] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b7b = fn_decl @F.1 [template = constants.%F.f50] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -90,7 +90,7 @@ fn G(c: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref as %HasF.ref { -// CHECK:STDOUT: %F.decl: %F.type.2e0 = fn_decl @F.2 [template = constants.%F.89c] {} {} +// CHECK:STDOUT: %F.decl: %F.type.a02 = fn_decl @F.2 [template = constants.%F.dc7] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -123,11 +123,11 @@ fn G(c: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc24: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %G.ref.loc24: %F.assoc_type = name_ref G, @C.%G [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc24: %F.type.16d = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.89c] +// CHECK:STDOUT: %impl.elem0.loc24: %F.type.b7b = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.dc7] // CHECK:STDOUT: %F.call.loc24: init %empty_tuple.type = call %impl.elem0.loc24() // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %G.ref.loc25: %F.assoc_type = name_ref G, @C.%G [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc25: %F.type.16d = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.89c] +// CHECK:STDOUT: %impl.elem0.loc25: %F.type.b7b = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.dc7] // CHECK:STDOUT: %F.call.loc25: init %empty_tuple.type = call %impl.elem0.loc25() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon b/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon index 169c8e873300..4c9a9b1301f0 100644 --- a/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon +++ b/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon @@ -33,9 +33,9 @@ fn F(c: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] @@ -73,7 +73,7 @@ fn F(c: C) { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] {} {} +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: 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 81297fdf2977..a87eecef4d36 100644 --- a/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon +++ b/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon @@ -40,9 +40,9 @@ impl C as I { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %impl_witness.85b: = impl_witness () [template] @@ -52,15 +52,15 @@ impl C as I { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] -// CHECK:STDOUT: %impl_witness.433: = impl_witness (@impl.2.%F.decl) [template] -// CHECK:STDOUT: %F.type.663: type = fn_type @F.3 [template] -// CHECK:STDOUT: %F.0c9: %F.type.663 = struct_value () [template] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness.433 [template] +// CHECK:STDOUT: %impl_witness.054: = impl_witness (@impl.2.%F.decl) [template] +// CHECK:STDOUT: %F.type.5d6: type = fn_type @F.3 [template] +// CHECK:STDOUT: %F.a2e: %F.type.5d6 = struct_value () [template] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness.054 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -89,12 +89,12 @@ impl C as I { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [template = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.2.%F.decl) [template = constants.%impl_witness.433] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.2.%F.decl) [template = constants.%impl_witness.054] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] {} {} +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -106,7 +106,7 @@ impl C as I { // CHECK:STDOUT: impl @impl.1: %Self.ref as %I.ref; // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.663 = fn_decl @F.3 [template = constants.%F.0c9] {} {} +// CHECK:STDOUT: %F.decl: %F.type.5d6 = fn_decl @F.3 [template = constants.%F.a2e] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -136,7 +136,7 @@ impl C as I { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @I.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.9df = impl_witness_access constants.%impl_witness.85b, element0 [template = ] +// CHECK:STDOUT: %impl.elem0: %F.type.cf0 = impl_witness_access constants.%impl_witness.85b, element0 [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index d9cbe2c0a930..ab63a3771ee5 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -126,24 +126,24 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.16d: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.b7b: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.a20: %F.type.16d = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.16d [template] +// CHECK:STDOUT: %F.f50: %F.type.b7b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.b7b [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %impl_witness.c72: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.6cd: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.074: %F.type.6cd = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %T, %impl_witness.c72 [symbolic] +// CHECK:STDOUT: %impl_witness.d55: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] +// CHECK:STDOUT: %F.type.3fd: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.c98: %F.type.3fd = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %T, %impl_witness.d55 [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %impl_witness.93b: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.type.e4d: type = fn_type @F.2, @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.da1: %F.type.e4d = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.da1, @F.2(%empty_struct_type) [template] +// CHECK:STDOUT: %impl_witness.d9b: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.type.2e4: type = fn_type @F.2, @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.f13: %F.type.2e4 = struct_value () [template] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.f13, @F.2(%empty_struct_type) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -170,7 +170,7 @@ fn G(x: A) { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.c72)] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.d55)] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %x.patt: %empty_struct_type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_struct_type = value_param_pattern %x.patt, runtime_param0 @@ -186,7 +186,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.16d = fn_decl @F.1 [template = constants.%F.a20] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b7b = fn_decl @F.1 [template = constants.%F.f50] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -198,14 +198,14 @@ fn G(x: A) { // CHECK:STDOUT: generic impl @impl(%T.loc8_14.1: type) { // CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.c72)] +// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.d55)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.6cd)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.6cd) = struct_value () [symbolic = %F (constants.%F.074)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.3fd)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.3fd) = struct_value () [symbolic = %F (constants.%F.c98)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.6cd) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.074)] {} {} +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.3fd) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.c98)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -232,7 +232,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 [template = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.16d = impl_witness_access constants.%impl_witness.93b, element0 [template = constants.%F.da1] +// CHECK:STDOUT: %impl.elem0: %F.type.b7b = impl_witness_access constants.%impl_witness.d9b, element0 [template = constants.%F.f13] // CHECK:STDOUT: %F.specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [template = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() // CHECK:STDOUT: return @@ -243,11 +243,11 @@ fn G(x: A) { // CHECK:STDOUT: specific @impl(constants.%T) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%T -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.c72 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.d55 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.6cd -// CHECK:STDOUT: %F => constants.%F.074 +// CHECK:STDOUT: %F.type => constants.%F.type.3fd +// CHECK:STDOUT: %F => constants.%F.c98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(%T.loc8_14.2) {} @@ -259,11 +259,11 @@ fn G(x: A) { // CHECK:STDOUT: specific @impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%empty_struct_type // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%empty_struct_type -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.93b +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.d9b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.e4d -// CHECK:STDOUT: %F => constants.%F.da1 +// CHECK:STDOUT: %F.type => constants.%F.type.2e4 +// CHECK:STDOUT: %F => constants.%F.f13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%empty_struct_type) { @@ -276,23 +276,23 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %F.type.16d: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.a20: %F.type.16d = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.16d [template] +// CHECK:STDOUT: %F.type.b7b: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.f50: %F.type.b7b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.b7b [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %impl_witness.11b: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.6cd: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.074: %F.type.6cd = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %T, %impl_witness.11b [symbolic] +// CHECK:STDOUT: %impl_witness.d55: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] +// CHECK:STDOUT: %F.type.3fd: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.c98: %F.type.3fd = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %T, %impl_witness.d55 [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %impl_witness.f45: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.type.e4d: type = fn_type @F.2, @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.da1: %F.type.e4d = struct_value () [template] +// CHECK:STDOUT: %impl_witness.d9b: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.type.2e4: type = fn_type @F.2, @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.f13: %F.type.2e4 = struct_value () [template] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: } @@ -321,7 +321,7 @@ fn G(x: A) { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.11b)] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.d55)] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %x.patt: %empty_struct_type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_struct_type = value_param_pattern %x.patt, runtime_param0 @@ -343,7 +343,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.16d = fn_decl @F.1 [template = constants.%F.a20] { +// CHECK:STDOUT: %F.decl: %F.type.b7b = fn_decl @F.1 [template = constants.%F.f50] { // CHECK:STDOUT: %self.patt: @F.1.%Self.as_type.loc5_14.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.1.%Self.as_type.loc5_14.1 (%Self.as_type) = return_slot_pattern @@ -373,14 +373,14 @@ fn G(x: A) { // CHECK:STDOUT: generic impl @impl(%T.loc8_14.1: type) { // CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.11b)] +// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.d55)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.6cd)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.6cd) = struct_value () [symbolic = %F (constants.%F.074)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.3fd)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.3fd) = struct_value () [symbolic = %F (constants.%F.c98)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.6cd) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.074)] { +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.3fd) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.c98)] { // CHECK:STDOUT: %self.patt: @F.2.%T (%T) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @F.2.%T (%T) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.2.%T (%T) = return_slot_pattern @@ -425,7 +425,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 [template = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.16d = impl_witness_access constants.%impl_witness.f45, element0 [template = constants.%F.da1] +// CHECK:STDOUT: %impl.elem0: %F.type.b7b = impl_witness_access constants.%impl_witness.d9b, element0 [template = constants.%F.f13] // CHECK:STDOUT: %F.bound: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %F.specific_fn: = specific_function %F.bound, @F.2(constants.%empty_struct_type) // CHECK:STDOUT: %F.call: init %empty_struct_type = call %F.specific_fn(%x.ref) @@ -444,11 +444,11 @@ fn G(x: A) { // CHECK:STDOUT: specific @impl(constants.%T) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%T -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.11b +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.d55 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.6cd -// CHECK:STDOUT: %F => constants.%F.074 +// CHECK:STDOUT: %F.type => constants.%F.type.3fd +// CHECK:STDOUT: %F => constants.%F.c98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(%T.loc8_14.2) {} @@ -465,11 +465,11 @@ fn G(x: A) { // CHECK:STDOUT: specific @impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%empty_struct_type // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%empty_struct_type -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.f45 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.d9b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.e4d -// CHECK:STDOUT: %F => constants.%F.da1 +// CHECK:STDOUT: %F.type => constants.%F.type.2e4 +// CHECK:STDOUT: %F => constants.%F.f13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%empty_struct_type) { @@ -484,29 +484,29 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.16d: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.b7b: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.a20: %F.type.16d = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.16d [template] +// CHECK:STDOUT: %F.f50: %F.type.b7b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.b7b [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %impl_witness.cf5: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.823: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.743: %F.type.823 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C.37e, %impl_witness.cf5 [symbolic] -// CHECK:STDOUT: %C.27b: type = class_type @C, @C(%empty_struct_type) [template] +// CHECK:STDOUT: %impl_witness.7d1: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] +// CHECK:STDOUT: %F.type.8fe: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.92a: %F.type.8fe = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C.f2e, %impl_witness.7d1 [symbolic] +// CHECK:STDOUT: %C.7a7: type = class_type @C, @C(%empty_struct_type) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %impl_witness.3d0: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.type.239: type = fn_type @F.2, @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.c56: %F.type.239 = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.c56, @F.2(%empty_struct_type) [template] +// CHECK:STDOUT: %impl_witness.770: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.type.2e5: type = fn_type @F.2, @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.c77: %F.type.2e5 = struct_value () [template] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.c77, @F.2(%empty_struct_type) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -538,30 +538,30 @@ fn G(x: A) { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc10_14.1 [symbolic = %T.loc10_14.2 (constants.%T)] -// CHECK:STDOUT: %C.loc10_27.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc10_27.2 (constants.%C.37e)] +// CHECK:STDOUT: %C.loc10_27.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc10_27.2 (constants.%C.f2e)] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [template = constants.%HasF.type] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc10_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.cf5)] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.7d1)] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %x.patt: %C.27b = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %C.27b = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: %C.7a7 = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %C.7a7 = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: %C.27b = value_param runtime_param0 -// CHECK:STDOUT: %.loc14_13.1: type = splice_block %C [template = constants.%C.27b] { +// CHECK:STDOUT: %x.param: %C.7a7 = value_param runtime_param0 +// CHECK:STDOUT: %.loc14_13.1: type = splice_block %C [template = constants.%C.7a7] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %.loc14_12: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc14_13.2: type = converted %.loc14_12, constants.%empty_struct_type [template = constants.%empty_struct_type] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [template = constants.%C.27b] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [template = constants.%C.7a7] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %C.27b = bind_name x, %x.param +// CHECK:STDOUT: %x: %C.7a7 = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.16d = fn_decl @F.1 [template = constants.%F.a20] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b7b = fn_decl @F.1 [template = constants.%F.f50] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -573,15 +573,15 @@ fn G(x: A) { // CHECK:STDOUT: generic impl @impl(%T.loc10_14.1: type) { // CHECK:STDOUT: %T.loc10_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc10_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %C.loc10_27.2: type = class_type @C, @C(%T.loc10_14.2) [symbolic = %C.loc10_27.2 (constants.%C.37e)] -// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc10_14.2) [symbolic = %impl_witness (constants.%impl_witness.cf5)] +// CHECK:STDOUT: %C.loc10_27.2: type = class_type @C, @C(%T.loc10_14.2) [symbolic = %C.loc10_27.2 (constants.%C.f2e)] +// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc10_14.2) [symbolic = %impl_witness (constants.%impl_witness.7d1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc10_14.2) [symbolic = %F.type (constants.%F.type.823)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.823) = struct_value () [symbolic = %F (constants.%F.743)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc10_14.2) [symbolic = %F.type (constants.%F.type.8fe)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.8fe) = struct_value () [symbolic = %F (constants.%F.92a)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.loc10_27.1 as %HasF.ref { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.823) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.743)] {} {} +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.8fe) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.92a)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -599,7 +599,7 @@ fn G(x: A) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -618,12 +618,12 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%x.param_patt: %C.27b) { +// CHECK:STDOUT: fn @G(%x.param_patt: %C.7a7) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: %C.27b = name_ref x, %x +// CHECK:STDOUT: %x.ref: %C.7a7 = name_ref x, %x // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [template = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.16d = impl_witness_access constants.%impl_witness.3d0, element0 [template = constants.%F.c56] +// CHECK:STDOUT: %impl.elem0: %F.type.b7b = impl_witness_access constants.%impl_witness.770, element0 [template = constants.%F.c77] // CHECK:STDOUT: %F.specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [template = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() // CHECK:STDOUT: return @@ -639,12 +639,12 @@ fn G(x: A) { // CHECK:STDOUT: specific @impl(constants.%T) { // CHECK:STDOUT: %T.loc10_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc10_14.2 => constants.%T -// CHECK:STDOUT: %C.loc10_27.2 => constants.%C.37e -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.cf5 +// CHECK:STDOUT: %C.loc10_27.2 => constants.%C.f2e +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.7d1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.823 -// CHECK:STDOUT: %F => constants.%F.743 +// CHECK:STDOUT: %F.type => constants.%F.type.8fe +// CHECK:STDOUT: %F => constants.%F.92a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(@impl.%T.loc10_14.2) {} @@ -665,12 +665,12 @@ fn G(x: A) { // CHECK:STDOUT: specific @impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc10_14.2 => constants.%empty_struct_type // CHECK:STDOUT: %T.patt.loc10_14.2 => constants.%empty_struct_type -// CHECK:STDOUT: %C.loc10_27.2 => constants.%C.27b -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.3d0 +// CHECK:STDOUT: %C.loc10_27.2 => constants.%C.7a7 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.770 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.239 -// CHECK:STDOUT: %F => constants.%F.c56 +// CHECK:STDOUT: %F.type => constants.%F.type.2e5 +// CHECK:STDOUT: %F => constants.%F.c77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%empty_struct_type) { @@ -685,30 +685,30 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.type.fe3: type = generic_interface_type @HasF [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %HasF.generic: %HasF.type.fe3 = struct_value () [template] -// CHECK:STDOUT: %HasF.type.a19: type = facet_type <@HasF, @HasF(%T)> [symbolic] -// CHECK:STDOUT: %Self: %HasF.type.a19 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %F.type.38a: type = fn_type @F.1, @HasF(%T) [symbolic] -// CHECK:STDOUT: %F.81b: %F.type.38a = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.cd1: type = assoc_entity_type %HasF.type.a19, %F.type.38a [symbolic] -// CHECK:STDOUT: %assoc0.1d6: %F.assoc_type.cd1 = assoc_entity element0, @HasF.%F.decl [symbolic] +// CHECK:STDOUT: %HasF.type.901: type = facet_type <@HasF, @HasF(%T)> [symbolic] +// CHECK:STDOUT: %Self: %HasF.type.901 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %F.type.46c: type = fn_type @F.1, @HasF(%T) [symbolic] +// CHECK:STDOUT: %F.823: %F.type.46c = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.a8c: type = assoc_entity_type %HasF.type.901, %F.type.46c [symbolic] +// CHECK:STDOUT: %assoc0.c51: %F.assoc_type.a8c = assoc_entity element0, @HasF.%F.decl [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] -// CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.a19 [symbolic] -// CHECK:STDOUT: %impl_witness.b35: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.7da: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.421: %F.type.7da = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet: %HasF.type.a19 = facet_value %empty_struct_type, %impl_witness.b35 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.901 [symbolic] +// CHECK:STDOUT: %impl_witness.142: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] +// CHECK:STDOUT: %F.type.6c8: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.008: %F.type.6c8 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet: %HasF.type.901 = facet_value %empty_struct_type, %impl_witness.142 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %HasF.type.914: type = facet_type <@HasF, @HasF(%empty_struct_type)> [template] -// CHECK:STDOUT: %F.type.6ab: type = fn_type @F.1, @HasF(%empty_struct_type) [template] -// CHECK:STDOUT: %F.5c7: %F.type.6ab = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.26b: type = assoc_entity_type %HasF.type.914, %F.type.6ab [template] -// CHECK:STDOUT: %assoc0.589: %F.assoc_type.26b = assoc_entity element0, @HasF.%F.decl [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %HasF.type.914 [template] -// CHECK:STDOUT: %impl_witness.7cd: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.type.c45: type = fn_type @F.2, @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.b2a: %F.type.c45 = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.b2a, @F.2(%empty_struct_type) [template] +// CHECK:STDOUT: %HasF.type.072: type = facet_type <@HasF, @HasF(%empty_struct_type)> [template] +// CHECK:STDOUT: %F.type.b0b: type = fn_type @F.1, @HasF(%empty_struct_type) [template] +// CHECK:STDOUT: %F.418: %F.type.b0b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.3e1: type = assoc_entity_type %HasF.type.072, %F.type.b0b [template] +// CHECK:STDOUT: %assoc0.6fd: %F.assoc_type.3e1 = assoc_entity element0, @HasF.%F.decl [template] +// CHECK:STDOUT: %complete_type: = complete_type_witness %HasF.type.072 [template] +// CHECK:STDOUT: %impl_witness.221: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.type.a13: type = fn_type @F.2, @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.8c6: %F.type.a13 = struct_value () [template] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.8c6, @F.2(%empty_struct_type) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -740,11 +740,11 @@ fn G(x: A) { // CHECK:STDOUT: %.loc8_25.2: type = converted %.loc8_25.1, constants.%empty_struct_type [template = constants.%empty_struct_type] // CHECK:STDOUT: %HasF.ref: %HasF.type.fe3 = name_ref HasF, file.%HasF.decl [template = constants.%HasF.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] -// CHECK:STDOUT: %HasF.type.loc8_36.1: type = facet_type <@HasF, @HasF(constants.%T)> [symbolic = %HasF.type.loc8_36.2 (constants.%HasF.type.a19)] +// CHECK:STDOUT: %HasF.type.loc8_36.1: type = facet_type <@HasF, @HasF(constants.%T)> [symbolic = %HasF.type.loc8_36.2 (constants.%HasF.type.901)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.b35)] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.142)] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %x.patt: %empty_struct_type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_struct_type = value_param_pattern %x.patt, runtime_param0 @@ -763,17 +763,17 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt.loc4_16.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_16.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.a19)] -// CHECK:STDOUT: %Self.2: %HasF.type.a19 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.38a)] -// CHECK:STDOUT: %F: @HasF.%F.type (%F.type.38a) = struct_value () [symbolic = %F (constants.%F.81b)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.a19), @HasF.%F.type (%F.type.38a) [symbolic = %F.assoc_type (constants.%F.assoc_type.cd1)] -// CHECK:STDOUT: %assoc0.loc5_9.2: @HasF.%F.assoc_type (%F.assoc_type.cd1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.1d6)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.901)] +// CHECK:STDOUT: %Self.2: %HasF.type.901 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.46c)] +// CHECK:STDOUT: %F: @HasF.%F.type (%F.type.46c) = struct_value () [symbolic = %F (constants.%F.823)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.901), @HasF.%F.type (%F.type.46c) [symbolic = %F.assoc_type (constants.%F.assoc_type.a8c)] +// CHECK:STDOUT: %assoc0.loc5_9.2: @HasF.%F.assoc_type (%F.assoc_type.a8c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.c51)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.a19) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.decl: @HasF.%F.type (%F.type.38a) = fn_decl @F.1 [symbolic = @HasF.%F (constants.%F.81b)] {} {} -// CHECK:STDOUT: %assoc0.loc5_9.1: @HasF.%F.assoc_type (%F.assoc_type.cd1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.1d6)] +// CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.901) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.decl: @HasF.%F.type (%F.type.46c) = fn_decl @F.1 [symbolic = @HasF.%F (constants.%F.823)] {} {} +// CHECK:STDOUT: %assoc0.loc5_9.1: @HasF.%F.assoc_type (%F.assoc_type.a8c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.c51)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -785,16 +785,16 @@ fn G(x: A) { // CHECK:STDOUT: generic impl @impl(%T.loc8_14.1: type) { // CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %HasF.type.loc8_36.2: type = facet_type <@HasF, @HasF(%T.loc8_14.2)> [symbolic = %HasF.type.loc8_36.2 (constants.%HasF.type.a19)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%HasF.type.loc8_36.2 (%HasF.type.a19) [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.b35)] +// CHECK:STDOUT: %HasF.type.loc8_36.2: type = facet_type <@HasF, @HasF(%T.loc8_14.2)> [symbolic = %HasF.type.loc8_36.2 (constants.%HasF.type.901)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%HasF.type.loc8_36.2 (%HasF.type.901) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.142)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.7da)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.7da) = struct_value () [symbolic = %F (constants.%F.421)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.6c8)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.6c8) = struct_value () [symbolic = %F (constants.%F.008)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc8_25.2 as %HasF.type.loc8_36.1 { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.7da) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.421)] {} {} +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.6c8) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.008)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -802,7 +802,7 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.a19)) { +// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -822,10 +822,10 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.ref: %HasF.type.fe3 = name_ref HasF, file.%HasF.decl [template = constants.%HasF.generic] // CHECK:STDOUT: %.loc13_12: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc13_13: type = converted %.loc13_12, constants.%empty_struct_type [template = constants.%empty_struct_type] -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%empty_struct_type)> [template = constants.%HasF.type.914] -// CHECK:STDOUT: %.loc13_14: %F.assoc_type.26b = specific_constant @HasF.%assoc0.loc5_9.1, @HasF(constants.%empty_struct_type) [template = constants.%assoc0.589] -// CHECK:STDOUT: %F.ref: %F.assoc_type.26b = name_ref F, %.loc13_14 [template = constants.%assoc0.589] -// CHECK:STDOUT: %impl.elem0: %F.type.6ab = impl_witness_access constants.%impl_witness.7cd, element0 [template = constants.%F.b2a] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%empty_struct_type)> [template = constants.%HasF.type.072] +// CHECK:STDOUT: %.loc13_14: %F.assoc_type.3e1 = specific_constant @HasF.%assoc0.loc5_9.1, @HasF(constants.%empty_struct_type) [template = constants.%assoc0.6fd] +// CHECK:STDOUT: %F.ref: %F.assoc_type.3e1 = name_ref F, %.loc13_14 [template = constants.%assoc0.6fd] +// CHECK:STDOUT: %impl.elem0: %F.type.b0b = impl_witness_access constants.%impl_witness.221, element0 [template = constants.%F.8c6] // CHECK:STDOUT: %F.specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [template = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() // CHECK:STDOUT: return @@ -836,12 +836,12 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt.loc4_16.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.a19 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.38a -// CHECK:STDOUT: %F => constants.%F.81b -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.cd1 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.1d6 +// CHECK:STDOUT: %F.type => constants.%F.type.46c +// CHECK:STDOUT: %F => constants.%F.823 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.a8c +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.c51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self) {} @@ -851,13 +851,13 @@ fn G(x: A) { // CHECK:STDOUT: specific @impl(constants.%T) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%T -// CHECK:STDOUT: %HasF.type.loc8_36.2 => constants.%HasF.type.a19 +// CHECK:STDOUT: %HasF.type.loc8_36.2 => constants.%HasF.type.901 // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.b35 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.142 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.7da -// CHECK:STDOUT: %F => constants.%F.421 +// CHECK:STDOUT: %F.type => constants.%F.type.6c8 +// CHECK:STDOUT: %F => constants.%F.008 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(@impl.%T.loc8_14.2) {} @@ -873,24 +873,24 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt.loc4_16.2 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.914 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.072 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.6ab -// CHECK:STDOUT: %F => constants.%F.5c7 -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.26b -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.589 +// CHECK:STDOUT: %F.type => constants.%F.type.b0b +// CHECK:STDOUT: %F => constants.%F.418 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.3e1 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.6fd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%empty_struct_type // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%empty_struct_type -// CHECK:STDOUT: %HasF.type.loc8_36.2 => constants.%HasF.type.914 +// CHECK:STDOUT: %HasF.type.loc8_36.2 => constants.%HasF.type.072 // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.7cd +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.221 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.c45 -// CHECK:STDOUT: %F => constants.%F.b2a +// CHECK:STDOUT: %F.type => constants.%F.type.a13 +// CHECK:STDOUT: %F => constants.%F.8c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%empty_struct_type) { @@ -902,17 +902,17 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.16d: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.a20: %F.type.16d = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.16d [template] +// CHECK:STDOUT: %F.type.b7b: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.f50: %F.type.b7b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.b7b [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T, %U) [symbolic] -// CHECK:STDOUT: %F.type.c6f: type = fn_type @F.2, @impl(%T, %U) [symbolic] -// CHECK:STDOUT: %F.554: %F.type.c6f = struct_value () [symbolic] +// CHECK:STDOUT: %F.type.56e: type = fn_type @F.2, @impl(%T, %U) [symbolic] +// CHECK:STDOUT: %F.9b8: %F.type.56e = struct_value () [symbolic] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %T, %impl_witness [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] @@ -963,7 +963,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.16d = fn_decl @F.1 [template = constants.%F.a20] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b7b = fn_decl @F.1 [template = constants.%F.f50] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -980,11 +980,11 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc9_14.2, %U.loc9_24.2) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc9_14.2, %U.loc9_24.2) [symbolic = %F.type (constants.%F.type.c6f)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.c6f) = struct_value () [symbolic = %F (constants.%F.554)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc9_14.2, %U.loc9_24.2) [symbolic = %F.type (constants.%F.type.56e)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.56e) = struct_value () [symbolic = %F (constants.%F.9b8)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.c6f) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.554)] {} {} +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.56e) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.9b8)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -1024,8 +1024,8 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness => constants.%impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.c6f -// CHECK:STDOUT: %F => constants.%F.554 +// CHECK:STDOUT: %F.type => constants.%F.type.56e +// CHECK:STDOUT: %F => constants.%F.9b8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(%T.loc9_14.2, %U.loc9_24.2) {} @@ -1041,28 +1041,28 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %HasF.type.fe3: type = generic_interface_type @HasF [template] // CHECK:STDOUT: %HasF.generic: %HasF.type.fe3 = struct_value () [template] -// CHECK:STDOUT: %HasF.type.a19: type = facet_type <@HasF, @HasF(%T)> [symbolic] -// CHECK:STDOUT: %Self: %HasF.type.a19 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %F.type.38a: type = fn_type @F.1, @HasF(%T) [symbolic] -// CHECK:STDOUT: %F.81b: %F.type.38a = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.cd1: type = assoc_entity_type %HasF.type.a19, %F.type.38a [symbolic] -// CHECK:STDOUT: %assoc0.1d6: %F.assoc_type.cd1 = assoc_entity element0, @HasF.%F.decl [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.a19 [symbolic] +// CHECK:STDOUT: %HasF.type.901: type = facet_type <@HasF, @HasF(%T)> [symbolic] +// CHECK:STDOUT: %Self: %HasF.type.901 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %F.type.46c: type = fn_type @F.1, @HasF(%T) [symbolic] +// CHECK:STDOUT: %F.823: %F.type.46c = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.a8c: type = assoc_entity_type %HasF.type.901, %F.type.46c [symbolic] +// CHECK:STDOUT: %assoc0.c51: %F.assoc_type.a8c = assoc_entity element0, @HasF.%F.decl [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.901 [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.7a5: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.dde: %F.type.7a5 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet: %HasF.type.a19 = facet_value %T, %impl_witness [symbolic] +// CHECK:STDOUT: %F.type.912: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.f30: %F.type.912 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet: %HasF.type.901 = facet_value %T, %impl_witness [symbolic] // CHECK:STDOUT: %A: type = class_type @A [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %HasF.type.086: type = facet_type <@HasF, @HasF(%B)> [template] -// CHECK:STDOUT: %F.type.d90: type = fn_type @F.1, @HasF(%B) [template] -// CHECK:STDOUT: %F.765: %F.type.d90 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.cee: type = assoc_entity_type %HasF.type.086, %F.type.d90 [template] -// CHECK:STDOUT: %assoc0.f48: %F.assoc_type.cee = assoc_entity element0, @HasF.%F.decl [template] +// CHECK:STDOUT: %HasF.type.2f5: type = facet_type <@HasF, @HasF(%B)> [template] +// CHECK:STDOUT: %F.type.1c6: type = fn_type @F.1, @HasF(%B) [template] +// CHECK:STDOUT: %F.7cf: %F.type.1c6 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.00a: type = assoc_entity_type %HasF.type.2f5, %F.type.1c6 [template] +// CHECK:STDOUT: %assoc0.c2a: %F.assoc_type.00a = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1095,7 +1095,7 @@ fn G(x: A) { // CHECK:STDOUT: %T.ref.loc8_24: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %HasF.ref: %HasF.type.fe3 = name_ref HasF, file.%HasF.decl [template = constants.%HasF.generic] // CHECK:STDOUT: %T.ref.loc8_34: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] -// CHECK:STDOUT: %HasF.type.loc8_35.1: type = facet_type <@HasF, @HasF(constants.%T)> [symbolic = %HasF.type.loc8_35.2 (constants.%HasF.type.a19)] +// CHECK:STDOUT: %HasF.type.loc8_35.1: type = facet_type <@HasF, @HasF(constants.%T)> [symbolic = %HasF.type.loc8_35.2 (constants.%HasF.type.901)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: } @@ -1117,17 +1117,17 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt.loc4_16.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_16.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.a19)] -// CHECK:STDOUT: %Self.2: %HasF.type.a19 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.38a)] -// CHECK:STDOUT: %F: @HasF.%F.type (%F.type.38a) = struct_value () [symbolic = %F (constants.%F.81b)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.a19), @HasF.%F.type (%F.type.38a) [symbolic = %F.assoc_type (constants.%F.assoc_type.cd1)] -// CHECK:STDOUT: %assoc0.loc5_9.2: @HasF.%F.assoc_type (%F.assoc_type.cd1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.1d6)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.901)] +// CHECK:STDOUT: %Self.2: %HasF.type.901 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.46c)] +// CHECK:STDOUT: %F: @HasF.%F.type (%F.type.46c) = struct_value () [symbolic = %F (constants.%F.823)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.901), @HasF.%F.type (%F.type.46c) [symbolic = %F.assoc_type (constants.%F.assoc_type.a8c)] +// CHECK:STDOUT: %assoc0.loc5_9.2: @HasF.%F.assoc_type (%F.assoc_type.a8c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.c51)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.a19) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.decl: @HasF.%F.type (%F.type.38a) = fn_decl @F.1 [symbolic = @HasF.%F (constants.%F.81b)] {} {} -// CHECK:STDOUT: %assoc0.loc5_9.1: @HasF.%F.assoc_type (%F.assoc_type.cd1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.1d6)] +// CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.901) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.decl: @HasF.%F.type (%F.type.46c) = fn_decl @F.1 [symbolic = @HasF.%F (constants.%F.823)] {} {} +// CHECK:STDOUT: %assoc0.loc5_9.1: @HasF.%F.assoc_type (%F.assoc_type.a8c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.c51)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -1139,16 +1139,16 @@ fn G(x: A) { // CHECK:STDOUT: generic impl @impl(%T.loc8_14.1: type) { // CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %HasF.type.loc8_35.2: type = facet_type <@HasF, @HasF(%T.loc8_14.2)> [symbolic = %HasF.type.loc8_35.2 (constants.%HasF.type.a19)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%HasF.type.loc8_35.2 (%HasF.type.a19) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %HasF.type.loc8_35.2: type = facet_type <@HasF, @HasF(%T.loc8_14.2)> [symbolic = %HasF.type.loc8_35.2 (constants.%HasF.type.901)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%HasF.type.loc8_35.2 (%HasF.type.901) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.7a5)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.7a5) = struct_value () [symbolic = %F (constants.%F.dde)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.912)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.912) = struct_value () [symbolic = %F (constants.%F.f30)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref.loc8_24 as %HasF.type.loc8_35.1 { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.7a5) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.dde)] {} {} +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.912) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.f30)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -1172,7 +1172,7 @@ fn G(x: A) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.a19)) { +// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -1191,9 +1191,9 @@ fn G(x: A) { // CHECK:STDOUT: %x.ref: %A = name_ref x, %x // CHECK:STDOUT: %HasF.ref: %HasF.type.fe3 = name_ref HasF, file.%HasF.decl [template = constants.%HasF.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%B)> [template = constants.%HasF.type.086] -// CHECK:STDOUT: %.loc21: %F.assoc_type.cee = specific_constant @HasF.%assoc0.loc5_9.1, @HasF(constants.%B) [template = constants.%assoc0.f48] -// CHECK:STDOUT: %F.ref: %F.assoc_type.cee = name_ref F, %.loc21 [template = constants.%assoc0.f48] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%B)> [template = constants.%HasF.type.2f5] +// CHECK:STDOUT: %.loc21: %F.assoc_type.00a = specific_constant @HasF.%assoc0.loc5_9.1, @HasF(constants.%B) [template = constants.%assoc0.c2a] +// CHECK:STDOUT: %F.ref: %F.assoc_type.00a = name_ref F, %.loc21 [template = constants.%assoc0.c2a] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1202,12 +1202,12 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt.loc4_16.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.a19 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.38a -// CHECK:STDOUT: %F => constants.%F.81b -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.cd1 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.1d6 +// CHECK:STDOUT: %F.type => constants.%F.type.46c +// CHECK:STDOUT: %F => constants.%F.823 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.a8c +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.c51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self) {} @@ -1217,13 +1217,13 @@ fn G(x: A) { // CHECK:STDOUT: specific @impl(constants.%T) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%T -// CHECK:STDOUT: %HasF.type.loc8_35.2 => constants.%HasF.type.a19 +// CHECK:STDOUT: %HasF.type.loc8_35.2 => constants.%HasF.type.901 // CHECK:STDOUT: %require_complete => constants.%require_complete // CHECK:STDOUT: %impl_witness => constants.%impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.7a5 -// CHECK:STDOUT: %F => constants.%F.dde +// CHECK:STDOUT: %F.type => constants.%F.type.912 +// CHECK:STDOUT: %F => constants.%F.f30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(@impl.%T.loc8_14.2) {} @@ -1239,11 +1239,11 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt.loc4_16.2 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.086 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.2f5 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.d90 -// CHECK:STDOUT: %F => constants.%F.765 -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.cee -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.f48 +// CHECK:STDOUT: %F.type => constants.%F.type.1c6 +// CHECK:STDOUT: %F => constants.%F.7cf +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.00a +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.c2a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/instance_method.carbon b/toolchain/check/testdata/impl/lookup/instance_method.carbon index f9e21ada8586..fac2fed08906 100644 --- a/toolchain/check/testdata/impl/lookup/instance_method.carbon +++ b/toolchain/check/testdata/impl/lookup/instance_method.carbon @@ -33,13 +33,13 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.58f: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.17c: %F.type.58f = struct_value () [template] +// CHECK:STDOUT: %F.type.f36: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.4c3: %F.type.f36 = struct_value () [template] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] @@ -49,7 +49,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -84,7 +84,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] { +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] { // CHECK:STDOUT: %self.patt: @F.1.%Self.as_type.loc14_14.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc14_14.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -111,7 +111,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %Self.ref as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.58f = fn_decl @F.2 [template = constants.%F.17c] { +// CHECK:STDOUT: %F.decl: %F.type.f36 = fn_decl @F.2 [template = constants.%F.4c3] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -158,7 +158,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @I.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.9df = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.17c] +// CHECK:STDOUT: %impl.elem0: %F.type.cf0 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.4c3] // CHECK:STDOUT: %F.bound: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %F.call: init %i32 = call %F.bound(%c.ref) // CHECK:STDOUT: %.loc24_15.1: %i32 = value_of_initializer %F.call diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon index 4d3907f34490..98d0e4014670 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon @@ -39,76 +39,76 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %A.type: type = generic_class_type @A [template] // CHECK:STDOUT: %A.generic: %A.type = struct_value () [template] -// CHECK:STDOUT: %A.619: type = class_type @A, @A(%T) [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %A.elem.78a: type = unbound_element_type %A.619, %T [symbolic] -// CHECK:STDOUT: %struct_type.n.0d6: type = struct_type {.n: %T} [symbolic] -// CHECK:STDOUT: %complete_type.74d: = complete_type_witness %struct_type.n.0d6 [symbolic] +// CHECK:STDOUT: %A.13025a.1: type = class_type @A, @A(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4aeca8.1: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %A.elem.1ceb36.1: type = unbound_element_type %A.13025a.1, %T [symbolic] +// CHECK:STDOUT: %struct_type.n.848971.1: type = struct_type {.n: %T} [symbolic] +// CHECK:STDOUT: %complete_type.84bb3d.1: = complete_type_witness %struct_type.n.848971.1 [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.995: type = facet_type <@I, @I(%U)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.995 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.325e65.1: type = facet_type <@I, @I(%U)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325e65.1 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %F.type.1c6: type = fn_type @F.1, @I(%U) [symbolic] -// CHECK:STDOUT: %F.7e2: %F.type.1c6 = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.0d1: type = assoc_entity_type %I.type.995, %F.type.1c6 [symbolic] -// CHECK:STDOUT: %assoc0.1b8: %F.assoc_type.0d1 = assoc_entity element0, @I.%F.decl [symbolic] +// CHECK:STDOUT: %F.type.2aef59.1: type = fn_type @F.1, @I(%U) [symbolic] +// CHECK:STDOUT: %F.bb2dd4.1: %F.type.2aef59.1 = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003a5c.1: type = assoc_entity_type %I.type.325e65.1, %F.type.2aef59.1 [symbolic] +// CHECK:STDOUT: %assoc0.819972.1: %F.assoc_type.003a5c.1 = assoc_entity element0, @I.%F.decl [symbolic] // CHECK:STDOUT: %V: type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %V.patt: type = symbolic_binding_pattern V, 0 [symbolic] -// CHECK:STDOUT: %A.53d: type = class_type @A, @A(%V) [symbolic] -// CHECK:STDOUT: %I.type.1af: type = facet_type <@I, @I(%V)> [symbolic] -// CHECK:STDOUT: %require_complete.f84: = require_complete_type %I.type.1af [symbolic] -// CHECK:STDOUT: %F.type.a96: type = fn_type @F.1, @I(%V) [symbolic] -// CHECK:STDOUT: %F.0a7: %F.type.a96 = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.07c: type = assoc_entity_type %I.type.1af, %F.type.a96 [symbolic] -// CHECK:STDOUT: %assoc0.fa4: %F.assoc_type.07c = assoc_entity element0, @I.%F.decl [symbolic] -// CHECK:STDOUT: %impl_witness.ed3: = impl_witness (@impl.%F.decl), @impl(%V) [symbolic] -// CHECK:STDOUT: %F.type.bf7: type = fn_type @F.2, @impl(%V) [symbolic] -// CHECK:STDOUT: %F.684: %F.type.bf7 = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.995 = facet_value %A.53d, %impl_witness.ed3 [symbolic] -// CHECK:STDOUT: %require_complete.5da: = require_complete_type %V [symbolic] -// CHECK:STDOUT: %A.elem.49b: type = unbound_element_type %A.53d, %V [symbolic] -// CHECK:STDOUT: %struct_type.n.626: type = struct_type {.n: %V} [symbolic] -// CHECK:STDOUT: %complete_type.a0c: = complete_type_witness %struct_type.n.626 [symbolic] -// CHECK:STDOUT: %require_complete.51f: = require_complete_type %A.53d [symbolic] +// CHECK:STDOUT: %A.13025a.2: type = class_type @A, @A(%V) [symbolic] +// CHECK:STDOUT: %I.type.325e65.2: type = facet_type <@I, @I(%V)> [symbolic] +// CHECK:STDOUT: %require_complete.cfebb2.1: = require_complete_type %I.type.325e65.2 [symbolic] +// CHECK:STDOUT: %F.type.2aef59.2: type = fn_type @F.1, @I(%V) [symbolic] +// CHECK:STDOUT: %F.bb2dd4.2: %F.type.2aef59.2 = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003a5c.2: type = assoc_entity_type %I.type.325e65.2, %F.type.2aef59.2 [symbolic] +// CHECK:STDOUT: %assoc0.819972.2: %F.assoc_type.003a5c.2 = assoc_entity element0, @I.%F.decl [symbolic] +// CHECK:STDOUT: %impl_witness.ab3b51.1: = impl_witness (@impl.%F.decl), @impl(%V) [symbolic] +// CHECK:STDOUT: %F.type.0fea45.1: type = fn_type @F.2, @impl(%V) [symbolic] +// CHECK:STDOUT: %F.d6ae34.1: %F.type.0fea45.1 = struct_value () [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.325e65.1 = facet_value %A.13025a.2, %impl_witness.ab3b51.1 [symbolic] +// CHECK:STDOUT: %require_complete.4aeca8.2: = require_complete_type %V [symbolic] +// CHECK:STDOUT: %A.elem.1ceb36.2: type = unbound_element_type %A.13025a.2, %V [symbolic] +// CHECK:STDOUT: %struct_type.n.848971.2: type = struct_type {.n: %V} [symbolic] +// CHECK:STDOUT: %complete_type.84bb3d.2: = complete_type_witness %struct_type.n.848971.2 [symbolic] +// CHECK:STDOUT: %require_complete.5b8aee.1: = require_complete_type %A.13025a.2 [symbolic] // CHECK:STDOUT: %W: type = bind_symbolic_name W, 0 [symbolic] // CHECK:STDOUT: %W.patt: type = symbolic_binding_pattern W, 0 [symbolic] -// CHECK:STDOUT: %A.6bc: type = class_type @A, @A(%W) [symbolic] +// CHECK:STDOUT: %A.13025a.3: type = class_type @A, @A(%W) [symbolic] // CHECK:STDOUT: %TestGeneric.type: type = fn_type @TestGeneric [template] // CHECK:STDOUT: %TestGeneric: %TestGeneric.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.7dc: = require_complete_type %W [symbolic] -// CHECK:STDOUT: %A.elem.6e4: type = unbound_element_type %A.6bc, %W [symbolic] -// CHECK:STDOUT: %struct_type.n.784: type = struct_type {.n: %W} [symbolic] -// CHECK:STDOUT: %complete_type.793: = complete_type_witness %struct_type.n.784 [symbolic] -// CHECK:STDOUT: %require_complete.697: = require_complete_type %A.6bc [symbolic] -// CHECK:STDOUT: %I.type.c20: type = facet_type <@I, @I(%W)> [symbolic] -// CHECK:STDOUT: %require_complete.9c6: = require_complete_type %I.type.c20 [symbolic] -// CHECK:STDOUT: %F.type.6be: type = fn_type @F.1, @I(%W) [symbolic] -// CHECK:STDOUT: %F.c9b: %F.type.6be = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.79f: type = assoc_entity_type %I.type.c20, %F.type.6be [symbolic] -// CHECK:STDOUT: %assoc0.2b5: %F.assoc_type.79f = assoc_entity element0, @I.%F.decl [symbolic] -// CHECK:STDOUT: %impl_witness.1c5: = impl_witness (@impl.%F.decl), @impl(%W) [symbolic] -// CHECK:STDOUT: %F.type.7b7: type = fn_type @F.2, @impl(%W) [symbolic] -// CHECK:STDOUT: %F.038: %F.type.7b7 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.4aeca8.3: = require_complete_type %W [symbolic] +// CHECK:STDOUT: %A.elem.1ceb36.3: type = unbound_element_type %A.13025a.3, %W [symbolic] +// CHECK:STDOUT: %struct_type.n.848971.3: type = struct_type {.n: %W} [symbolic] +// CHECK:STDOUT: %complete_type.84bb3d.3: = complete_type_witness %struct_type.n.848971.3 [symbolic] +// CHECK:STDOUT: %require_complete.5b8aee.2: = require_complete_type %A.13025a.3 [symbolic] +// CHECK:STDOUT: %I.type.325e65.3: type = facet_type <@I, @I(%W)> [symbolic] +// CHECK:STDOUT: %require_complete.cfebb2.2: = require_complete_type %I.type.325e65.3 [symbolic] +// CHECK:STDOUT: %F.type.2aef59.3: type = fn_type @F.1, @I(%W) [symbolic] +// CHECK:STDOUT: %F.bb2dd4.3: %F.type.2aef59.3 = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003a5c.3: type = assoc_entity_type %I.type.325e65.3, %F.type.2aef59.3 [symbolic] +// CHECK:STDOUT: %assoc0.819972.3: %F.assoc_type.003a5c.3 = assoc_entity element0, @I.%F.decl [symbolic] +// CHECK:STDOUT: %impl_witness.ab3b51.2: = impl_witness (@impl.%F.decl), @impl(%W) [symbolic] +// CHECK:STDOUT: %F.type.0fea45.2: type = fn_type @F.2, @impl(%W) [symbolic] +// CHECK:STDOUT: %F.d6ae34.2: %F.type.0fea45.2 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] -// CHECK:STDOUT: %A.e6e: type = class_type @A, @A(%empty_struct_type) [template] +// CHECK:STDOUT: %A.235: type = class_type @A, @A(%empty_struct_type) [template] // CHECK:STDOUT: %TestSpecific.type: type = fn_type @TestSpecific [template] // CHECK:STDOUT: %TestSpecific: %TestSpecific.type = struct_value () [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %A.elem.949: type = unbound_element_type %A.e6e, %empty_struct_type [template] +// CHECK:STDOUT: %A.elem.2af: type = unbound_element_type %A.235, %empty_struct_type [template] // CHECK:STDOUT: %struct_type.n.91c: type = struct_type {.n: %empty_struct_type} [template] // CHECK:STDOUT: %complete_type.0a6: = complete_type_witness %struct_type.n.91c [template] -// CHECK:STDOUT: %I.type.263: type = facet_type <@I, @I(%empty_struct_type)> [template] -// CHECK:STDOUT: %F.type.9ae: type = fn_type @F.1, @I(%empty_struct_type) [template] -// CHECK:STDOUT: %F.ce1: %F.type.9ae = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.693: type = assoc_entity_type %I.type.263, %F.type.9ae [template] -// CHECK:STDOUT: %assoc0.aef: %F.assoc_type.693 = assoc_entity element0, @I.%F.decl [template] -// CHECK:STDOUT: %complete_type.db7: = complete_type_witness %I.type.263 [template] -// CHECK:STDOUT: %impl_witness.6cd: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.type.0df: type = fn_type @F.2, @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.01e: %F.type.0df = struct_value () [template] +// CHECK:STDOUT: %I.type.885: type = facet_type <@I, @I(%empty_struct_type)> [template] +// CHECK:STDOUT: %F.type.684: type = fn_type @F.1, @I(%empty_struct_type) [template] +// CHECK:STDOUT: %F.a8d: %F.type.684 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.6a8: type = assoc_entity_type %I.type.885, %F.type.684 [template] +// CHECK:STDOUT: %assoc0.d32: %F.assoc_type.6a8 = assoc_entity element0, @I.%F.decl [template] +// CHECK:STDOUT: %complete_type.788: = complete_type_witness %I.type.885 [template] +// CHECK:STDOUT: %impl_witness.f35: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.type.875: type = fn_type @F.2, @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.158: %F.type.875 = struct_value () [template] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -139,51 +139,51 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [template = constants.%A.generic] // CHECK:STDOUT: %V.ref.loc10_26: type = name_ref V, %V.loc10_14.1 [symbolic = %V.loc10_14.2 (constants.%V)] -// CHECK:STDOUT: %A.loc10_27.1: type = class_type @A, @A(constants.%V) [symbolic = %A.loc10_27.2 (constants.%A.53d)] +// CHECK:STDOUT: %A.loc10_27.1: type = class_type @A, @A(constants.%V) [symbolic = %A.loc10_27.2 (constants.%A.13025a.2)] // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %V.ref.loc10_34: type = name_ref V, %V.loc10_14.1 [symbolic = %V.loc10_14.2 (constants.%V)] -// CHECK:STDOUT: %I.type.loc10_35.1: type = facet_type <@I, @I(constants.%V)> [symbolic = %I.type.loc10_35.2 (constants.%I.type.1af)] +// CHECK:STDOUT: %I.type.loc10_35.1: type = facet_type <@I, @I(constants.%V)> [symbolic = %I.type.loc10_35.2 (constants.%I.type.325e65.2)] // CHECK:STDOUT: %V.param: type = value_param runtime_param // CHECK:STDOUT: %V.loc10_14.1: type = bind_symbolic_name V, 0, %V.param [symbolic = %V.loc10_14.2 (constants.%V)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%V) [symbolic = @impl.%impl_witness (constants.%impl_witness.ed3)] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(constants.%V) [symbolic = @impl.%impl_witness (constants.%impl_witness.ab3b51.1)] // CHECK:STDOUT: %TestGeneric.decl: %TestGeneric.type = fn_decl @TestGeneric [template = constants.%TestGeneric] { // CHECK:STDOUT: %W.patt.loc16_16.1: type = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc16_16.2 (constants.%W.patt)] // CHECK:STDOUT: %W.param_patt: type = value_param_pattern %W.patt.loc16_16.1, runtime_param [symbolic = %W.patt.loc16_16.2 (constants.%W.patt)] -// CHECK:STDOUT: %a.patt: @TestGeneric.%A.loc16_32.2 (%A.6bc) = binding_pattern a -// CHECK:STDOUT: %a.param_patt: @TestGeneric.%A.loc16_32.2 (%A.6bc) = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: @TestGeneric.%A.loc16_32.2 (%A.13025a.3) = binding_pattern a +// CHECK:STDOUT: %a.param_patt: @TestGeneric.%A.loc16_32.2 (%A.13025a.3) = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @TestGeneric.%W.loc16_16.2 (%W) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @TestGeneric.%W.loc16_16.2 (%W) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %W.ref.loc16_38: type = name_ref W, %W.loc16_16.1 [symbolic = %W.loc16_16.2 (constants.%W)] // CHECK:STDOUT: %W.param: type = value_param runtime_param // CHECK:STDOUT: %W.loc16_16.1: type = bind_symbolic_name W, 0, %W.param [symbolic = %W.loc16_16.2 (constants.%W)] -// CHECK:STDOUT: %a.param: @TestGeneric.%A.loc16_32.2 (%A.6bc) = value_param runtime_param0 -// CHECK:STDOUT: %.loc16: type = splice_block %A.loc16_32.1 [symbolic = %A.loc16_32.2 (constants.%A.6bc)] { +// CHECK:STDOUT: %a.param: @TestGeneric.%A.loc16_32.2 (%A.13025a.3) = value_param runtime_param0 +// CHECK:STDOUT: %.loc16: type = splice_block %A.loc16_32.1 [symbolic = %A.loc16_32.2 (constants.%A.13025a.3)] { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [template = constants.%A.generic] // CHECK:STDOUT: %W.ref.loc16_31: type = name_ref W, %W.loc16_16.1 [symbolic = %W.loc16_16.2 (constants.%W)] -// CHECK:STDOUT: %A.loc16_32.1: type = class_type @A, @A(constants.%W) [symbolic = %A.loc16_32.2 (constants.%A.6bc)] +// CHECK:STDOUT: %A.loc16_32.1: type = class_type @A, @A(constants.%W) [symbolic = %A.loc16_32.2 (constants.%A.13025a.3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @TestGeneric.%A.loc16_32.2 (%A.6bc) = bind_name a, %a.param +// CHECK:STDOUT: %a: @TestGeneric.%A.loc16_32.2 (%A.13025a.3) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref @TestGeneric.%W.loc16_16.2 (%W) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @TestGeneric.%W.loc16_16.2 (%W) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestSpecific.decl: %TestSpecific.type = fn_decl @TestSpecific [template = constants.%TestSpecific] { -// CHECK:STDOUT: %a.patt: %A.e6e = binding_pattern a -// CHECK:STDOUT: %a.param_patt: %A.e6e = value_param_pattern %a.patt, runtime_param0 +// CHECK:STDOUT: %a.patt: %A.235 = binding_pattern a +// CHECK:STDOUT: %a.param_patt: %A.235 = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %empty_struct_type = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %empty_struct_type = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc20_31.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc20_31.2: type = converted %.loc20_31.1, constants.%empty_struct_type [template = constants.%empty_struct_type] -// CHECK:STDOUT: %a.param: %A.e6e = value_param runtime_param0 -// CHECK:STDOUT: %.loc20_24.1: type = splice_block %A [template = constants.%A.e6e] { +// CHECK:STDOUT: %a.param: %A.235 = value_param runtime_param0 +// CHECK:STDOUT: %.loc20_24.1: type = splice_block %A [template = constants.%A.235] { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [template = constants.%A.generic] // CHECK:STDOUT: %.loc20_23: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc20_24.2: type = converted %.loc20_23, constants.%empty_struct_type [template = constants.%empty_struct_type] -// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%empty_struct_type) [template = constants.%A.e6e] +// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%empty_struct_type) [template = constants.%A.235] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %A.e6e = bind_name a, %a.param +// CHECK:STDOUT: %a: %A.235 = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %empty_struct_type = out_param runtime_param1 // CHECK:STDOUT: %return: ref %empty_struct_type = return_slot %return.param // CHECK:STDOUT: } @@ -194,16 +194,16 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %U.patt.loc6_13.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc6_13.2 (constants.%U.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc6_13.2)> [symbolic = %I.type (constants.%I.type.995)] -// CHECK:STDOUT: %Self.2: %I.type.995 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%U.loc6_13.2) [symbolic = %F.type (constants.%F.type.1c6)] -// CHECK:STDOUT: %F: @I.%F.type (%F.type.1c6) = struct_value () [symbolic = %F (constants.%F.7e2)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.995), @I.%F.type (%F.type.1c6) [symbolic = %F.assoc_type (constants.%F.assoc_type.0d1)] -// CHECK:STDOUT: %assoc0.loc7_26.2: @I.%F.assoc_type (%F.assoc_type.0d1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc7_26.2 (constants.%assoc0.1b8)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc6_13.2)> [symbolic = %I.type (constants.%I.type.325e65.1)] +// CHECK:STDOUT: %Self.2: %I.type.325e65.1 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%U.loc6_13.2) [symbolic = %F.type (constants.%F.type.2aef59.1)] +// CHECK:STDOUT: %F: @I.%F.type (%F.type.2aef59.1) = struct_value () [symbolic = %F (constants.%F.bb2dd4.1)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325e65.1), @I.%F.type (%F.type.2aef59.1) [symbolic = %F.assoc_type (constants.%F.assoc_type.003a5c.1)] +// CHECK:STDOUT: %assoc0.loc7_26.2: @I.%F.assoc_type (%F.assoc_type.003a5c.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc7_26.2 (constants.%assoc0.819972.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.995) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.1c6) = fn_decl @F.1 [symbolic = @I.%F (constants.%F.7e2)] { +// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.325e65.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.2aef59.1) = fn_decl @F.1 [symbolic = @I.%F (constants.%F.bb2dd4.1)] { // CHECK:STDOUT: %self.patt: @F.1.%Self.as_type.loc7_14.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc7_14.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.1.%U (%U) = return_slot_pattern @@ -212,8 +212,8 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %U.ref: type = name_ref U, @I.%U.loc6_13.1 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc7_14.1 (%Self.as_type) = value_param runtime_param0 // CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.3 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc7_14.2: @F.1.%I.type (%I.type.995) = specific_constant @I.%Self.1, @I(constants.%U) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @F.1.%I.type (%I.type.995) = name_ref Self, %.loc7_14.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc7_14.2: @F.1.%I.type (%I.type.325e65.1) = specific_constant @I.%Self.1, @I(constants.%U) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @F.1.%I.type (%I.type.325e65.1) = name_ref Self, %.loc7_14.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc7_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc7_14.3: type = converted %Self.ref, %Self.as_type.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -221,7 +221,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %return.param: ref @F.1.%U (%U) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.1.%U (%U) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc7_26.1: @I.%F.assoc_type (%F.assoc_type.0d1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc7_26.2 (constants.%assoc0.1b8)] +// CHECK:STDOUT: %assoc0.loc7_26.1: @I.%F.assoc_type (%F.assoc_type.003a5c.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc7_26.2 (constants.%assoc0.819972.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -233,26 +233,26 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: generic impl @impl(%V.loc10_14.1: type) { // CHECK:STDOUT: %V.loc10_14.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc10_14.2 (constants.%V)] // CHECK:STDOUT: %V.patt.loc10_14.2: type = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc10_14.2 (constants.%V.patt)] -// CHECK:STDOUT: %A.loc10_27.2: type = class_type @A, @A(%V.loc10_14.2) [symbolic = %A.loc10_27.2 (constants.%A.53d)] -// CHECK:STDOUT: %I.type.loc10_35.2: type = facet_type <@I, @I(%V.loc10_14.2)> [symbolic = %I.type.loc10_35.2 (constants.%I.type.1af)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%I.type.loc10_35.2 (%I.type.1af) [symbolic = %require_complete (constants.%require_complete.f84)] -// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%V.loc10_14.2) [symbolic = %impl_witness (constants.%impl_witness.ed3)] +// CHECK:STDOUT: %A.loc10_27.2: type = class_type @A, @A(%V.loc10_14.2) [symbolic = %A.loc10_27.2 (constants.%A.13025a.2)] +// CHECK:STDOUT: %I.type.loc10_35.2: type = facet_type <@I, @I(%V.loc10_14.2)> [symbolic = %I.type.loc10_35.2 (constants.%I.type.325e65.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%I.type.loc10_35.2 (%I.type.325e65.2) [symbolic = %require_complete (constants.%require_complete.cfebb2.1)] +// CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%V.loc10_14.2) [symbolic = %impl_witness (constants.%impl_witness.ab3b51.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%V.loc10_14.2) [symbolic = %F.type (constants.%F.type.bf7)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.bf7) = struct_value () [symbolic = %F (constants.%F.684)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%V.loc10_14.2) [symbolic = %F.type (constants.%F.type.0fea45.1)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.0fea45.1) = struct_value () [symbolic = %F (constants.%F.d6ae34.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %A.loc10_27.1 as %I.type.loc10_35.1 { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.bf7) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.684)] { -// CHECK:STDOUT: %self.patt: @F.2.%A (%A.53d) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @F.2.%A (%A.53d) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.0fea45.1) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.d6ae34.1)] { +// CHECK:STDOUT: %self.patt: @F.2.%A (%A.13025a.2) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @F.2.%A (%A.13025a.2) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.2.%V (%V) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.2.%V (%V) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %V.ref: type = name_ref V, @impl.%V.loc10_14.1 [symbolic = %V (constants.%V)] -// CHECK:STDOUT: %self.param: @F.2.%A (%A.53d) = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.%A.loc10_27.1 [symbolic = %A (constants.%A.53d)] -// CHECK:STDOUT: %self: @F.2.%A (%A.53d) = bind_name self, %self.param +// CHECK:STDOUT: %self.param: @F.2.%A (%A.13025a.2) = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.%A.loc10_27.1 [symbolic = %A (constants.%A.13025a.2)] +// CHECK:STDOUT: %self: @F.2.%A (%A.13025a.2) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @F.2.%V (%V) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @F.2.%V (%V) = return_slot %return.param // CHECK:STDOUT: } @@ -268,27 +268,27 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %T.patt.loc2_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc2_9.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @A.%T.loc2_9.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc2_9.2) [symbolic = %A (constants.%A.619)] -// CHECK:STDOUT: %A.elem: type = unbound_element_type @A.%A (%A.619), @A.%T.loc2_9.2 (%T) [symbolic = %A.elem (constants.%A.elem.78a)] -// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @A.%T.loc2_9.2 (%T)} [symbolic = %struct_type.n (constants.%struct_type.n.0d6)] -// CHECK:STDOUT: %complete_type.loc4_1.2: = complete_type_witness @A.%struct_type.n (%struct_type.n.0d6) [symbolic = %complete_type.loc4_1.2 (constants.%complete_type.74d)] +// CHECK:STDOUT: %require_complete: = require_complete_type @A.%T.loc2_9.2 (%T) [symbolic = %require_complete (constants.%require_complete.4aeca8.1)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc2_9.2) [symbolic = %A (constants.%A.13025a.1)] +// CHECK:STDOUT: %A.elem: type = unbound_element_type @A.%A (%A.13025a.1), @A.%T.loc2_9.2 (%T) [symbolic = %A.elem (constants.%A.elem.1ceb36.1)] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @A.%T.loc2_9.2 (%T)} [symbolic = %struct_type.n (constants.%struct_type.n.848971.1)] +// CHECK:STDOUT: %complete_type.loc4_1.2: = complete_type_witness @A.%struct_type.n (%struct_type.n.848971.1) [symbolic = %complete_type.loc4_1.2 (constants.%complete_type.84bb3d.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc3: @A.%A.elem (%A.elem.78a) = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type.loc4_1.1: = complete_type_witness %struct_type.n.0d6 [symbolic = %complete_type.loc4_1.2 (constants.%complete_type.74d)] +// CHECK:STDOUT: %.loc3: @A.%A.elem (%A.elem.1ceb36.1) = field_decl n, element0 [template] +// CHECK:STDOUT: %complete_type.loc4_1.1: = complete_type_witness %struct_type.n.848971.1 [symbolic = %complete_type.loc4_1.2 (constants.%complete_type.84bb3d.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%A.619 +// CHECK:STDOUT: .Self = constants.%A.13025a.1 // CHECK:STDOUT: .n = %.loc3 // CHECK:STDOUT: complete_type_witness = %complete_type.loc4_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@I.%U.loc6_13.1: type, @I.%Self.1: @I.%I.type (%I.type.995)) { +// CHECK:STDOUT: generic fn @F.1(@I.%U.loc6_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325e65.1)) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U)> [symbolic = %I.type (constants.%I.type.995)] -// CHECK:STDOUT: %Self: %I.type.995 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U)> [symbolic = %I.type (constants.%I.type.325e65.1)] +// CHECK:STDOUT: %Self: %I.type.325e65.1 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: @F.1.%Self.as_type.loc7_14.1 (%Self.as_type)]() -> @F.1.%U (%U); @@ -296,17 +296,17 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.2(@impl.%V.loc10_14.1: type) { // CHECK:STDOUT: %V: type = bind_symbolic_name V, 0 [symbolic = %V (constants.%V)] -// CHECK:STDOUT: %A: type = class_type @A, @A(%V) [symbolic = %A (constants.%A.53d)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%V) [symbolic = %A (constants.%A.13025a.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_22: = require_complete_type @F.2.%V (%V) [symbolic = %require_complete.loc11_22 (constants.%require_complete.5da)] -// CHECK:STDOUT: %require_complete.loc11_12: = require_complete_type @F.2.%A (%A.53d) [symbolic = %require_complete.loc11_12 (constants.%require_complete.51f)] -// CHECK:STDOUT: %A.elem: type = unbound_element_type @F.2.%A (%A.53d), @F.2.%V (%V) [symbolic = %A.elem (constants.%A.elem.49b)] +// CHECK:STDOUT: %require_complete.loc11_22: = require_complete_type @F.2.%V (%V) [symbolic = %require_complete.loc11_22 (constants.%require_complete.4aeca8.2)] +// CHECK:STDOUT: %require_complete.loc11_12: = require_complete_type @F.2.%A (%A.13025a.2) [symbolic = %require_complete.loc11_12 (constants.%require_complete.5b8aee.1)] +// CHECK:STDOUT: %A.elem: type = unbound_element_type @F.2.%A (%A.13025a.2), @F.2.%V (%V) [symbolic = %A.elem (constants.%A.elem.1ceb36.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @F.2.%A (%A.53d)]() -> @F.2.%V (%V) { +// CHECK:STDOUT: fn[%self.param_patt: @F.2.%A (%A.13025a.2)]() -> @F.2.%V (%V) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @F.2.%A (%A.53d) = name_ref self, %self -// CHECK:STDOUT: %n.ref: @F.2.%A.elem (%A.elem.49b) = name_ref n, @A.%.loc3 [template = @A.%.loc3] +// CHECK:STDOUT: %self.ref: @F.2.%A (%A.13025a.2) = name_ref self, %self +// CHECK:STDOUT: %n.ref: @F.2.%A.elem (%A.elem.1ceb36.2) = name_ref n, @A.%.loc3 [template = @A.%.loc3] // CHECK:STDOUT: %.loc12_16.1: ref @F.2.%V (%V) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc12_16.2: @F.2.%V (%V) = bind_value %.loc12_16.1 // CHECK:STDOUT: return %.loc12_16.2 @@ -316,28 +316,28 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: generic fn @TestGeneric(%W.loc16_16.1: type) { // CHECK:STDOUT: %W.loc16_16.2: type = bind_symbolic_name W, 0 [symbolic = %W.loc16_16.2 (constants.%W)] // CHECK:STDOUT: %W.patt.loc16_16.2: type = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc16_16.2 (constants.%W.patt)] -// CHECK:STDOUT: %A.loc16_32.2: type = class_type @A, @A(%W.loc16_16.2) [symbolic = %A.loc16_32.2 (constants.%A.6bc)] +// CHECK:STDOUT: %A.loc16_32.2: type = class_type @A, @A(%W.loc16_16.2) [symbolic = %A.loc16_32.2 (constants.%A.13025a.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16_35: = require_complete_type @TestGeneric.%W.loc16_16.2 (%W) [symbolic = %require_complete.loc16_35 (constants.%require_complete.7dc)] -// CHECK:STDOUT: %require_complete.loc16_27: = require_complete_type @TestGeneric.%A.loc16_32.2 (%A.6bc) [symbolic = %require_complete.loc16_27 (constants.%require_complete.697)] -// CHECK:STDOUT: %I.type.loc17_16.2: type = facet_type <@I, @I(%W.loc16_16.2)> [symbolic = %I.type.loc17_16.2 (constants.%I.type.c20)] -// CHECK:STDOUT: %require_complete.loc17: = require_complete_type @TestGeneric.%I.type.loc17_16.2 (%I.type.c20) [symbolic = %require_complete.loc17 (constants.%require_complete.9c6)] -// CHECK:STDOUT: %F.type.loc17_17: type = fn_type @F.1, @I(%W.loc16_16.2) [symbolic = %F.type.loc17_17 (constants.%F.type.6be)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @TestGeneric.%I.type.loc17_16.2 (%I.type.c20), @TestGeneric.%F.type.loc17_17 (%F.type.6be) [symbolic = %F.assoc_type (constants.%F.assoc_type.79f)] -// CHECK:STDOUT: %assoc0: @TestGeneric.%F.assoc_type (%F.assoc_type.79f) = assoc_entity element0, @I.%F.decl [symbolic = %assoc0 (constants.%assoc0.2b5)] -// CHECK:STDOUT: %F.type.loc17_11: type = fn_type @F.2, @impl(%W.loc16_16.2) [symbolic = %F.type.loc17_11 (constants.%F.type.7b7)] -// CHECK:STDOUT: %F: @TestGeneric.%F.type.loc17_11 (%F.type.7b7) = struct_value () [symbolic = %F (constants.%F.038)] +// CHECK:STDOUT: %require_complete.loc16_35: = require_complete_type @TestGeneric.%W.loc16_16.2 (%W) [symbolic = %require_complete.loc16_35 (constants.%require_complete.4aeca8.3)] +// CHECK:STDOUT: %require_complete.loc16_27: = require_complete_type @TestGeneric.%A.loc16_32.2 (%A.13025a.3) [symbolic = %require_complete.loc16_27 (constants.%require_complete.5b8aee.2)] +// CHECK:STDOUT: %I.type.loc17_16.2: type = facet_type <@I, @I(%W.loc16_16.2)> [symbolic = %I.type.loc17_16.2 (constants.%I.type.325e65.3)] +// CHECK:STDOUT: %require_complete.loc17: = require_complete_type @TestGeneric.%I.type.loc17_16.2 (%I.type.325e65.3) [symbolic = %require_complete.loc17 (constants.%require_complete.cfebb2.2)] +// CHECK:STDOUT: %F.type.loc17_17: type = fn_type @F.1, @I(%W.loc16_16.2) [symbolic = %F.type.loc17_17 (constants.%F.type.2aef59.3)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @TestGeneric.%I.type.loc17_16.2 (%I.type.325e65.3), @TestGeneric.%F.type.loc17_17 (%F.type.2aef59.3) [symbolic = %F.assoc_type (constants.%F.assoc_type.003a5c.3)] +// CHECK:STDOUT: %assoc0: @TestGeneric.%F.assoc_type (%F.assoc_type.003a5c.3) = assoc_entity element0, @I.%F.decl [symbolic = %assoc0 (constants.%assoc0.819972.3)] +// CHECK:STDOUT: %F.type.loc17_11: type = fn_type @F.2, @impl(%W.loc16_16.2) [symbolic = %F.type.loc17_11 (constants.%F.type.0fea45.2)] +// CHECK:STDOUT: %F: @TestGeneric.%F.type.loc17_11 (%F.type.0fea45.2) = struct_value () [symbolic = %F (constants.%F.d6ae34.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%W.param_patt: type](%a.param_patt: @TestGeneric.%A.loc16_32.2 (%A.6bc)) -> @TestGeneric.%W.loc16_16.2 (%W) { +// CHECK:STDOUT: fn[%W.param_patt: type](%a.param_patt: @TestGeneric.%A.loc16_32.2 (%A.13025a.3)) -> @TestGeneric.%W.loc16_16.2 (%W) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @TestGeneric.%A.loc16_32.2 (%A.6bc) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @TestGeneric.%A.loc16_32.2 (%A.13025a.3) = name_ref a, %a // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %W.ref.loc17: type = name_ref W, %W.loc16_16.1 [symbolic = %W.loc16_16.2 (constants.%W)] -// CHECK:STDOUT: %I.type.loc17_16.1: type = facet_type <@I, @I(constants.%W)> [symbolic = %I.type.loc17_16.2 (constants.%I.type.c20)] -// CHECK:STDOUT: %.loc17_17: @TestGeneric.%F.assoc_type (%F.assoc_type.79f) = specific_constant @I.%assoc0.loc7_26.1, @I(constants.%W) [symbolic = %assoc0 (constants.%assoc0.2b5)] -// CHECK:STDOUT: %F.ref: @TestGeneric.%F.assoc_type (%F.assoc_type.79f) = name_ref F, %.loc17_17 [symbolic = %assoc0 (constants.%assoc0.2b5)] -// CHECK:STDOUT: %impl.elem0: @TestGeneric.%F.type.loc17_17 (%F.type.6be) = impl_witness_access constants.%impl_witness.1c5, element0 [symbolic = %F (constants.%F.038)] +// CHECK:STDOUT: %I.type.loc17_16.1: type = facet_type <@I, @I(constants.%W)> [symbolic = %I.type.loc17_16.2 (constants.%I.type.325e65.3)] +// CHECK:STDOUT: %.loc17_17: @TestGeneric.%F.assoc_type (%F.assoc_type.003a5c.3) = specific_constant @I.%assoc0.loc7_26.1, @I(constants.%W) [symbolic = %assoc0 (constants.%assoc0.819972.3)] +// CHECK:STDOUT: %F.ref: @TestGeneric.%F.assoc_type (%F.assoc_type.003a5c.3) = name_ref F, %.loc17_17 [symbolic = %assoc0 (constants.%assoc0.819972.3)] +// CHECK:STDOUT: %impl.elem0: @TestGeneric.%F.type.loc17_17 (%F.type.2aef59.3) = impl_witness_access constants.%impl_witness.ab3b51.2, element0 [symbolic = %F (constants.%F.d6ae34.2)] // CHECK:STDOUT: %F.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %F.specific_fn: = specific_function %F.bound, @F.2(constants.%W) // CHECK:STDOUT: %F.call: init @TestGeneric.%W.loc16_16.2 (%W) = call %F.specific_fn(%a.ref) @@ -347,16 +347,16 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestSpecific(%a.param_patt: %A.e6e) -> %empty_struct_type { +// CHECK:STDOUT: fn @TestSpecific(%a.param_patt: %A.235) -> %empty_struct_type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %A.e6e = name_ref a, %a +// CHECK:STDOUT: %a.ref: %A.235 = name_ref a, %a // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %.loc21_16: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc21_17: type = converted %.loc21_16, constants.%empty_struct_type [template = constants.%empty_struct_type] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type)> [template = constants.%I.type.263] -// CHECK:STDOUT: %.loc21_18: %F.assoc_type.693 = specific_constant @I.%assoc0.loc7_26.1, @I(constants.%empty_struct_type) [template = constants.%assoc0.aef] -// CHECK:STDOUT: %F.ref: %F.assoc_type.693 = name_ref F, %.loc21_18 [template = constants.%assoc0.aef] -// CHECK:STDOUT: %impl.elem0: %F.type.9ae = impl_witness_access constants.%impl_witness.6cd, element0 [template = constants.%F.01e] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type)> [template = constants.%I.type.885] +// CHECK:STDOUT: %.loc21_18: %F.assoc_type.6a8 = specific_constant @I.%assoc0.loc7_26.1, @I(constants.%empty_struct_type) [template = constants.%assoc0.d32] +// CHECK:STDOUT: %F.ref: %F.assoc_type.6a8 = name_ref F, %.loc21_18 [template = constants.%assoc0.d32] +// CHECK:STDOUT: %impl.elem0: %F.type.684 = impl_witness_access constants.%impl_witness.f35, element0 [template = constants.%F.158] // CHECK:STDOUT: %F.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %F.specific_fn: = specific_function %F.bound, @F.2(constants.%empty_struct_type) // CHECK:STDOUT: %F.call: init %empty_struct_type = call %F.specific_fn(%a.ref) @@ -381,7 +381,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%U, constants.%Self) { // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %I.type => constants.%I.type.995 +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.1 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type // CHECK:STDOUT: } @@ -395,11 +395,11 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %T.patt.loc2_9.2 => constants.%V // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.5da -// CHECK:STDOUT: %A => constants.%A.53d -// CHECK:STDOUT: %A.elem => constants.%A.elem.49b -// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.626 -// CHECK:STDOUT: %complete_type.loc4_1.2 => constants.%complete_type.a0c +// CHECK:STDOUT: %require_complete => constants.%require_complete.4aeca8.2 +// CHECK:STDOUT: %A => constants.%A.13025a.2 +// CHECK:STDOUT: %A.elem => constants.%A.elem.1ceb36.2 +// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.848971.2 +// CHECK:STDOUT: %complete_type.loc4_1.2 => constants.%complete_type.84bb3d.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%V) { @@ -407,25 +407,25 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %U.patt.loc6_13.2 => constants.%V // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.1af +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.a96 -// CHECK:STDOUT: %F => constants.%F.0a7 -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.07c -// CHECK:STDOUT: %assoc0.loc7_26.2 => constants.%assoc0.fa4 +// CHECK:STDOUT: %F.type => constants.%F.type.2aef59.2 +// CHECK:STDOUT: %F => constants.%F.bb2dd4.2 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.003a5c.2 +// CHECK:STDOUT: %assoc0.loc7_26.2 => constants.%assoc0.819972.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%V) { // CHECK:STDOUT: %V.loc10_14.2 => constants.%V // CHECK:STDOUT: %V.patt.loc10_14.2 => constants.%V -// CHECK:STDOUT: %A.loc10_27.2 => constants.%A.53d -// CHECK:STDOUT: %I.type.loc10_35.2 => constants.%I.type.1af -// CHECK:STDOUT: %require_complete => constants.%require_complete.f84 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.ed3 +// CHECK:STDOUT: %A.loc10_27.2 => constants.%A.13025a.2 +// CHECK:STDOUT: %I.type.loc10_35.2 => constants.%I.type.325e65.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.cfebb2.1 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.ab3b51.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.bf7 -// CHECK:STDOUT: %F => constants.%F.684 +// CHECK:STDOUT: %F.type => constants.%F.type.0fea45.1 +// CHECK:STDOUT: %F => constants.%F.d6ae34.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(@impl.%V.loc10_14.2) {} @@ -436,16 +436,16 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%V) { // CHECK:STDOUT: %V => constants.%V -// CHECK:STDOUT: %A => constants.%A.53d +// CHECK:STDOUT: %A => constants.%A.13025a.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(@F.2.%V) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%V, constants.%I.facet) { // CHECK:STDOUT: %U => constants.%V -// CHECK:STDOUT: %I.type => constants.%I.type.1af +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%A.53d +// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%A.13025a.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%W) { @@ -453,17 +453,17 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %T.patt.loc2_9.2 => constants.%W // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.7dc -// CHECK:STDOUT: %A => constants.%A.6bc -// CHECK:STDOUT: %A.elem => constants.%A.elem.6e4 -// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.784 -// CHECK:STDOUT: %complete_type.loc4_1.2 => constants.%complete_type.793 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4aeca8.3 +// CHECK:STDOUT: %A => constants.%A.13025a.3 +// CHECK:STDOUT: %A.elem => constants.%A.elem.1ceb36.3 +// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.848971.3 +// CHECK:STDOUT: %complete_type.loc4_1.2 => constants.%complete_type.84bb3d.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TestGeneric(constants.%W) { // CHECK:STDOUT: %W.loc16_16.2 => constants.%W // CHECK:STDOUT: %W.patt.loc16_16.2 => constants.%W -// CHECK:STDOUT: %A.loc16_32.2 => constants.%A.6bc +// CHECK:STDOUT: %A.loc16_32.2 => constants.%A.13025a.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(@TestGeneric.%W.loc16_16.2) {} @@ -473,35 +473,35 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %U.patt.loc6_13.2 => constants.%W // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.c20 +// CHECK:STDOUT: %I.type => constants.%I.type.325e65.3 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.6be -// CHECK:STDOUT: %F => constants.%F.c9b -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.79f -// CHECK:STDOUT: %assoc0.loc7_26.2 => constants.%assoc0.2b5 +// CHECK:STDOUT: %F.type => constants.%F.type.2aef59.3 +// CHECK:STDOUT: %F => constants.%F.bb2dd4.3 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.003a5c.3 +// CHECK:STDOUT: %assoc0.loc7_26.2 => constants.%assoc0.819972.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%W) { // CHECK:STDOUT: %V.loc10_14.2 => constants.%W // CHECK:STDOUT: %V.patt.loc10_14.2 => constants.%W -// CHECK:STDOUT: %A.loc10_27.2 => constants.%A.6bc -// CHECK:STDOUT: %I.type.loc10_35.2 => constants.%I.type.c20 -// CHECK:STDOUT: %require_complete => constants.%require_complete.9c6 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.1c5 +// CHECK:STDOUT: %A.loc10_27.2 => constants.%A.13025a.3 +// CHECK:STDOUT: %I.type.loc10_35.2 => constants.%I.type.325e65.3 +// CHECK:STDOUT: %require_complete => constants.%require_complete.cfebb2.2 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.ab3b51.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.7b7 -// CHECK:STDOUT: %F => constants.%F.038 +// CHECK:STDOUT: %F.type => constants.%F.type.0fea45.2 +// CHECK:STDOUT: %F => constants.%F.d6ae34.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%W) { // CHECK:STDOUT: %V => constants.%W -// CHECK:STDOUT: %A => constants.%A.6bc +// CHECK:STDOUT: %A => constants.%A.13025a.3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_22 => constants.%require_complete.7dc -// CHECK:STDOUT: %require_complete.loc11_12 => constants.%require_complete.697 -// CHECK:STDOUT: %A.elem => constants.%A.elem.6e4 +// CHECK:STDOUT: %require_complete.loc11_22 => constants.%require_complete.4aeca8.3 +// CHECK:STDOUT: %require_complete.loc11_12 => constants.%require_complete.5b8aee.2 +// CHECK:STDOUT: %A.elem => constants.%A.elem.1ceb36.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@TestGeneric.%W.loc16_16.2) {} @@ -514,8 +514,8 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %A => constants.%A.e6e -// CHECK:STDOUT: %A.elem => constants.%A.elem.949 +// CHECK:STDOUT: %A => constants.%A.235 +// CHECK:STDOUT: %A.elem => constants.%A.elem.2af // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.91c // CHECK:STDOUT: %complete_type.loc4_1.2 => constants.%complete_type.0a6 // CHECK:STDOUT: } @@ -525,34 +525,34 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %U.patt.loc6_13.2 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.263 +// CHECK:STDOUT: %I.type => constants.%I.type.885 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.9ae -// CHECK:STDOUT: %F => constants.%F.ce1 -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.693 -// CHECK:STDOUT: %assoc0.loc7_26.2 => constants.%assoc0.aef +// CHECK:STDOUT: %F.type => constants.%F.type.684 +// CHECK:STDOUT: %F => constants.%F.a8d +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.6a8 +// CHECK:STDOUT: %assoc0.loc7_26.2 => constants.%assoc0.d32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%empty_struct_type) { // CHECK:STDOUT: %V.loc10_14.2 => constants.%empty_struct_type // CHECK:STDOUT: %V.patt.loc10_14.2 => constants.%empty_struct_type -// CHECK:STDOUT: %A.loc10_27.2 => constants.%A.e6e -// CHECK:STDOUT: %I.type.loc10_35.2 => constants.%I.type.263 -// CHECK:STDOUT: %require_complete => constants.%complete_type.db7 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.6cd +// CHECK:STDOUT: %A.loc10_27.2 => constants.%A.235 +// CHECK:STDOUT: %I.type.loc10_35.2 => constants.%I.type.885 +// CHECK:STDOUT: %require_complete => constants.%complete_type.788 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.f35 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.0df -// CHECK:STDOUT: %F => constants.%F.01e +// CHECK:STDOUT: %F.type => constants.%F.type.875 +// CHECK:STDOUT: %F => constants.%F.158 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%empty_struct_type) { // CHECK:STDOUT: %V => constants.%empty_struct_type -// CHECK:STDOUT: %A => constants.%A.e6e +// CHECK:STDOUT: %A => constants.%A.235 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc11_22 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc11_12 => constants.%complete_type.0a6 -// CHECK:STDOUT: %A.elem => constants.%A.elem.949 +// CHECK:STDOUT: %A.elem => constants.%A.elem.2af // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon index 8362a53491f6..8a7000b1fb53 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon @@ -194,16 +194,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.16d: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.a20: %F.type.16d = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.16d [template] +// CHECK:STDOUT: %F.type.b7b: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.f50: %F.type.b7b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.b7b [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.2e0: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.89c: %F.type.2e0 = struct_value () [template] +// CHECK:STDOUT: %F.type.a02: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.dc7: %F.type.a02 = struct_value () [template] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -223,7 +223,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.16d = fn_decl @F.1 [template = constants.%F.a20] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b7b = fn_decl @F.1 [template = constants.%F.f50] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -233,7 +233,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref as %HasF.ref { -// CHECK:STDOUT: %F.decl: %F.type.2e0 = fn_decl @F.2 [template = constants.%F.89c] {} {} +// CHECK:STDOUT: %F.decl: %F.type.a02 = fn_decl @F.2 [template = constants.%F.dc7] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -266,46 +266,46 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [template] -// CHECK:STDOUT: %Self.4db: %HasG.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %G.type.6fe: type = fn_type @G.1 [template] -// CHECK:STDOUT: %G.0ea: %G.type.6fe = struct_value () [template] -// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %HasG.type, %G.type.6fe [template] +// CHECK:STDOUT: %Self.d42: %HasG.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %G.type.d27: type = fn_type @G.1 [template] +// CHECK:STDOUT: %G.688: %G.type.d27 = struct_value () [template] +// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %HasG.type, %G.type.d27 [template] // CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, @HasG.%G.decl [template] // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %impl_witness.58b: = impl_witness (@impl.1.%G.decl) [template] -// CHECK:STDOUT: %G.type.407: type = fn_type @G.2 [template] -// CHECK:STDOUT: %G.b4a: %G.type.407 = struct_value () [template] -// CHECK:STDOUT: %HasG.facet.fd4: %HasG.type = facet_value %C, %impl_witness.58b [template] +// CHECK:STDOUT: %impl_witness.722: = impl_witness (@impl.1.%G.decl) [template] +// CHECK:STDOUT: %G.type.05c: type = fn_type @G.2 [template] +// CHECK:STDOUT: %G.486: %G.type.05c = struct_value () [template] +// CHECK:STDOUT: %HasG.facet.085: %HasG.type = facet_value %C, %impl_witness.722 [template] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] -// CHECK:STDOUT: %Self.c46: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.d75: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.3ac: %F.type.d75 = struct_value () [template] -// CHECK:STDOUT: %impl_witness.ea3: = impl_witness (@impl.2.%F.decl) [template] -// CHECK:STDOUT: %F.type.e3c: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.66f: %F.type.e3c = struct_value () [template] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, %impl_witness.ea3 [template] -// CHECK:STDOUT: %impl_witness.88f: = impl_witness (@impl.3.%G.decl) [template] -// CHECK:STDOUT: %G.type.854: type = fn_type @G.3 [template] -// CHECK:STDOUT: %G.ae6: %G.type.854 = struct_value () [template] -// CHECK:STDOUT: %HasG.facet.bec: %HasG.type = facet_value %D, %impl_witness.88f [template] +// CHECK:STDOUT: %Self.cf3: %HasF.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.dbc: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.a2b: %F.type.dbc = struct_value () [template] +// CHECK:STDOUT: %impl_witness.a36: = impl_witness (@impl.2.%F.decl) [template] +// CHECK:STDOUT: %F.type.bab: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.46f: %F.type.bab = struct_value () [template] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, %impl_witness.a36 [template] +// CHECK:STDOUT: %impl_witness.9ed: = impl_witness (@impl.3.%G.decl) [template] +// CHECK:STDOUT: %G.type.c1d: type = fn_type @G.3 [template] +// CHECK:STDOUT: %G.294: %G.type.c1d = struct_value () [template] +// CHECK:STDOUT: %HasG.facet.6fc: %HasG.type = facet_value %D, %impl_witness.9ed [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %PackageA: = namespace file.%PackageA.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac -// CHECK:STDOUT: .HasF = %import_ref.2d0 +// CHECK:STDOUT: .C = %import_ref.3b0 +// CHECK:STDOUT: .HasF = %import_ref.91b // CHECK:STDOUT: import PackageA//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.0ac: type = import_ref PackageA//default, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref PackageA//default, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref PackageA//default, inst25 [no loc], unloaded -// CHECK:STDOUT: %import_ref.2d0: type = import_ref PackageA//default, HasF, loaded [template = constants.%HasF.type] -// CHECK:STDOUT: %import_ref.28d = import_ref PackageA//default, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.cc4 = import_ref PackageA//default, loc5_9, unloaded -// CHECK:STDOUT: %import_ref.ab3: %F.type.d75 = import_ref PackageA//default, F, loaded [template = constants.%F.3ac] +// CHECK:STDOUT: %import_ref.91b: type = import_ref PackageA//default, HasF, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.28c = import_ref PackageA//default, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.798 = import_ref PackageA//default, loc5_9, unloaded +// CHECK:STDOUT: %import_ref.e80: %F.type.dbc = import_ref PackageA//default, F, loaded [template = constants.%F.a2b] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -319,26 +319,26 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %D.decl: type = class_decl @D [template = constants.%D] {} {} // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %PackageA.ref: = name_ref PackageA, imports.%PackageA [template = imports.%PackageA] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %HasG.ref: type = name_ref HasG, file.%HasG.decl [template = constants.%HasG.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (@impl.1.%G.decl) [template = constants.%impl_witness.58b] +// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (@impl.1.%G.decl) [template = constants.%impl_witness.722] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] // CHECK:STDOUT: %PackageA.ref: = name_ref PackageA, imports.%PackageA [template = imports.%PackageA] -// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%import_ref.2d0 [template = constants.%HasF.type] +// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%import_ref.91b [template = constants.%HasF.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc18: = impl_witness (@impl.2.%F.decl) [template = constants.%impl_witness.ea3] +// CHECK:STDOUT: %impl_witness.loc18: = impl_witness (@impl.2.%F.decl) [template = constants.%impl_witness.a36] // CHECK:STDOUT: impl_decl @impl.3 [template] {} { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] // CHECK:STDOUT: %HasG.ref: type = name_ref HasG, file.%HasG.decl [template = constants.%HasG.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc23: = impl_witness (@impl.3.%G.decl) [template = constants.%impl_witness.88f] +// CHECK:STDOUT: %impl_witness.loc23: = impl_witness (@impl.3.%G.decl) [template = constants.%impl_witness.9ed] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG { -// CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.4db] -// CHECK:STDOUT: %G.decl: %G.type.6fe = fn_decl @G.1 [template = constants.%G.0ea] {} {} +// CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d42] +// CHECK:STDOUT: %G.decl: %G.type.d27 = fn_decl @G.1 [template = constants.%G.688] {} {} // CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, %G.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -349,13 +349,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.28d -// CHECK:STDOUT: .F = imports.%import_ref.cc4 -// CHECK:STDOUT: witness = (imports.%import_ref.ab3) +// CHECK:STDOUT: .Self = imports.%import_ref.28c +// CHECK:STDOUT: .F = imports.%import_ref.798 +// CHECK:STDOUT: witness = (imports.%import_ref.e80) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %HasG.ref { -// CHECK:STDOUT: %G.decl: %G.type.407 = fn_decl @G.2 [template = constants.%G.b4a] {} {} +// CHECK:STDOUT: %G.decl: %G.type.05c = fn_decl @G.2 [template = constants.%G.486] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .G = %G.decl @@ -363,7 +363,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %D.ref as %HasF.ref { -// CHECK:STDOUT: %F.decl: %F.type.e3c = fn_decl @F.2 [template = constants.%F.66f] {} {} +// CHECK:STDOUT: %F.decl: %F.type.bab = fn_decl @F.2 [template = constants.%F.46f] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -371,7 +371,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.3: %D.ref as %HasG.ref { -// CHECK:STDOUT: %G.decl: %G.type.854 = fn_decl @G.3 [template = constants.%G.ae6] {} {} +// CHECK:STDOUT: %G.decl: %G.type.c1d = fn_decl @G.3 [template = constants.%G.294] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .G = %G.decl @@ -402,7 +402,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(constants.%Self.c46: %HasF.type) [from "package_a.carbon"] { +// CHECK:STDOUT: generic fn @F.1(constants.%Self.cf3: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -417,15 +417,15 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.4db) {} +// CHECK:STDOUT: specific @G.1(constants.%Self.d42) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%HasG.facet.fd4) {} +// CHECK:STDOUT: specific @G.1(constants.%HasG.facet.085) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.c46) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.cf3) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%HasF.facet) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%HasG.facet.bec) {} +// CHECK:STDOUT: specific @G.1(constants.%HasG.facet.6fc) {} // CHECK:STDOUT: // CHECK:STDOUT: --- use_cf.carbon // CHECK:STDOUT: @@ -438,30 +438,30 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %TestCF: %TestCF.type = struct_value () [template] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.d75: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.d75 [template] -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.4a0 [template] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.ac3) [template] -// CHECK:STDOUT: %F.type.c5e: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.8d0: %F.type.c5e = struct_value () [template] +// CHECK:STDOUT: %F.type.dbc: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.dbc [template] +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.13e [template] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.148) [template] +// CHECK:STDOUT: %F.type.4e3: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.857: %F.type.4e3 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %PackageA: = namespace file.%PackageA.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac -// CHECK:STDOUT: .HasF = %import_ref.2d0 +// CHECK:STDOUT: .C = %import_ref.3b0 +// CHECK:STDOUT: .HasF = %import_ref.91b // CHECK:STDOUT: import PackageA//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.0ac: type = import_ref PackageA//default, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref PackageA//default, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref PackageA//default, inst25 [no loc], unloaded -// CHECK:STDOUT: %import_ref.2d0: type = import_ref PackageA//default, HasF, loaded [template = constants.%HasF.type] -// CHECK:STDOUT: %import_ref.28d = import_ref PackageA//default, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.b67: %F.assoc_type = import_ref PackageA//default, loc5_9, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.64f = import_ref PackageA//default, F, unloaded -// CHECK:STDOUT: %import_ref.7a7: = import_ref PackageA//default, loc11_16, loaded [template = constants.%impl_witness] -// CHECK:STDOUT: %import_ref.3de: type = import_ref PackageA//default, loc11_6, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.e33: type = import_ref PackageA//default, loc11_11, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.91b: type = import_ref PackageA//default, HasF, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.28c = import_ref PackageA//default, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.5f1: %F.assoc_type = import_ref PackageA//default, loc5_9, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.8fe = import_ref PackageA//default, F, unloaded +// CHECK:STDOUT: %import_ref.a71: = import_ref PackageA//default, loc11_16, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.29a: type = import_ref PackageA//default, loc11_6, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.e8c: type = import_ref PackageA//default, loc11_11, loaded [template = constants.%HasF.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -477,7 +477,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %c.param: %C = value_param runtime_param0 // CHECK:STDOUT: %.loc6: type = splice_block %C.ref [template = constants.%C] { // CHECK:STDOUT: %PackageA.ref.loc6: = name_ref PackageA, imports.%PackageA [template = imports.%PackageA] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: %c: %C = bind_name c, %c.param // CHECK:STDOUT: } @@ -485,14 +485,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.28d -// CHECK:STDOUT: .F = imports.%import_ref.b67 -// CHECK:STDOUT: witness = (imports.%import_ref.64f) +// CHECK:STDOUT: .Self = imports.%import_ref.28c +// CHECK:STDOUT: .F = imports.%import_ref.5f1 +// CHECK:STDOUT: witness = (imports.%import_ref.8fe) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.3de as imports.%import_ref.e33 [from "package_a.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.29a as imports.%import_ref.e8c [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.7a7 +// CHECK:STDOUT: witness = imports.%import_ref.a71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_a.carbon"] { @@ -505,9 +505,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %PackageA.ref.loc7: = name_ref PackageA, imports.%PackageA [template = imports.%PackageA] -// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%import_ref.2d0 [template = constants.%HasF.type] -// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.b67 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.d75 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.8d0] +// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%import_ref.91b [template = constants.%HasF.type] +// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.5f1 [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %F.type.dbc = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.857] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -531,50 +531,50 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %TestDF: %TestDF.type = struct_value () [template] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] -// CHECK:STDOUT: %Self.c46: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.d75: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.d75 [template] -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.4a0 [template] +// CHECK:STDOUT: %Self.cf3: %HasF.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.dbc: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.dbc [template] +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.13e [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [template] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.e33a) [template] -// CHECK:STDOUT: %F.type.975: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.ec0: %F.type.975 = struct_value () [template] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.0cd) [template] +// CHECK:STDOUT: %F.type.394: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.1fc: %F.type.394 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %PackageA: = namespace file.%PackageA.import, [template] { -// CHECK:STDOUT: .HasF = %import_ref.2d0 +// CHECK:STDOUT: .HasF = %import_ref.91b // CHECK:STDOUT: import PackageA//default // CHECK:STDOUT: } // CHECK:STDOUT: %PackageB: = namespace file.%PackageB.import, [template] { -// CHECK:STDOUT: .D = %import_ref.275 +// CHECK:STDOUT: .D = %import_ref.b0a // CHECK:STDOUT: import PackageB//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.275: type = import_ref PackageB//default, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.b0a: type = import_ref PackageB//default, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref PackageB//default, loc10_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.cab = import_ref PackageB//default, inst27 [no loc], unloaded -// CHECK:STDOUT: %import_ref.2d0: type = import_ref PackageA//default, HasF, loaded [template = constants.%HasF.type] -// CHECK:STDOUT: %import_ref.28d = import_ref PackageA//default, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.b67: %F.assoc_type = import_ref PackageA//default, loc5_9, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.64f = import_ref PackageA//default, F, unloaded -// CHECK:STDOUT: %import_ref.487 = import_ref PackageA//default, loc11_16, unloaded +// CHECK:STDOUT: %import_ref.91b: type = import_ref PackageA//default, HasF, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.28c = import_ref PackageA//default, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.5f1: %F.assoc_type = import_ref PackageA//default, loc5_9, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.8fe = import_ref PackageA//default, F, unloaded +// CHECK:STDOUT: %import_ref.0e8 = import_ref PackageA//default, loc11_16, unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref PackageA//default, loc8_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref PackageA//default, inst25 [no loc], unloaded -// CHECK:STDOUT: %import_ref.3de: type = import_ref PackageA//default, loc11_6, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.e338: type = import_ref PackageA//default, loc11_11, loaded [template = constants.%HasF.type] -// CHECK:STDOUT: %import_ref.f91 = import_ref PackageB//default, loc13_25, unloaded -// CHECK:STDOUT: %import_ref.f3e = import_ref PackageB//default, inst17 [no loc], unloaded -// CHECK:STDOUT: %import_ref.a79 = import_ref PackageB//default, loc7_9, unloaded -// CHECK:STDOUT: %import_ref.f03 = import_ref PackageB//default, G, unloaded -// CHECK:STDOUT: %import_ref.4a6: type = import_ref PackageB//default, loc13_14, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.e527c5.1: type = import_ref PackageB//default, loc13_20, loaded [template = constants.%HasG.type] -// CHECK:STDOUT: %import_ref.dc8: = import_ref PackageB//default, loc18_25, loaded [template = constants.%impl_witness] -// CHECK:STDOUT: %import_ref.3b992b.1: type = import_ref PackageB//default, loc18_6, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.9e1: type = import_ref PackageB//default, loc18_19, loaded [template = constants.%HasF.type] -// CHECK:STDOUT: %import_ref.ebd = import_ref PackageB//default, loc23_16, unloaded -// CHECK:STDOUT: %import_ref.3b992b.2: type = import_ref PackageB//default, loc23_6, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.e527c5.2: type = import_ref PackageB//default, loc23_11, loaded [template = constants.%HasG.type] +// CHECK:STDOUT: %import_ref.29a: type = import_ref PackageA//default, loc11_6, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.e8c: type = import_ref PackageA//default, loc11_11, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.fa0 = import_ref PackageB//default, loc13_25, unloaded +// CHECK:STDOUT: %import_ref.5d8 = import_ref PackageB//default, inst17 [no loc], unloaded +// CHECK:STDOUT: %import_ref.c30 = import_ref PackageB//default, loc7_9, unloaded +// CHECK:STDOUT: %import_ref.992 = import_ref PackageB//default, G, unloaded +// CHECK:STDOUT: %import_ref.dfb: type = import_ref PackageB//default, loc13_14, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.cee586.1: type = import_ref PackageB//default, loc13_20, loaded [template = constants.%HasG.type] +// CHECK:STDOUT: %import_ref.f2f: = import_ref PackageB//default, loc18_25, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.aa9f8a.1: type = import_ref PackageB//default, loc18_6, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.831: type = import_ref PackageB//default, loc18_19, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.231 = import_ref PackageB//default, loc23_16, unloaded +// CHECK:STDOUT: %import_ref.aa9f8a.2: type = import_ref PackageB//default, loc23_6, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.cee586.2: type = import_ref PackageB//default, loc23_11, loaded [template = constants.%HasG.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -592,7 +592,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %d.param: %D = value_param runtime_param0 // CHECK:STDOUT: %.loc7: type = splice_block %D.ref [template = constants.%D] { // CHECK:STDOUT: %PackageB.ref: = name_ref PackageB, imports.%PackageB [template = imports.%PackageB] -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0a [template = constants.%D] // CHECK:STDOUT: } // CHECK:STDOUT: %d: %D = bind_name d, %d.param // CHECK:STDOUT: } @@ -600,36 +600,36 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.28d -// CHECK:STDOUT: .F = imports.%import_ref.b67 -// CHECK:STDOUT: witness = (imports.%import_ref.64f) +// CHECK:STDOUT: .Self = imports.%import_ref.28c +// CHECK:STDOUT: .F = imports.%import_ref.5f1 +// CHECK:STDOUT: witness = (imports.%import_ref.8fe) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.f3e -// CHECK:STDOUT: .G = imports.%import_ref.a79 -// CHECK:STDOUT: witness = (imports.%import_ref.f03) +// CHECK:STDOUT: .Self = imports.%import_ref.5d8 +// CHECK:STDOUT: .G = imports.%import_ref.c30 +// CHECK:STDOUT: witness = (imports.%import_ref.992) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.1: imports.%import_ref.3de as imports.%import_ref.e338 [from "package_a.carbon"] { +// CHECK:STDOUT: impl @impl.1: imports.%import_ref.29a as imports.%import_ref.e8c [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.487 +// CHECK:STDOUT: witness = imports.%import_ref.0e8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.2: imports.%import_ref.4a6 as imports.%import_ref.e527c5.1 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.2: imports.%import_ref.dfb as imports.%import_ref.cee586.1 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.f91 +// CHECK:STDOUT: witness = imports.%import_ref.fa0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.3: imports.%import_ref.3b992b.1 as imports.%import_ref.9e1 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.3: imports.%import_ref.aa9f8a.1 as imports.%import_ref.831 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.dc8 +// CHECK:STDOUT: witness = imports.%import_ref.f2f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.4: imports.%import_ref.3b992b.2 as imports.%import_ref.e527c5.2 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.4: imports.%import_ref.aa9f8a.2 as imports.%import_ref.cee586.2 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.ebd +// CHECK:STDOUT: witness = imports.%import_ref.231 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "package_b.carbon"] { @@ -648,21 +648,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref: %D = name_ref d, %d // CHECK:STDOUT: %PackageA.ref: = name_ref PackageA, imports.%PackageA [template = imports.%PackageA] -// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%import_ref.2d0 [template = constants.%HasF.type] -// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.b67 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.d75 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.ec0] +// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%import_ref.91b [template = constants.%HasF.type] +// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.5f1 [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %F.type.dbc = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.1fc] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(constants.%Self.c46: %HasF.type) [from "package_a.carbon"] { +// CHECK:STDOUT: generic fn @F.1(constants.%Self.cf3: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.2() [from "package_b.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.c46) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.cf3) {} // CHECK:STDOUT: // CHECK:STDOUT: --- use_cg.carbon // CHECK:STDOUT: @@ -674,50 +674,50 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %TestCG: %TestCG.type = struct_value () [template] // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [template] -// CHECK:STDOUT: %Self.102: %HasG.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %G.type.813: type = fn_type @G.1 [template] -// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %HasG.type, %G.type.813 [template] -// CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, imports.%import_ref.5b2 [template] +// CHECK:STDOUT: %Self.fcb: %HasG.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %G.type.d9e: type = fn_type @G.1 [template] +// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %HasG.type, %G.type.d9e [template] +// CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, imports.%import_ref.d9c [template] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] // CHECK:STDOUT: %D: type = class_type @D [template] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.a5c) [template] -// CHECK:STDOUT: %G.type.6c1: type = fn_type @G.2 [template] -// CHECK:STDOUT: %G.b51: %G.type.6c1 = struct_value () [template] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.9ec) [template] +// CHECK:STDOUT: %G.type.18e: type = fn_type @G.2 [template] +// CHECK:STDOUT: %G.dbb: %G.type.18e = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %PackageA: = namespace file.%PackageA.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac +// CHECK:STDOUT: .C = %import_ref.3b0 // CHECK:STDOUT: import PackageA//default // CHECK:STDOUT: } // CHECK:STDOUT: %PackageB: = namespace file.%PackageB.import, [template] { -// CHECK:STDOUT: .HasG = %import_ref.9db +// CHECK:STDOUT: .HasG = %import_ref.924 // CHECK:STDOUT: import PackageB//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.0ac: type = import_ref PackageA//default, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref PackageA//default, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref PackageA//default, loc8_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref PackageA//default, inst25 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9db: type = import_ref PackageB//default, HasG, loaded [template = constants.%HasG.type] -// CHECK:STDOUT: %import_ref.f3e = import_ref PackageB//default, inst17 [no loc], unloaded -// CHECK:STDOUT: %import_ref.89f: %G.assoc_type = import_ref PackageB//default, loc7_9, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.f03 = import_ref PackageB//default, G, unloaded -// CHECK:STDOUT: %import_ref.487 = import_ref PackageA//default, loc11_16, unloaded -// CHECK:STDOUT: %import_ref.28d = import_ref PackageA//default, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.cc4 = import_ref PackageA//default, loc5_9, unloaded -// CHECK:STDOUT: %import_ref.64f = import_ref PackageA//default, F, unloaded -// CHECK:STDOUT: %import_ref.3de: type = import_ref PackageA//default, loc11_6, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.e33: type = import_ref PackageA//default, loc11_11, loaded [template = constants.%HasF.type] -// CHECK:STDOUT: %import_ref.38a: = import_ref PackageB//default, loc13_25, loaded [template = constants.%impl_witness] -// CHECK:STDOUT: %import_ref.4a6: type = import_ref PackageB//default, loc13_14, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.e527c5.1: type = import_ref PackageB//default, loc13_20, loaded [template = constants.%HasG.type] -// CHECK:STDOUT: %import_ref.f77 = import_ref PackageB//default, loc18_25, unloaded +// CHECK:STDOUT: %import_ref.924: type = import_ref PackageB//default, HasG, loaded [template = constants.%HasG.type] +// CHECK:STDOUT: %import_ref.5d8 = import_ref PackageB//default, inst17 [no loc], unloaded +// CHECK:STDOUT: %import_ref.d8a: %G.assoc_type = import_ref PackageB//default, loc7_9, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.992 = import_ref PackageB//default, G, unloaded +// CHECK:STDOUT: %import_ref.0e8 = import_ref PackageA//default, loc11_16, unloaded +// CHECK:STDOUT: %import_ref.28c = import_ref PackageA//default, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.798 = import_ref PackageA//default, loc5_9, unloaded +// CHECK:STDOUT: %import_ref.8fe = import_ref PackageA//default, F, unloaded +// CHECK:STDOUT: %import_ref.29a: type = import_ref PackageA//default, loc11_6, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.e8c: type = import_ref PackageA//default, loc11_11, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.5d9: = import_ref PackageB//default, loc13_25, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.dfb: type = import_ref PackageB//default, loc13_14, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.cee586.1: type = import_ref PackageB//default, loc13_20, loaded [template = constants.%HasG.type] +// CHECK:STDOUT: %import_ref.7db = import_ref PackageB//default, loc18_25, unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref PackageB//default, loc10_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.cab = import_ref PackageB//default, inst27 [no loc], unloaded -// CHECK:STDOUT: %import_ref.3b992b.1: type = import_ref PackageB//default, loc18_6, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.9e1: type = import_ref PackageB//default, loc18_19, loaded [template = constants.%HasF.type] -// CHECK:STDOUT: %import_ref.ebd = import_ref PackageB//default, loc23_16, unloaded -// CHECK:STDOUT: %import_ref.3b992b.2: type = import_ref PackageB//default, loc23_6, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.e527c5.2: type = import_ref PackageB//default, loc23_11, loaded [template = constants.%HasG.type] +// CHECK:STDOUT: %import_ref.aa9f8a.1: type = import_ref PackageB//default, loc18_6, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.831: type = import_ref PackageB//default, loc18_19, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.231 = import_ref PackageB//default, loc23_16, unloaded +// CHECK:STDOUT: %import_ref.aa9f8a.2: type = import_ref PackageB//default, loc23_6, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.cee586.2: type = import_ref PackageB//default, loc23_11, loaded [template = constants.%HasG.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -735,7 +735,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %c.param: %C = value_param runtime_param0 // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [template = constants.%C] { // CHECK:STDOUT: %PackageA.ref: = name_ref PackageA, imports.%PackageA [template = imports.%PackageA] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: %c: %C = bind_name c, %c.param // CHECK:STDOUT: } @@ -743,36 +743,36 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.f3e -// CHECK:STDOUT: .G = imports.%import_ref.89f -// CHECK:STDOUT: witness = (imports.%import_ref.f03) +// CHECK:STDOUT: .Self = imports.%import_ref.5d8 +// CHECK:STDOUT: .G = imports.%import_ref.d8a +// CHECK:STDOUT: witness = (imports.%import_ref.992) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.28d -// CHECK:STDOUT: .F = imports.%import_ref.cc4 -// CHECK:STDOUT: witness = (imports.%import_ref.64f) +// CHECK:STDOUT: .Self = imports.%import_ref.28c +// CHECK:STDOUT: .F = imports.%import_ref.798 +// CHECK:STDOUT: witness = (imports.%import_ref.8fe) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.1: imports.%import_ref.3de as imports.%import_ref.e33 [from "package_a.carbon"] { +// CHECK:STDOUT: impl @impl.1: imports.%import_ref.29a as imports.%import_ref.e8c [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.487 +// CHECK:STDOUT: witness = imports.%import_ref.0e8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.2: imports.%import_ref.4a6 as imports.%import_ref.e527c5.1 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.2: imports.%import_ref.dfb as imports.%import_ref.cee586.1 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.38a +// CHECK:STDOUT: witness = imports.%import_ref.5d9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.3: imports.%import_ref.3b992b.1 as imports.%import_ref.9e1 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.3: imports.%import_ref.aa9f8a.1 as imports.%import_ref.831 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.f77 +// CHECK:STDOUT: witness = imports.%import_ref.7db // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.4: imports.%import_ref.3b992b.2 as imports.%import_ref.e527c5.2 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.4: imports.%import_ref.aa9f8a.2 as imports.%import_ref.cee586.2 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.ebd +// CHECK:STDOUT: witness = imports.%import_ref.231 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_a.carbon"] { @@ -791,21 +791,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %PackageB.ref: = name_ref PackageB, imports.%PackageB [template = imports.%PackageB] -// CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%import_ref.9db [template = constants.%HasG.type] -// CHECK:STDOUT: %G.ref: %G.assoc_type = name_ref G, imports.%import_ref.89f [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %G.type.813 = impl_witness_access constants.%impl_witness, element0 [template = constants.%G.b51] +// CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%import_ref.924 [template = constants.%HasG.type] +// CHECK:STDOUT: %G.ref: %G.assoc_type = name_ref G, imports.%import_ref.d8a [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %G.type.d9e = impl_witness_access constants.%impl_witness, element0 [template = constants.%G.dbb] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G.1(constants.%Self.102: %HasG.type) [from "package_b.carbon"] { +// CHECK:STDOUT: generic fn @G.1(constants.%Self.fcb: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G.2() [from "package_b.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.102) {} +// CHECK:STDOUT: specific @G.1(constants.%Self.fcb) {} // CHECK:STDOUT: // CHECK:STDOUT: --- use_dg.carbon // CHECK:STDOUT: @@ -817,44 +817,44 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %TestDG: %TestDG.type = struct_value () [template] // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [template] -// CHECK:STDOUT: %Self.102: %HasG.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %G.type.813: type = fn_type @G.1 [template] -// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %HasG.type, %G.type.813 [template] -// CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, imports.%import_ref.5b2 [template] +// CHECK:STDOUT: %Self.fcb: %HasG.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %G.type.d9e: type = fn_type @G.1 [template] +// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %HasG.type, %G.type.d9e [template] +// CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, imports.%import_ref.d9c [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.d18) [template] -// CHECK:STDOUT: %G.type.ec8: type = fn_type @G.2 [template] -// CHECK:STDOUT: %G.e97: %G.type.ec8 = struct_value () [template] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.b0a6) [template] +// CHECK:STDOUT: %G.type.405: type = fn_type @G.2 [template] +// CHECK:STDOUT: %G.703: %G.type.405 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %PackageB: = namespace file.%PackageB.import, [template] { -// CHECK:STDOUT: .D = %import_ref.275 -// CHECK:STDOUT: .HasG = %import_ref.9db +// CHECK:STDOUT: .D = %import_ref.b0aa +// CHECK:STDOUT: .HasG = %import_ref.924 // CHECK:STDOUT: import PackageB//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.275: type = import_ref PackageB//default, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.b0aa: type = import_ref PackageB//default, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.8f2: = import_ref PackageB//default, loc10_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.cab = import_ref PackageB//default, inst27 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9db: type = import_ref PackageB//default, HasG, loaded [template = constants.%HasG.type] -// CHECK:STDOUT: %import_ref.f3e = import_ref PackageB//default, inst17 [no loc], unloaded -// CHECK:STDOUT: %import_ref.89f: %G.assoc_type = import_ref PackageB//default, loc7_9, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.f03 = import_ref PackageB//default, G, unloaded -// CHECK:STDOUT: %import_ref.f91 = import_ref PackageB//default, loc13_25, unloaded +// CHECK:STDOUT: %import_ref.924: type = import_ref PackageB//default, HasG, loaded [template = constants.%HasG.type] +// CHECK:STDOUT: %import_ref.5d8 = import_ref PackageB//default, inst17 [no loc], unloaded +// CHECK:STDOUT: %import_ref.d8a: %G.assoc_type = import_ref PackageB//default, loc7_9, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.992 = import_ref PackageB//default, G, unloaded +// CHECK:STDOUT: %import_ref.fa0 = import_ref PackageB//default, loc13_25, unloaded // CHECK:STDOUT: %import_ref.8db: = import_ref PackageB//default, inst35 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref PackageB//default, inst36 [indirect], unloaded -// CHECK:STDOUT: %import_ref.4a6: type = import_ref PackageB//default, loc13_14, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.e527c5.1: type = import_ref PackageB//default, loc13_20, loaded [template = constants.%HasG.type] -// CHECK:STDOUT: %import_ref.f77 = import_ref PackageB//default, loc18_25, unloaded -// CHECK:STDOUT: %import_ref.ccf = import_ref PackageB//default, inst53 [indirect], unloaded -// CHECK:STDOUT: %import_ref.09b = import_ref PackageB//default, inst54 [indirect], unloaded -// CHECK:STDOUT: %import_ref.b4f = import_ref PackageB//default, F, unloaded -// CHECK:STDOUT: %import_ref.3b992b.1: type = import_ref PackageB//default, loc18_6, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.9e1: type = import_ref PackageB//default, loc18_19, loaded [template = constants.%HasF.type] -// CHECK:STDOUT: %import_ref.f58: = import_ref PackageB//default, loc23_16, loaded [template = constants.%impl_witness] -// CHECK:STDOUT: %import_ref.3b992b.2: type = import_ref PackageB//default, loc23_6, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.e527c5.2: type = import_ref PackageB//default, loc23_11, loaded [template = constants.%HasG.type] +// CHECK:STDOUT: %import_ref.dfb: type = import_ref PackageB//default, loc13_14, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.cee586.1: type = import_ref PackageB//default, loc13_20, loaded [template = constants.%HasG.type] +// CHECK:STDOUT: %import_ref.7db = import_ref PackageB//default, loc18_25, unloaded +// CHECK:STDOUT: %import_ref.96f = import_ref PackageB//default, inst53 [indirect], unloaded +// CHECK:STDOUT: %import_ref.e4b = import_ref PackageB//default, inst54 [indirect], unloaded +// CHECK:STDOUT: %import_ref.acb = import_ref PackageB//default, F, unloaded +// CHECK:STDOUT: %import_ref.aa9f8a.1: type = import_ref PackageB//default, loc18_6, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.831: type = import_ref PackageB//default, loc18_19, loaded [template = constants.%HasF.type] +// CHECK:STDOUT: %import_ref.240: = import_ref PackageB//default, loc23_16, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.aa9f8a.2: type = import_ref PackageB//default, loc23_6, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.cee586.2: type = import_ref PackageB//default, loc23_11, loaded [template = constants.%HasG.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -870,7 +870,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %d.param: %D = value_param runtime_param0 // CHECK:STDOUT: %.loc6: type = splice_block %D.ref [template = constants.%D] { // CHECK:STDOUT: %PackageB.ref.loc6: = name_ref PackageB, imports.%PackageB [template = imports.%PackageB] -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0aa [template = constants.%D] // CHECK:STDOUT: } // CHECK:STDOUT: %d: %D = bind_name d, %d.param // CHECK:STDOUT: } @@ -878,31 +878,31 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.f3e -// CHECK:STDOUT: .G = imports.%import_ref.89f -// CHECK:STDOUT: witness = (imports.%import_ref.f03) +// CHECK:STDOUT: .Self = imports.%import_ref.5d8 +// CHECK:STDOUT: .G = imports.%import_ref.d8a +// CHECK:STDOUT: witness = (imports.%import_ref.992) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.ccf -// CHECK:STDOUT: .F = imports.%import_ref.09b -// CHECK:STDOUT: witness = (imports.%import_ref.b4f) +// CHECK:STDOUT: .Self = imports.%import_ref.96f +// CHECK:STDOUT: .F = imports.%import_ref.e4b +// CHECK:STDOUT: witness = (imports.%import_ref.acb) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.1: imports.%import_ref.4a6 as imports.%import_ref.e527c5.1 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.1: imports.%import_ref.dfb as imports.%import_ref.cee586.1 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.f91 +// CHECK:STDOUT: witness = imports.%import_ref.fa0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.2: imports.%import_ref.3b992b.1 as imports.%import_ref.9e1 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.2: imports.%import_ref.aa9f8a.1 as imports.%import_ref.831 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.f77 +// CHECK:STDOUT: witness = imports.%import_ref.7db // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.3: imports.%import_ref.3b992b.2 as imports.%import_ref.e527c5.2 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @impl.3: imports.%import_ref.aa9f8a.2 as imports.%import_ref.cee586.2 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.f58 +// CHECK:STDOUT: witness = imports.%import_ref.240 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "package_b.carbon"] { @@ -921,35 +921,35 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref: %D = name_ref d, %d // CHECK:STDOUT: %PackageB.ref.loc7: = name_ref PackageB, imports.%PackageB [template = imports.%PackageB] -// CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%import_ref.9db [template = constants.%HasG.type] -// CHECK:STDOUT: %G.ref: %G.assoc_type = name_ref G, imports.%import_ref.89f [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %G.type.813 = impl_witness_access constants.%impl_witness, element0 [template = constants.%G.e97] +// CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%import_ref.924 [template = constants.%HasG.type] +// CHECK:STDOUT: %G.ref: %G.assoc_type = name_ref G, imports.%import_ref.d8a [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %G.type.d9e = impl_witness_access constants.%impl_witness, element0 [template = constants.%G.703] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G.1(constants.%Self.102: %HasG.type) [from "package_b.carbon"] { +// CHECK:STDOUT: generic fn @G.1(constants.%Self.fcb: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G.2() [from "package_b.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.102) {} +// CHECK:STDOUT: specific @G.1(constants.%Self.fcb) {} // CHECK:STDOUT: // CHECK:STDOUT: --- associated_interface.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [template] // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %H.type.5e7: type = fn_type @H.1 [template] +// CHECK:STDOUT: %H.type.474: type = fn_type @H.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %H.891: %H.type.5e7 = struct_value () [template] -// CHECK:STDOUT: %H.assoc_type: type = assoc_entity_type %Z.type, %H.type.5e7 [template] +// CHECK:STDOUT: %H.c1d: %H.type.474 = struct_value () [template] +// CHECK:STDOUT: %H.assoc_type: type = assoc_entity_type %Z.type, %H.type.474 [template] // CHECK:STDOUT: %assoc0: %H.assoc_type = assoc_entity element0, @Z.%H.decl [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%H.decl) [template] -// CHECK:STDOUT: %H.type.fad: type = fn_type @H.2 [template] -// CHECK:STDOUT: %H.bea: %H.type.fad = struct_value () [template] +// CHECK:STDOUT: %H.type.707: type = fn_type @H.2 [template] +// CHECK:STDOUT: %H.8d7: %H.type.707 = struct_value () [template] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, %impl_witness [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -968,7 +968,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %H.decl: %H.type.5e7 = fn_decl @H.1 [template = constants.%H.891] {} {} +// CHECK:STDOUT: %H.decl: %H.type.474 = fn_decl @H.1 [template = constants.%H.c1d] {} {} // CHECK:STDOUT: %assoc0: %H.assoc_type = assoc_entity element0, %H.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -978,7 +978,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %.loc8_7.2 as %Z.ref { -// CHECK:STDOUT: %H.decl: %H.type.fad = fn_decl @H.2 [template = constants.%H.bea] {} {} +// CHECK:STDOUT: %H.decl: %H.type.707 = fn_decl @H.2 [template = constants.%H.8d7] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .H = %H.decl @@ -1007,26 +1007,26 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %J: %J.type = struct_value () [template] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [template] // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %H.type.594: type = fn_type @H.1 [template] -// CHECK:STDOUT: %H.assoc_type: type = assoc_entity_type %Z.type, %H.type.594 [template] -// CHECK:STDOUT: %assoc0: %H.assoc_type = assoc_entity element0, imports.%import_ref.8f8 [template] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.a75) [template] -// CHECK:STDOUT: %H.type.96e: type = fn_type @H.2 [template] -// CHECK:STDOUT: %H.33c: %H.type.96e = struct_value () [template] +// CHECK:STDOUT: %H.type.386: type = fn_type @H.1 [template] +// CHECK:STDOUT: %H.assoc_type: type = assoc_entity_type %Z.type, %H.type.386 [template] +// CHECK:STDOUT: %assoc0: %H.assoc_type = assoc_entity element0, imports.%import_ref.d97 [template] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.6d7) [template] +// CHECK:STDOUT: %H.type.ab3: type = fn_type @H.2 [template] +// CHECK:STDOUT: %H.c25: %H.type.ab3 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %PackageAssociatedInterface: = namespace file.%PackageAssociatedInterface.import, [template] { -// CHECK:STDOUT: .Z = %import_ref.0ef +// CHECK:STDOUT: .Z = %import_ref.25c // CHECK:STDOUT: import PackageAssociatedInterface//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.0ef: type = import_ref PackageAssociatedInterface//default, Z, loaded [template = constants.%Z.type] -// CHECK:STDOUT: %import_ref.54a = import_ref PackageAssociatedInterface//default, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.0ab: %H.assoc_type = import_ref PackageAssociatedInterface//default, loc5_9, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.108 = import_ref PackageAssociatedInterface//default, H, unloaded -// CHECK:STDOUT: %import_ref.cc2: = import_ref PackageAssociatedInterface//default, loc8_14, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.25c: type = import_ref PackageAssociatedInterface//default, Z, loaded [template = constants.%Z.type] +// CHECK:STDOUT: %import_ref.f88 = import_ref PackageAssociatedInterface//default, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.150: %H.assoc_type = import_ref PackageAssociatedInterface//default, loc5_9, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.908 = import_ref PackageAssociatedInterface//default, H, unloaded +// CHECK:STDOUT: %import_ref.998: = import_ref PackageAssociatedInterface//default, loc8_14, loaded [template = constants.%impl_witness] // CHECK:STDOUT: %import_ref.e5c: type = import_ref PackageAssociatedInterface//default, loc8_7, loaded [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %import_ref.f0c: type = import_ref PackageAssociatedInterface//default, loc8_12, loaded [template = constants.%Z.type] +// CHECK:STDOUT: %import_ref.df1: type = import_ref PackageAssociatedInterface//default, loc8_12, loaded [template = constants.%Z.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1040,23 +1040,23 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Z [from "associated_interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.54a -// CHECK:STDOUT: .H = imports.%import_ref.0ab -// CHECK:STDOUT: witness = (imports.%import_ref.108) +// CHECK:STDOUT: .Self = imports.%import_ref.f88 +// CHECK:STDOUT: .H = imports.%import_ref.150 +// CHECK:STDOUT: witness = (imports.%import_ref.908) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.e5c as imports.%import_ref.f0c [from "associated_interface.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.e5c as imports.%import_ref.df1 [from "associated_interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.cc2 +// CHECK:STDOUT: witness = imports.%import_ref.998 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @J() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %PackageAssociatedInterface.ref: = name_ref PackageAssociatedInterface, imports.%PackageAssociatedInterface [template = imports.%PackageAssociatedInterface] -// CHECK:STDOUT: %Z.ref: type = name_ref Z, imports.%import_ref.0ef [template = constants.%Z.type] -// CHECK:STDOUT: %H.ref: %H.assoc_type = name_ref H, imports.%import_ref.0ab [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %H.type.594 = impl_witness_access constants.%impl_witness, element0 [template = constants.%H.33c] +// CHECK:STDOUT: %Z.ref: type = name_ref Z, imports.%import_ref.25c [template = constants.%Z.type] +// CHECK:STDOUT: %H.ref: %H.assoc_type = name_ref H, imports.%import_ref.150 [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %H.type.386 = impl_witness_access constants.%impl_witness, element0 [template = constants.%H.c25] // CHECK:STDOUT: %H.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1164,8 +1164,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %GenericInterface.type.c92: type = generic_interface_type @GenericInterface [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.c92 = struct_value () [template] -// CHECK:STDOUT: %GenericInterface.type.714: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] -// CHECK:STDOUT: %Self.c9a: %GenericInterface.type.714 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %GenericInterface.type.3fe: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] +// CHECK:STDOUT: %Self.a1c: %GenericInterface.type.3fe = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %AnyParam.type: type = generic_class_type @AnyParam [template] // CHECK:STDOUT: %AnyParam.generic: %AnyParam.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] @@ -1173,36 +1173,36 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %X: %T = bind_symbolic_name X, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %X.patt.a277d5.2: %T = symbolic_binding_pattern X, 1 [symbolic] -// CHECK:STDOUT: %AnyParam.422: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.c92, %GenericInterface.generic) [template] +// CHECK:STDOUT: %X.patt.51ccc0.2: %T = symbolic_binding_pattern X, 1 [symbolic] +// CHECK:STDOUT: %AnyParam.241: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.c92, %GenericInterface.generic) [template] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [template] -// CHECK:STDOUT: %Self.ea2: %Y.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %K.type.069: type = fn_type @K.1 [template] -// CHECK:STDOUT: %K.766: %K.type.069 = struct_value () [template] +// CHECK:STDOUT: %Self.f64: %Y.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %K.type.311: type = fn_type @K.1 [template] +// CHECK:STDOUT: %K.7a1: %K.type.311 = struct_value () [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%K.decl) [template] -// CHECK:STDOUT: %K.type.7be: type = fn_type @K.2 [template] -// CHECK:STDOUT: %K.328: %K.type.7be = struct_value () [template] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.422, %impl_witness [template] +// CHECK:STDOUT: %K.type.dcd: type = fn_type @K.2 [template] +// CHECK:STDOUT: %K.2e9: %K.type.dcd = struct_value () [template] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.241, %impl_witness [template] // CHECK:STDOUT: %L.type: type = fn_type @L [template] // CHECK:STDOUT: %L: %L.type = struct_value () [template] -// CHECK:STDOUT: %AnyParam.val: %AnyParam.422 = struct_value () [template] -// CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type %Y.type, %K.type.069 [template] -// CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, imports.%import_ref.6d0 [template] +// CHECK:STDOUT: %AnyParam.val: %AnyParam.241 = struct_value () [template] +// CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type %Y.type, %K.type.311 [template] +// CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, imports.%import_ref.d37 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %PackageHasParam: = namespace file.%PackageHasParam.import, [template] { -// CHECK:STDOUT: .AnyParam = %import_ref.6c9 -// CHECK:STDOUT: .Y = %import_ref.ca2 +// CHECK:STDOUT: .AnyParam = %import_ref.8b7 +// CHECK:STDOUT: .Y = %import_ref.d7e // CHECK:STDOUT: import PackageHasParam//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.6c9: %AnyParam.type = import_ref PackageHasParam//default, AnyParam, loaded [template = constants.%AnyParam.generic] +// CHECK:STDOUT: %import_ref.8b7: %AnyParam.type = import_ref PackageHasParam//default, AnyParam, loaded [template = constants.%AnyParam.generic] // CHECK:STDOUT: %import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [template = constants.%complete_type] -// CHECK:STDOUT: %import_ref.8e4 = import_ref PackageHasParam//default, inst34 [no loc], unloaded -// CHECK:STDOUT: %import_ref.ca2: type = import_ref PackageHasParam//default, Y, loaded [template = constants.%Y.type] -// CHECK:STDOUT: %import_ref.434 = import_ref PackageHasParam//default, inst40 [no loc], unloaded -// CHECK:STDOUT: %import_ref.991: %K.assoc_type = import_ref PackageHasParam//default, loc7_10, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.c68: %K.type.069 = import_ref PackageHasParam//default, K, loaded [template = constants.%K.766] +// CHECK:STDOUT: %import_ref.601 = import_ref PackageHasParam//default, inst34 [no loc], unloaded +// CHECK:STDOUT: %import_ref.d7e: type = import_ref PackageHasParam//default, Y, loaded [template = constants.%Y.type] +// CHECK:STDOUT: %import_ref.dc1 = import_ref PackageHasParam//default, inst40 [no loc], unloaded +// CHECK:STDOUT: %import_ref.df6: %K.assoc_type = import_ref PackageHasParam//default, loc7_10, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.b80: %K.type.311 = import_ref PackageHasParam//default, K, loaded [template = constants.%K.7a1] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1221,11 +1221,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl [template] {} { // CHECK:STDOUT: %PackageHasParam.ref.loc8_6: = name_ref PackageHasParam, imports.%PackageHasParam [template = imports.%PackageHasParam] -// CHECK:STDOUT: %AnyParam.ref: %AnyParam.type = name_ref AnyParam, imports.%import_ref.6c9 [template = constants.%AnyParam.generic] +// CHECK:STDOUT: %AnyParam.ref: %AnyParam.type = name_ref AnyParam, imports.%import_ref.8b7 [template = constants.%AnyParam.generic] // CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.c92 = name_ref GenericInterface, file.%GenericInterface.decl [template = constants.%GenericInterface.generic] -// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericInterface.type.c92, constants.%GenericInterface.generic) [template = constants.%AnyParam.422] +// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericInterface.type.c92, constants.%GenericInterface.generic) [template = constants.%AnyParam.241] // CHECK:STDOUT: %PackageHasParam.ref.loc8_52: = name_ref PackageHasParam, imports.%PackageHasParam [template = imports.%PackageHasParam] -// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%import_ref.ca2 [template = constants.%Y.type] +// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%import_ref.d7e [template = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%K.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %L.decl: %L.type = fn_decl @L [template = constants.%L] {} {} @@ -1236,11 +1236,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %U.patt.loc6_28.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc6_28.2 (constants.%U.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U.loc6_28.2)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.714)] -// CHECK:STDOUT: %Self.2: %GenericInterface.type.714 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c9a)] +// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U.loc6_28.2)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.3fe)] +// CHECK:STDOUT: %Self.2: %GenericInterface.type.3fe = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a1c)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.714) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c9a)] +// CHECK:STDOUT: %Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.3fe) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a1c)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -1250,13 +1250,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Y [from "has_param.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.434 -// CHECK:STDOUT: .K = imports.%import_ref.991 -// CHECK:STDOUT: witness = (imports.%import_ref.c68) +// CHECK:STDOUT: .Self = imports.%import_ref.dc1 +// CHECK:STDOUT: .K = imports.%import_ref.df6 +// CHECK:STDOUT: witness = (imports.%import_ref.b80) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %AnyParam as %Y.ref { -// CHECK:STDOUT: %K.decl: %K.type.7be = fn_decl @K.2 [template = constants.%K.328] {} {} +// CHECK:STDOUT: %K.decl: %K.type.dcd = fn_decl @K.2 [template = constants.%K.2e9] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .K = %K.decl @@ -1267,18 +1267,18 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: %X: %T = bind_symbolic_name X, 1 [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %X.patt: %T = symbolic_binding_pattern X, 1 [symbolic = %X.patt (constants.%X.patt.a277d5.2)] +// CHECK:STDOUT: %X.patt: %T = symbolic_binding_pattern X, 1 [symbolic = %X.patt (constants.%X.patt.51ccc0.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.8e4 +// CHECK:STDOUT: .Self = imports.%import_ref.601 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @K.1(constants.%Self.ea2: %Y.type) [from "has_param.carbon"] { +// CHECK:STDOUT: generic fn @K.1(constants.%Self.f64: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn(); @@ -1291,17 +1291,17 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: fn @L() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %obj.var: ref %AnyParam.422 = var obj -// CHECK:STDOUT: %obj: ref %AnyParam.422 = bind_name obj, %obj.var +// CHECK:STDOUT: %obj.var: ref %AnyParam.241 = var obj +// CHECK:STDOUT: %obj: ref %AnyParam.241 = bind_name obj, %obj.var // CHECK:STDOUT: %.loc13_58.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc13_58.2: init %AnyParam.422 = class_init (), %obj.var [template = constants.%AnyParam.val] -// CHECK:STDOUT: %.loc13_59: init %AnyParam.422 = converted %.loc13_58.1, %.loc13_58.2 [template = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc13_58.2: init %AnyParam.241 = class_init (), %obj.var [template = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc13_59: init %AnyParam.241 = converted %.loc13_58.1, %.loc13_58.2 [template = constants.%AnyParam.val] // CHECK:STDOUT: assign %obj.var, %.loc13_59 -// CHECK:STDOUT: %obj.ref: ref %AnyParam.422 = name_ref obj, %obj +// CHECK:STDOUT: %obj.ref: ref %AnyParam.241 = name_ref obj, %obj // CHECK:STDOUT: %PackageHasParam.ref: = name_ref PackageHasParam, imports.%PackageHasParam [template = imports.%PackageHasParam] -// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%import_ref.ca2 [template = constants.%Y.type] -// CHECK:STDOUT: %K.ref: %K.assoc_type = name_ref K, imports.%import_ref.991 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %K.type.069 = impl_witness_access constants.%impl_witness, element0 [template = constants.%K.328] +// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%import_ref.d7e [template = constants.%Y.type] +// CHECK:STDOUT: %K.ref: %K.assoc_type = name_ref K, imports.%import_ref.df6 [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %K.type.311 = impl_witness_access constants.%impl_witness, element0 [template = constants.%K.2e9] // CHECK:STDOUT: %K.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1329,7 +1329,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K.1(constants.%Self.ea2) {} +// CHECK:STDOUT: specific @K.1(constants.%Self.f64) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @K.1(constants.%Y.facet) {} // CHECK:STDOUT: @@ -1344,45 +1344,45 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %X: %T = bind_symbolic_name X, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %X.patt.a277d5.2: %T = symbolic_binding_pattern X, 1 [symbolic] +// CHECK:STDOUT: %X.patt.51ccc0.2: %T = symbolic_binding_pattern X, 1 [symbolic] // CHECK:STDOUT: %GenericInterface.type.0da: type = generic_interface_type @GenericInterface [template] // CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.0da = struct_value () [template] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic] -// CHECK:STDOUT: %GenericInterface.type.954: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] -// CHECK:STDOUT: %Self.ebd: %GenericInterface.type.954 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %GenericInterface.type.138: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] +// CHECK:STDOUT: %Self.13b: %GenericInterface.type.138 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] -// CHECK:STDOUT: %AnyParam.35d: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.0da, %GenericInterface.generic) [template] -// CHECK:STDOUT: %AnyParam.val: %AnyParam.35d = struct_value () [template] +// CHECK:STDOUT: %AnyParam.861: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.0da, %GenericInterface.generic) [template] +// CHECK:STDOUT: %AnyParam.val: %AnyParam.861 = struct_value () [template] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [template] -// CHECK:STDOUT: %Self.ea2: %Y.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %K.type.069: type = fn_type @K.1 [template] -// CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type %Y.type, %K.type.069 [template] -// CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, imports.%import_ref.6d0 [template] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.a9a) [template] -// CHECK:STDOUT: %K.type.d9f: type = fn_type @K.2 [template] -// CHECK:STDOUT: %K.4e3: %K.type.d9f = struct_value () [template] +// CHECK:STDOUT: %Self.f64: %Y.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %K.type.311: type = fn_type @K.1 [template] +// CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type %Y.type, %K.type.311 [template] +// CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, imports.%import_ref.d37 [template] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.456) [template] +// CHECK:STDOUT: %K.type.7f9: type = fn_type @K.2 [template] +// CHECK:STDOUT: %K.c3c: %K.type.7f9 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %PackageHasParam: = namespace file.%PackageHasParam.import, [template] { -// CHECK:STDOUT: .AnyParam = %import_ref.6c9 -// CHECK:STDOUT: .Y = %import_ref.ca2 +// CHECK:STDOUT: .AnyParam = %import_ref.8b7 +// CHECK:STDOUT: .Y = %import_ref.d7e // CHECK:STDOUT: import PackageHasParam//default // CHECK:STDOUT: } // CHECK:STDOUT: %PackageGenericInterface: = namespace file.%PackageGenericInterface.import, [template] { -// CHECK:STDOUT: .GenericInterface = %import_ref.012 +// CHECK:STDOUT: .GenericInterface = %import_ref.3e7 // CHECK:STDOUT: import PackageGenericInterface//default // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [template = constants.%complete_type] -// CHECK:STDOUT: %import_ref.8e4 = import_ref PackageHasParam//default, inst34 [no loc], unloaded -// CHECK:STDOUT: %import_ref.ef8 = import_ref PackageGenericInterface//default, inst28 [no loc], unloaded -// CHECK:STDOUT: %import_ref.ca2: type = import_ref PackageHasParam//default, Y, loaded [template = constants.%Y.type] -// CHECK:STDOUT: %import_ref.434 = import_ref PackageHasParam//default, inst40 [no loc], unloaded -// CHECK:STDOUT: %import_ref.991: %K.assoc_type = import_ref PackageHasParam//default, loc7_10, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.6f6 = import_ref PackageHasParam//default, K, unloaded -// CHECK:STDOUT: %import_ref.e37: = import_ref PackageGenericInterface//default, loc8_70, loaded [template = constants.%impl_witness] -// CHECK:STDOUT: %import_ref.d44: type = import_ref PackageGenericInterface//default, loc8_47, loaded [template = constants.%AnyParam.35d] -// CHECK:STDOUT: %import_ref.63d: type = import_ref PackageGenericInterface//default, loc8_67, loaded [template = constants.%Y.type] +// CHECK:STDOUT: %import_ref.601 = import_ref PackageHasParam//default, inst34 [no loc], unloaded +// CHECK:STDOUT: %import_ref.c3b = import_ref PackageGenericInterface//default, inst28 [no loc], unloaded +// CHECK:STDOUT: %import_ref.d7e: type = import_ref PackageHasParam//default, Y, loaded [template = constants.%Y.type] +// CHECK:STDOUT: %import_ref.dc1 = import_ref PackageHasParam//default, inst40 [no loc], unloaded +// CHECK:STDOUT: %import_ref.df6: %K.assoc_type = import_ref PackageHasParam//default, loc7_10, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.9be = import_ref PackageHasParam//default, K, unloaded +// CHECK:STDOUT: %import_ref.ca8: = import_ref PackageGenericInterface//default, loc8_70, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.321: type = import_ref PackageGenericInterface//default, loc8_47, loaded [template = constants.%AnyParam.861] +// CHECK:STDOUT: %import_ref.ca6: type = import_ref PackageGenericInterface//default, loc8_67, loaded [template = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1401,61 +1401,61 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt (constants.%U.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.954)] -// CHECK:STDOUT: %Self: %GenericInterface.type.954 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.ebd)] +// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.138)] +// CHECK:STDOUT: %Self: %GenericInterface.type.138 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.13b)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.ef8 +// CHECK:STDOUT: .Self = imports.%import_ref.c3b // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Y [from "has_param.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.434 -// CHECK:STDOUT: .K = imports.%import_ref.991 -// CHECK:STDOUT: witness = (imports.%import_ref.6f6) +// CHECK:STDOUT: .Self = imports.%import_ref.dc1 +// CHECK:STDOUT: .K = imports.%import_ref.df6 +// CHECK:STDOUT: witness = (imports.%import_ref.9be) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.d44 as imports.%import_ref.63d [from "has_generic_interface.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.321 as imports.%import_ref.ca6 [from "has_generic_interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.e37 +// CHECK:STDOUT: witness = imports.%import_ref.ca8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @AnyParam(constants.%T: type, constants.%X: %T) [from "has_param.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: %X: %T = bind_symbolic_name X, 1 [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %X.patt: %T = symbolic_binding_pattern X, 1 [symbolic = %X.patt (constants.%X.patt.a277d5.2)] +// CHECK:STDOUT: %X.patt: %T = symbolic_binding_pattern X, 1 [symbolic = %X.patt (constants.%X.patt.51ccc0.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.8e4 +// CHECK:STDOUT: .Self = imports.%import_ref.601 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @M() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %obj.var: ref %AnyParam.35d = var obj -// CHECK:STDOUT: %obj: ref %AnyParam.35d = bind_name obj, %obj.var +// CHECK:STDOUT: %obj.var: ref %AnyParam.861 = var obj +// CHECK:STDOUT: %obj: ref %AnyParam.861 = bind_name obj, %obj.var // CHECK:STDOUT: %.loc9_50.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc9_50.2: init %AnyParam.35d = class_init (), %obj.var [template = constants.%AnyParam.val] -// CHECK:STDOUT: %.loc9_51: init %AnyParam.35d = converted %.loc9_50.1, %.loc9_50.2 [template = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc9_50.2: init %AnyParam.861 = class_init (), %obj.var [template = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc9_51: init %AnyParam.861 = converted %.loc9_50.1, %.loc9_50.2 [template = constants.%AnyParam.val] // CHECK:STDOUT: assign %obj.var, %.loc9_51 -// CHECK:STDOUT: %obj.ref: ref %AnyParam.35d = name_ref obj, %obj +// CHECK:STDOUT: %obj.ref: ref %AnyParam.861 = name_ref obj, %obj // CHECK:STDOUT: %PackageHasParam.ref: = name_ref PackageHasParam, imports.%PackageHasParam [template = imports.%PackageHasParam] -// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%import_ref.ca2 [template = constants.%Y.type] -// CHECK:STDOUT: %K.ref: %K.assoc_type = name_ref K, imports.%import_ref.991 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %K.type.069 = impl_witness_access constants.%impl_witness, element0 [template = constants.%K.4e3] +// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%import_ref.d7e [template = constants.%Y.type] +// CHECK:STDOUT: %K.ref: %K.assoc_type = name_ref K, imports.%import_ref.df6 [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %K.type.311 = impl_witness_access constants.%impl_witness, element0 [template = constants.%K.c3c] // CHECK:STDOUT: %K.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @K.1(constants.%Self.ea2: %Y.type) [from "has_param.carbon"] { +// CHECK:STDOUT: generic fn @K.1(constants.%Self.f64: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn(); @@ -1486,47 +1486,47 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K.1(constants.%Self.ea2) {} +// CHECK:STDOUT: specific @K.1(constants.%Self.f64) {} // CHECK:STDOUT: // CHECK:STDOUT: --- has_extra_interfaces.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Extra1.type: type = facet_type <@Extra1> [template] -// CHECK:STDOUT: %Self.a02: %Extra1.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.66c: %Extra1.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Extra2.type: type = facet_type <@Extra2> [template] -// CHECK:STDOUT: %Self.f86: %Extra2.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.2ed: %Extra2.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Extra3.type: type = facet_type <@Extra3> [template] -// CHECK:STDOUT: %Self.9d3: %Extra3.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.622: %Extra3.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Extra4.type: type = facet_type <@Extra4> [template] -// CHECK:STDOUT: %Self.4fb: %Extra4.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.234: %Extra4.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Extra5.type: type = facet_type <@Extra5> [template] -// CHECK:STDOUT: %Self.acd: %Extra5.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d1b: %Extra5.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Extra6.type: type = facet_type <@Extra6> [template] -// CHECK:STDOUT: %Self.27e: %Extra6.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.aeb: %Extra6.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Extra7.type: type = facet_type <@Extra7> [template] -// CHECK:STDOUT: %Self.f8e: %Extra7.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.b7e: %Extra7.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Extra8.type: type = facet_type <@Extra8> [template] -// CHECK:STDOUT: %Self.0e4: %Extra8.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f90: %Extra8.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %tuple.type.c53: type = tuple_type (type, type, type, type, type, type, type, type) [template] // CHECK:STDOUT: %tuple.type.15d: type = tuple_type (%Extra1.type, %Extra2.type, %Extra3.type, %Extra4.type, %Extra5.type, %Extra6.type, %Extra7.type, %Extra8.type) [template] -// CHECK:STDOUT: %C.88d: type = class_type @C, @C(%tuple.type.15d) [template] +// CHECK:STDOUT: %C.69b: type = class_type @C, @C(%tuple.type.15d) [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.b71: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.32b: %F.type.b71 = struct_value () [template] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.88d, %impl_witness [template] +// CHECK:STDOUT: %F.type.06f: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.13c: %F.type.06f = struct_value () [template] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.69b, %impl_witness [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1570,14 +1570,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Extra8.ref: type = name_ref Extra8, file.%Extra8.decl [template = 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) // CHECK:STDOUT: %.loc16_72: type = converted %.loc16_71, constants.%tuple.type.15d [template = constants.%tuple.type.15d] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%tuple.type.15d) [template = constants.%C.88d] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%tuple.type.15d) [template = constants.%C.69b] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [template = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra1 { -// CHECK:STDOUT: %Self: %Extra1.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.a02] +// CHECK:STDOUT: %Self: %Extra1.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.66c] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1585,7 +1585,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra2 { -// CHECK:STDOUT: %Self: %Extra2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f86] +// CHECK:STDOUT: %Self: %Extra2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.2ed] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1593,7 +1593,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra3 { -// CHECK:STDOUT: %Self: %Extra3.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.9d3] +// CHECK:STDOUT: %Self: %Extra3.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.622] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1601,7 +1601,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra4 { -// CHECK:STDOUT: %Self: %Extra4.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.4fb] +// CHECK:STDOUT: %Self: %Extra4.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.234] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1609,7 +1609,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra5 { -// CHECK:STDOUT: %Self: %Extra5.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.acd] +// CHECK:STDOUT: %Self: %Extra5.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d1b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1617,7 +1617,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra6 { -// CHECK:STDOUT: %Self: %Extra6.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.27e] +// CHECK:STDOUT: %Self: %Extra6.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.aeb] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1625,7 +1625,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra7 { -// CHECK:STDOUT: %Self: %Extra7.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f8e] +// CHECK:STDOUT: %Self: %Extra7.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.b7e] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1633,7 +1633,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra8 { -// CHECK:STDOUT: %Self: %Extra8.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.0e4] +// CHECK:STDOUT: %Self: %Extra8.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f90] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1641,8 +1641,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] {} {} +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1652,7 +1652,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.b71 = fn_decl @F.2 [template = constants.%F.32b] {} {} +// CHECK:STDOUT: %F.decl: %F.type.06f = fn_decl @F.2 [template = constants.%F.13c] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -1669,7 +1669,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1689,7 +1689,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %T.patt.loc13_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.fb7) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.826) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%tuple.type.15d) { // CHECK:STDOUT: %T.loc13_9.2 => constants.%tuple.type.15d @@ -1707,14 +1707,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %C.b1d: type = class_type @C, @C(type) [template] +// CHECK:STDOUT: %C.42e: type = class_type @C, @C(type) [template] // CHECK:STDOUT: %Test.type: type = fn_type @Test [template] // CHECK:STDOUT: %Test: %Test.type = struct_value () [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.ce8: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.013: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type [template] -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.911 [template] +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.777 [template] // CHECK:STDOUT: %Extra8.type: type = facet_type <@Extra8> [template] // CHECK:STDOUT: %Extra7.type: type = facet_type <@Extra7> [template] // CHECK:STDOUT: %Extra6.type: type = facet_type <@Extra6> [template] @@ -1724,33 +1724,33 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Extra2.type: type = facet_type <@Extra2> [template] // CHECK:STDOUT: %Extra1.type: type = facet_type <@Extra1> [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (%Extra1.type, %Extra2.type, %Extra3.type, %Extra4.type, %Extra5.type, %Extra6.type, %Extra7.type, %Extra8.type) [template] -// CHECK:STDOUT: %C.d74: type = class_type @C, @C(%tuple.type) [template] +// CHECK:STDOUT: %C.074: type = class_type @C, @C(%tuple.type) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %HasExtraInterfaces: = namespace file.%HasExtraInterfaces.import, [template] { -// CHECK:STDOUT: .C = %import_ref.e8a -// CHECK:STDOUT: .I = %import_ref.9f4 +// CHECK:STDOUT: .C = %import_ref.740 +// CHECK:STDOUT: .I = %import_ref.df2 // CHECK:STDOUT: import HasExtraInterfaces//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.e8a: %C.type = import_ref HasExtraInterfaces//default, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.740: %C.type = import_ref HasExtraInterfaces//default, C, loaded [template = constants.%C.generic] // CHECK:STDOUT: %import_ref.8f2: = import_ref HasExtraInterfaces//default, loc13_20, loaded [template = constants.%complete_type] -// CHECK:STDOUT: %import_ref.495 = import_ref HasExtraInterfaces//default, inst57 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9f4: type = import_ref HasExtraInterfaces//default, I, loaded [template = constants.%I.type] -// CHECK:STDOUT: %import_ref.f8c = import_ref HasExtraInterfaces//default, inst63 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9b9: %F.assoc_type = import_ref HasExtraInterfaces//default, loc14_21, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.a15 = import_ref HasExtraInterfaces//default, F, unloaded -// CHECK:STDOUT: %import_ref.92b = import_ref HasExtraInterfaces//default, loc16_79, unloaded -// CHECK:STDOUT: %import_ref.8b6 = import_ref HasExtraInterfaces//default, inst43 [no loc], unloaded -// CHECK:STDOUT: %import_ref.8c6 = import_ref HasExtraInterfaces//default, inst39 [no loc], unloaded -// CHECK:STDOUT: %import_ref.3dd = import_ref HasExtraInterfaces//default, inst35 [no loc], unloaded -// CHECK:STDOUT: %import_ref.1a7 = import_ref HasExtraInterfaces//default, inst31 [no loc], unloaded -// CHECK:STDOUT: %import_ref.de2 = import_ref HasExtraInterfaces//default, inst27 [no loc], unloaded -// CHECK:STDOUT: %import_ref.93a = import_ref HasExtraInterfaces//default, inst23 [no loc], unloaded -// CHECK:STDOUT: %import_ref.5a8 = import_ref HasExtraInterfaces//default, inst19 [no loc], unloaded -// CHECK:STDOUT: %import_ref.4be = import_ref HasExtraInterfaces//default, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.2a6: type = import_ref HasExtraInterfaces//default, loc16_72, loaded [template = constants.%C.d74] -// CHECK:STDOUT: %import_ref.bd0: type = import_ref HasExtraInterfaces//default, loc16_77, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.4c0 = import_ref HasExtraInterfaces//default, inst57 [no loc], unloaded +// CHECK:STDOUT: %import_ref.df2: type = import_ref HasExtraInterfaces//default, I, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.e5d = import_ref HasExtraInterfaces//default, inst63 [no loc], unloaded +// CHECK:STDOUT: %import_ref.fd4: %F.assoc_type = import_ref HasExtraInterfaces//default, loc14_21, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.8b9 = import_ref HasExtraInterfaces//default, F, unloaded +// CHECK:STDOUT: %import_ref.1c8 = import_ref HasExtraInterfaces//default, loc16_79, unloaded +// CHECK:STDOUT: %import_ref.9c8 = import_ref HasExtraInterfaces//default, inst43 [no loc], unloaded +// CHECK:STDOUT: %import_ref.dfe = import_ref HasExtraInterfaces//default, inst39 [no loc], unloaded +// CHECK:STDOUT: %import_ref.6b6 = import_ref HasExtraInterfaces//default, inst35 [no loc], unloaded +// CHECK:STDOUT: %import_ref.576 = import_ref HasExtraInterfaces//default, inst31 [no loc], unloaded +// CHECK:STDOUT: %import_ref.0dd = import_ref HasExtraInterfaces//default, inst27 [no loc], unloaded +// CHECK:STDOUT: %import_ref.f83 = import_ref HasExtraInterfaces//default, inst23 [no loc], unloaded +// CHECK:STDOUT: %import_ref.975 = import_ref HasExtraInterfaces//default, inst19 [no loc], unloaded +// CHECK:STDOUT: %import_ref.a3c = import_ref HasExtraInterfaces//default, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.aa8: type = import_ref HasExtraInterfaces//default, loc16_72, loaded [template = constants.%C.074] +// CHECK:STDOUT: %import_ref.301: type = import_ref HasExtraInterfaces//default, loc16_77, loaded [template = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1760,77 +1760,77 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %HasExtraInterfaces.import = import HasExtraInterfaces // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [template = constants.%Test] { -// CHECK:STDOUT: %c.patt: %C.b1d = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %C.b1d = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: %C.42e = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %C.42e = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.b1d = value_param runtime_param0 -// CHECK:STDOUT: %.loc5: type = splice_block %C [template = constants.%C.b1d] { +// CHECK:STDOUT: %c.param: %C.42e = value_param runtime_param0 +// CHECK:STDOUT: %.loc5: type = splice_block %C [template = constants.%C.42e] { // CHECK:STDOUT: %HasExtraInterfaces.ref.loc5: = name_ref HasExtraInterfaces, imports.%HasExtraInterfaces [template = imports.%HasExtraInterfaces] -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.e8a [template = constants.%C.generic] -// CHECK:STDOUT: %C: type = class_type @C, @C(type) [template = constants.%C.b1d] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.740 [template = constants.%C.generic] +// CHECK:STDOUT: %C: type = class_type @C, @C(type) [template = constants.%C.42e] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %C.b1d = bind_name c, %c.param +// CHECK:STDOUT: %c: %C.42e = bind_name 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.%import_ref.f8c -// CHECK:STDOUT: .F = imports.%import_ref.9b9 -// CHECK:STDOUT: witness = (imports.%import_ref.a15) +// CHECK:STDOUT: .Self = imports.%import_ref.e5d +// CHECK:STDOUT: .F = imports.%import_ref.fd4 +// CHECK:STDOUT: witness = (imports.%import_ref.8b9) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra8 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.8b6 +// CHECK:STDOUT: .Self = imports.%import_ref.9c8 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra7 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.8c6 +// CHECK:STDOUT: .Self = imports.%import_ref.dfe // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra6 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.3dd +// CHECK:STDOUT: .Self = imports.%import_ref.6b6 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra5 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.1a7 +// CHECK:STDOUT: .Self = imports.%import_ref.576 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra4 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.de2 +// CHECK:STDOUT: .Self = imports.%import_ref.0dd // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra3 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.93a +// CHECK:STDOUT: .Self = imports.%import_ref.f83 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra2 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.5a8 +// CHECK:STDOUT: .Self = imports.%import_ref.975 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra1 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.4be +// CHECK:STDOUT: .Self = imports.%import_ref.a3c // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.2a6 as imports.%import_ref.bd0 [from "has_extra_interfaces.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.aa8 as imports.%import_ref.301 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.92b +// CHECK:STDOUT: witness = imports.%import_ref.1c8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(constants.%T: type) [from "has_extra_interfaces.carbon"] { @@ -1841,21 +1841,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.495 +// CHECK:STDOUT: .Self = imports.%import_ref.4c0 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Test(%c.param_patt: %C.b1d) { +// CHECK:STDOUT: fn @Test(%c.param_patt: %C.42e) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %C.b1d = name_ref c, %c +// CHECK:STDOUT: %c.ref: %C.42e = name_ref c, %c // CHECK:STDOUT: %HasExtraInterfaces.ref.loc11: = name_ref HasExtraInterfaces, imports.%HasExtraInterfaces [template = imports.%HasExtraInterfaces] -// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.9f4 [template = constants.%I.type] -// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.9b9 [template = constants.%assoc0] +// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.df2 [template = constants.%I.type] +// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.fd4 [template = constants.%assoc0] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(constants.%Self.ce8: %I.type) [from "has_extra_interfaces.carbon"] { +// CHECK:STDOUT: generic fn @F(constants.%Self.013: %I.type) [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -1872,7 +1872,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self.ce8) {} +// CHECK:STDOUT: specific @F(constants.%Self.013) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%tuple.type) { // CHECK:STDOUT: %T => constants.%tuple.type diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon index 0200a9e13a22..6fbc5785a1e5 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon @@ -58,11 +58,11 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.bc4: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T) [symbolic] // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type.bc4, %F.type [symbolic] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type.325, %F.type [symbolic] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] @@ -100,15 +100,15 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt.loc4_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_13.2)> [symbolic = %I.type (constants.%I.type.bc4)] -// CHECK:STDOUT: %Self.2: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self.2: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @I.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.bc4), @I.%F.type (%F.type) [symbolic = %F.assoc_type (constants.%F.assoc_type)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325), @I.%F.type (%F.type) [symbolic = %F.assoc_type (constants.%F.assoc_type)] // CHECK:STDOUT: %assoc0.loc4_31.2: @I.%F.assoc_type (%F.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc4_31.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.bc4) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.decl: @I.%F.type (%F.type) = fn_decl @F [symbolic = @I.%F (constants.%F)] {} {} // CHECK:STDOUT: %assoc0.loc4_31.1: @I.%F.assoc_type (%F.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc4_31.2 (constants.%assoc0)] // CHECK:STDOUT: @@ -142,7 +142,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%T.loc4_13.1: type, @I.%Self.1: @I.%I.type (%I.type.bc4)) { +// CHECK:STDOUT: generic fn @F(@I.%T.loc4_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -171,50 +171,50 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %I.type.9d1: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %F.type.8ee: type = fn_type @F.1, @I(%T) [symbolic] -// CHECK:STDOUT: %F.129: %F.type.8ee = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.351: type = assoc_entity_type %I.type.9d1, %F.type.8ee [symbolic] -// CHECK:STDOUT: %assoc0.fd0: %F.assoc_type.351 = assoc_entity element0, imports.%import_ref.8d8 [symbolic] -// CHECK:STDOUT: %I.type.da1: type = facet_type <@I, @I(%InInterfaceArgs)> [template] -// CHECK:STDOUT: %F.type.5dc: type = fn_type @F.1, @I(%InInterfaceArgs) [template] -// CHECK:STDOUT: %F.55d: %F.type.5dc = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.800: type = assoc_entity_type %I.type.da1, %F.type.5dc [template] -// CHECK:STDOUT: %assoc0.d7d: %F.assoc_type.800 = assoc_entity element0, imports.%import_ref.8d8 [template] +// CHECK:STDOUT: %F.type.2ae: type = fn_type @F.1, @I(%T) [symbolic] +// CHECK:STDOUT: %F.bb2: %F.type.2ae = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003: type = assoc_entity_type %I.type.325, %F.type.2ae [symbolic] +// CHECK:STDOUT: %assoc0.ed5: %F.assoc_type.003 = assoc_entity element0, imports.%import_ref.479 [symbolic] +// CHECK:STDOUT: %I.type.e45: type = facet_type <@I, @I(%InInterfaceArgs)> [template] +// CHECK:STDOUT: %F.type.14f: type = fn_type @F.1, @I(%InInterfaceArgs) [template] +// CHECK:STDOUT: %F.b81: %F.type.14f = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.992: type = assoc_entity_type %I.type.e45, %F.type.14f [template] +// CHECK:STDOUT: %assoc0.ad0: %F.assoc_type.992 = assoc_entity element0, imports.%import_ref.479 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.2a0: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.eb4: %F.type.2a0 = struct_value () [template] -// CHECK:STDOUT: %I.facet: %I.type.9d1 = facet_value %X, %impl_witness [symbolic] +// CHECK:STDOUT: %F.type.b63: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.d5f: %F.type.b63 = struct_value () [template] +// CHECK:STDOUT: %I.facet: %I.type.325 = facet_value %X, %impl_witness [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.848: %I.type.dac = import_ref Main//types, I, loaded [template = constants.%I.generic] -// CHECK:STDOUT: %import_ref.208 = import_ref Main//types, C, unloaded -// CHECK:STDOUT: %import_ref.58f: type = import_ref Main//types, X, loaded [template = constants.%X] +// CHECK:STDOUT: %import_ref.9f4: %I.type.dac = import_ref Main//types, I, loaded [template = constants.%I.generic] +// CHECK:STDOUT: %import_ref.148 = import_ref Main//types, C, unloaded +// CHECK:STDOUT: %import_ref.686: type = import_ref Main//types, X, loaded [template = constants.%X] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//types, loc7_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.acf = import_ref Main//types, inst54 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9c1 = import_ref Main//types, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.355 = import_ref Main//types, loc4_31, unloaded -// CHECK:STDOUT: %import_ref.938: @I.%F.type (%F.type.8ee) = import_ref Main//types, F, loaded [symbolic = @I.%F (constants.%F.129)] -// CHECK:STDOUT: %import_ref.8d8 = import_ref Main//types, loc4_31, unloaded +// CHECK:STDOUT: %import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.182 = import_ref Main//types, loc4_31, unloaded +// CHECK:STDOUT: %import_ref.87f: @I.%F.type (%F.type.2ae) = import_ref Main//types, F, loaded [symbolic = @I.%F (constants.%F.bb2)] +// CHECK:STDOUT: %import_ref.479 = import_ref Main//types, loc4_31, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .I = imports.%import_ref.848 -// CHECK:STDOUT: .C = imports.%import_ref.208 -// CHECK:STDOUT: .X = imports.%import_ref.58f +// CHECK:STDOUT: .I = imports.%import_ref.9f4 +// CHECK:STDOUT: .C = imports.%import_ref.148 +// CHECK:STDOUT: .X = imports.%import_ref.686 // CHECK:STDOUT: .InInterfaceArgs = %InInterfaceArgs.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %InInterfaceArgs.decl: type = class_decl @InInterfaceArgs [template = constants.%InInterfaceArgs] {} {} // CHECK:STDOUT: impl_decl @impl [template] {} { -// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%import_ref.58f [template = constants.%X] -// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.848 [template = constants.%I.generic] +// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%import_ref.686 [template = constants.%X] +// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.9f4 [template = constants.%I.generic] // CHECK:STDOUT: %InInterfaceArgs.ref: type = name_ref InInterfaceArgs, file.%InInterfaceArgs.decl [template = constants.%InInterfaceArgs] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [template = constants.%I.type.da1] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [template = constants.%I.type.e45] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } @@ -224,23 +224,23 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.9d1)] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T) [symbolic = %F.type (constants.%F.type.8ee)] -// CHECK:STDOUT: %F: @I.%F.type (%F.type.8ee) = struct_value () [symbolic = %F (constants.%F.129)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.9d1), @I.%F.type (%F.type.8ee) [symbolic = %F.assoc_type (constants.%F.assoc_type.351)] -// CHECK:STDOUT: %assoc0: @I.%F.assoc_type (%F.assoc_type.351) = assoc_entity element0, imports.%import_ref.8d8 [symbolic = %assoc0 (constants.%assoc0.fd0)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T) [symbolic = %F.type (constants.%F.type.2ae)] +// CHECK:STDOUT: %F: @I.%F.type (%F.type.2ae) = struct_value () [symbolic = %F (constants.%F.bb2)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325), @I.%F.type (%F.type.2ae) [symbolic = %F.assoc_type (constants.%F.assoc_type.003)] +// CHECK:STDOUT: %assoc0: @I.%F.assoc_type (%F.assoc_type.003) = assoc_entity element0, imports.%import_ref.479 [symbolic = %assoc0 (constants.%assoc0.ed5)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.9c1 -// CHECK:STDOUT: .F = imports.%import_ref.355 -// CHECK:STDOUT: witness = (imports.%import_ref.938) +// CHECK:STDOUT: .Self = imports.%import_ref.884 +// CHECK:STDOUT: .F = imports.%import_ref.182 +// CHECK:STDOUT: witness = (imports.%import_ref.87f) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %X.ref as %I.type { -// CHECK:STDOUT: %F.decl: %F.type.2a0 = fn_decl @F.2 [template = constants.%F.eb4] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b63 = fn_decl @F.2 [template = constants.%F.d5f] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -261,7 +261,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.9d1) [from "types.carbon"] { +// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.325) [from "types.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -285,12 +285,12 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt => constants.%InInterfaceArgs // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.da1 +// CHECK:STDOUT: %I.type => constants.%I.type.e45 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.5dc -// CHECK:STDOUT: %F => constants.%F.55d -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.800 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d7d +// CHECK:STDOUT: %F.type => constants.%F.type.14f +// CHECK:STDOUT: %F => constants.%F.b81 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.992 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ad0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%InInterfaceArgs, constants.%I.facet) {} @@ -307,49 +307,49 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %I.type.9d1: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %F.type.8ee: type = fn_type @F.1, @I(%T) [symbolic] -// CHECK:STDOUT: %F.129: %F.type.8ee = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.351: type = assoc_entity_type %I.type.9d1, %F.type.8ee [symbolic] -// CHECK:STDOUT: %assoc0.fd0b7a.1: %F.assoc_type.351 = assoc_entity element0, imports.%import_ref.8d80ba.1 [symbolic] +// CHECK:STDOUT: %F.type.2ae: type = fn_type @F.1, @I(%T) [symbolic] +// CHECK:STDOUT: %F.bb2: %F.type.2ae = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003: type = assoc_entity_type %I.type.325, %F.type.2ae [symbolic] +// CHECK:STDOUT: %assoc0.ed59f4.1: %F.assoc_type.003 = assoc_entity element0, imports.%import_ref.479b0f.1 [symbolic] // CHECK:STDOUT: %InInterfaceArgs: type = class_type @InInterfaceArgs [template] -// CHECK:STDOUT: %I.type.da1: type = facet_type <@I, @I(%InInterfaceArgs)> [template] -// CHECK:STDOUT: %F.type.5dc: type = fn_type @F.1, @I(%InInterfaceArgs) [template] -// CHECK:STDOUT: %F.55d: %F.type.5dc = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.800: type = assoc_entity_type %I.type.da1, %F.type.5dc [template] -// CHECK:STDOUT: %assoc0.d7d: %F.assoc_type.800 = assoc_entity element0, imports.%import_ref.8d80ba.1 [template] -// CHECK:STDOUT: %assoc0.fd0b7a.2: %F.assoc_type.351 = assoc_entity element0, imports.%import_ref.8d80ba.2 [symbolic] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.a9d) [template] -// CHECK:STDOUT: %F.type.461: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.479: %F.type.461 = struct_value () [template] +// CHECK:STDOUT: %I.type.e45: type = facet_type <@I, @I(%InInterfaceArgs)> [template] +// CHECK:STDOUT: %F.type.14f: type = fn_type @F.1, @I(%InInterfaceArgs) [template] +// CHECK:STDOUT: %F.b81: %F.type.14f = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.992: type = assoc_entity_type %I.type.e45, %F.type.14f [template] +// CHECK:STDOUT: %assoc0.ad0: %F.assoc_type.992 = assoc_entity element0, imports.%import_ref.479b0f.1 [template] +// CHECK:STDOUT: %assoc0.ed59f4.2: %F.assoc_type.003 = assoc_entity element0, imports.%import_ref.479b0f.2 [symbolic] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.7f5) [template] +// CHECK:STDOUT: %F.type.b63: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.d5f: %F.type.b63 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.848: %I.type.dac = import_ref Main//types, I, loaded [template = constants.%I.generic] -// CHECK:STDOUT: %import_ref.208 = import_ref Main//types, C, unloaded -// CHECK:STDOUT: %import_ref.58f: type = import_ref Main//types, X, loaded [template = constants.%X] -// CHECK:STDOUT: %import_ref.4a4: type = import_ref Main//impl_in_interface_args, InInterfaceArgs, loaded [template = constants.%InInterfaceArgs] +// CHECK:STDOUT: %import_ref.9f4: %I.type.dac = import_ref Main//types, I, loaded [template = constants.%I.generic] +// CHECK:STDOUT: %import_ref.148 = import_ref Main//types, C, unloaded +// CHECK:STDOUT: %import_ref.686: type = import_ref Main//types, X, loaded [template = constants.%X] +// CHECK:STDOUT: %import_ref.33d: type = import_ref Main//impl_in_interface_args, InInterfaceArgs, loaded [template = constants.%InInterfaceArgs] // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//types, loc7_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.acf = import_ref Main//types, inst54 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9c1 = import_ref Main//types, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.336: @I.%F.assoc_type (%F.assoc_type.351) = import_ref Main//types, loc4_31, loaded [symbolic = @I.%assoc0 (constants.%assoc0.fd0b7a.2)] -// CHECK:STDOUT: %import_ref.3d2 = import_ref Main//types, F, unloaded -// CHECK:STDOUT: %import_ref.8d80ba.1 = import_ref Main//types, loc4_31, unloaded +// CHECK:STDOUT: %import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.4ed: @I.%F.assoc_type (%F.assoc_type.003) = import_ref Main//types, loc4_31, loaded [symbolic = @I.%assoc0 (constants.%assoc0.ed59f4.2)] +// CHECK:STDOUT: %import_ref.e3f = import_ref Main//types, F, unloaded +// CHECK:STDOUT: %import_ref.479b0f.1 = import_ref Main//types, loc4_31, unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//impl_in_interface_args, loc5_24, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.bf8 = import_ref Main//impl_in_interface_args, inst18 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9b8: = import_ref Main//impl_in_interface_args, loc7_30, loaded [template = constants.%impl_witness] -// CHECK:STDOUT: %import_ref.0ae: type = import_ref Main//impl_in_interface_args, loc7_6, loaded [template = constants.%X] -// CHECK:STDOUT: %import_ref.927: type = import_ref Main//impl_in_interface_args, loc7_28, loaded [template = constants.%I.type.da1] +// CHECK:STDOUT: %import_ref.f9f: = import_ref Main//impl_in_interface_args, loc7_30, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.956: type = import_ref Main//impl_in_interface_args, loc7_6, loaded [template = constants.%X] +// CHECK:STDOUT: %import_ref.e8c: type = import_ref Main//impl_in_interface_args, loc7_28, loaded [template = constants.%I.type.e45] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .I = imports.%import_ref.848 -// CHECK:STDOUT: .C = imports.%import_ref.208 -// CHECK:STDOUT: .X = imports.%import_ref.58f -// CHECK:STDOUT: .InInterfaceArgs = imports.%import_ref.4a4 +// CHECK:STDOUT: .I = imports.%import_ref.9f4 +// CHECK:STDOUT: .C = imports.%import_ref.148 +// CHECK:STDOUT: .X = imports.%import_ref.686 +// CHECK:STDOUT: .InInterfaceArgs = imports.%import_ref.33d // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -358,7 +358,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %x.param_patt: %X = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %X = value_param runtime_param0 -// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%import_ref.58f [template = constants.%X] +// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%import_ref.686 [template = constants.%X] // CHECK:STDOUT: %x: %X = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -368,24 +368,24 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.9d1)] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T) [symbolic = %F.type (constants.%F.type.8ee)] -// CHECK:STDOUT: %F: @I.%F.type (%F.type.8ee) = struct_value () [symbolic = %F (constants.%F.129)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.9d1), @I.%F.type (%F.type.8ee) [symbolic = %F.assoc_type (constants.%F.assoc_type.351)] -// CHECK:STDOUT: %assoc0: @I.%F.assoc_type (%F.assoc_type.351) = assoc_entity element0, imports.%import_ref.8d80ba.1 [symbolic = %assoc0 (constants.%assoc0.fd0b7a.1)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T) [symbolic = %F.type (constants.%F.type.2ae)] +// CHECK:STDOUT: %F: @I.%F.type (%F.type.2ae) = struct_value () [symbolic = %F (constants.%F.bb2)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325), @I.%F.type (%F.type.2ae) [symbolic = %F.assoc_type (constants.%F.assoc_type.003)] +// CHECK:STDOUT: %assoc0: @I.%F.assoc_type (%F.assoc_type.003) = assoc_entity element0, imports.%import_ref.479b0f.1 [symbolic = %assoc0 (constants.%assoc0.ed59f4.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.9c1 -// CHECK:STDOUT: .F = imports.%import_ref.336 -// CHECK:STDOUT: witness = (imports.%import_ref.3d2) +// CHECK:STDOUT: .Self = imports.%import_ref.884 +// CHECK:STDOUT: .F = imports.%import_ref.4ed +// CHECK:STDOUT: witness = (imports.%import_ref.e3f) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.0ae as imports.%import_ref.927 [from "impl_in_interface_args.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.956 as imports.%import_ref.e8c [from "impl_in_interface_args.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.9b8 +// CHECK:STDOUT: witness = imports.%import_ref.f9f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @X [from "types.carbon"] { @@ -403,17 +403,17 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: fn @G(%x.param_patt: %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: %X = name_ref x, %x -// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.848 [template = constants.%I.generic] -// CHECK:STDOUT: %InInterfaceArgs.ref: type = name_ref InInterfaceArgs, imports.%import_ref.4a4 [template = constants.%InInterfaceArgs] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [template = constants.%I.type.da1] -// CHECK:STDOUT: %.loc6: %F.assoc_type.800 = specific_constant imports.%import_ref.336, @I(constants.%InInterfaceArgs) [template = constants.%assoc0.d7d] -// CHECK:STDOUT: %F.ref: %F.assoc_type.800 = name_ref F, %.loc6 [template = constants.%assoc0.d7d] -// CHECK:STDOUT: %impl.elem0: %F.type.5dc = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.479] +// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.9f4 [template = constants.%I.generic] +// CHECK:STDOUT: %InInterfaceArgs.ref: type = name_ref InInterfaceArgs, imports.%import_ref.33d [template = constants.%InInterfaceArgs] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [template = constants.%I.type.e45] +// CHECK:STDOUT: %.loc6: %F.assoc_type.992 = specific_constant imports.%import_ref.4ed, @I(constants.%InInterfaceArgs) [template = constants.%assoc0.ad0] +// CHECK:STDOUT: %F.ref: %F.assoc_type.992 = name_ref F, %.loc6 [template = constants.%assoc0.ad0] +// CHECK:STDOUT: %impl.elem0: %F.type.14f = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.d5f] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.9d1) [from "types.carbon"] { +// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.325) [from "types.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -434,12 +434,12 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt => constants.%InInterfaceArgs // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.da1 +// CHECK:STDOUT: %I.type => constants.%I.type.e45 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.5dc -// CHECK:STDOUT: %F => constants.%F.55d -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.800 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d7d +// CHECK:STDOUT: %F.type => constants.%F.type.14f +// CHECK:STDOUT: %F => constants.%F.b81 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.992 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ad0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- impl_in_class_args.carbon @@ -452,57 +452,57 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %C.5b1: type = class_type @C, @C(%InClassArgs) [template] +// CHECK:STDOUT: %C.23b: type = class_type @C, @C(%InClassArgs) [template] // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.9d1: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %F.type.8ee: type = fn_type @F.1, @I(%T) [symbolic] -// CHECK:STDOUT: %F.129: %F.type.8ee = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.351: type = assoc_entity_type %I.type.9d1, %F.type.8ee [symbolic] -// CHECK:STDOUT: %assoc0.fd0: %F.assoc_type.351 = assoc_entity element0, imports.%import_ref.8d8 [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %F.type.2ae: type = fn_type @F.1, @I(%T) [symbolic] +// CHECK:STDOUT: %F.bb2: %F.type.2ae = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003: type = assoc_entity_type %I.type.325, %F.type.2ae [symbolic] +// CHECK:STDOUT: %assoc0.ed5: %F.assoc_type.003 = assoc_entity element0, imports.%import_ref.479 [symbolic] // CHECK:STDOUT: %X: type = class_type @X [template] -// CHECK:STDOUT: %I.type.914: type = facet_type <@I, @I(%X)> [template] -// CHECK:STDOUT: %F.type.ea3: type = fn_type @F.1, @I(%X) [template] -// CHECK:STDOUT: %F.e0e: %F.type.ea3 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.f41: type = assoc_entity_type %I.type.914, %F.type.ea3 [template] -// CHECK:STDOUT: %assoc0.7c3: %F.assoc_type.f41 = assoc_entity element0, imports.%import_ref.8d8 [template] +// CHECK:STDOUT: %I.type.45c: type = facet_type <@I, @I(%X)> [template] +// CHECK:STDOUT: %F.type.56a: type = fn_type @F.1, @I(%X) [template] +// CHECK:STDOUT: %F.a79: %F.type.56a = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.2e0: type = assoc_entity_type %I.type.45c, %F.type.56a [template] +// CHECK:STDOUT: %assoc0.ef3: %F.assoc_type.2e0 = assoc_entity element0, imports.%import_ref.479 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.73d: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.e0f: %F.type.73d = struct_value () [template] -// CHECK:STDOUT: %I.facet: %I.type.9d1 = facet_value %C.5b1, %impl_witness [symbolic] +// CHECK:STDOUT: %F.type.fab: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.7ab: %F.type.fab = struct_value () [template] +// CHECK:STDOUT: %I.facet: %I.type.325 = facet_value %C.23b, %impl_witness [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.848: %I.type.dac = import_ref Main//types, I, loaded [template = constants.%I.generic] -// CHECK:STDOUT: %import_ref.26e: %C.type = import_ref Main//types, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.58f: type = import_ref Main//types, X, loaded [template = constants.%X] +// CHECK:STDOUT: %import_ref.9f4: %I.type.dac = import_ref Main//types, I, loaded [template = constants.%I.generic] +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Main//types, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.686: type = import_ref Main//types, X, loaded [template = constants.%X] // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//types, loc5_20, loaded [template = constants.%complete_type] -// CHECK:STDOUT: %import_ref.495 = import_ref Main//types, inst49 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9c1 = import_ref Main//types, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.355 = import_ref Main//types, loc4_31, unloaded -// CHECK:STDOUT: %import_ref.938: @I.%F.type (%F.type.8ee) = import_ref Main//types, F, loaded [symbolic = @I.%F (constants.%F.129)] -// CHECK:STDOUT: %import_ref.8d8 = import_ref Main//types, loc4_31, unloaded +// CHECK:STDOUT: %import_ref.4c0 = import_ref Main//types, inst49 [no loc], unloaded +// CHECK:STDOUT: %import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.182 = import_ref Main//types, loc4_31, unloaded +// CHECK:STDOUT: %import_ref.87f: @I.%F.type (%F.type.2ae) = import_ref Main//types, F, loaded [symbolic = @I.%F (constants.%F.bb2)] +// CHECK:STDOUT: %import_ref.479 = import_ref Main//types, loc4_31, unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//types, loc7_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.acf = import_ref Main//types, inst54 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .I = imports.%import_ref.848 -// CHECK:STDOUT: .C = imports.%import_ref.26e -// CHECK:STDOUT: .X = imports.%import_ref.58f +// CHECK:STDOUT: .I = imports.%import_ref.9f4 +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .X = imports.%import_ref.686 // CHECK:STDOUT: .InClassArgs = %InClassArgs.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %InClassArgs.decl: type = class_decl @InClassArgs [template = constants.%InClassArgs] {} {} // CHECK:STDOUT: impl_decl @impl [template] {} { -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.26e [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.bb9 [template = constants.%C.generic] // CHECK:STDOUT: %InClassArgs.ref: type = name_ref InClassArgs, file.%InClassArgs.decl [template = constants.%InClassArgs] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%InClassArgs) [template = constants.%C.5b1] -// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.848 [template = constants.%I.generic] -// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%import_ref.58f [template = constants.%X] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [template = constants.%I.type.914] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%InClassArgs) [template = constants.%C.23b] +// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.9f4 [template = constants.%I.generic] +// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%import_ref.686 [template = constants.%X] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [template = constants.%I.type.45c] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } @@ -512,23 +512,23 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.9d1)] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T) [symbolic = %F.type (constants.%F.type.8ee)] -// CHECK:STDOUT: %F: @I.%F.type (%F.type.8ee) = struct_value () [symbolic = %F (constants.%F.129)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.9d1), @I.%F.type (%F.type.8ee) [symbolic = %F.assoc_type (constants.%F.assoc_type.351)] -// CHECK:STDOUT: %assoc0: @I.%F.assoc_type (%F.assoc_type.351) = assoc_entity element0, imports.%import_ref.8d8 [symbolic = %assoc0 (constants.%assoc0.fd0)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T) [symbolic = %F.type (constants.%F.type.2ae)] +// CHECK:STDOUT: %F: @I.%F.type (%F.type.2ae) = struct_value () [symbolic = %F (constants.%F.bb2)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325), @I.%F.type (%F.type.2ae) [symbolic = %F.assoc_type (constants.%F.assoc_type.003)] +// CHECK:STDOUT: %assoc0: @I.%F.assoc_type (%F.assoc_type.003) = assoc_entity element0, imports.%import_ref.479 [symbolic = %assoc0 (constants.%assoc0.ed5)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.9c1 -// CHECK:STDOUT: .F = imports.%import_ref.355 -// CHECK:STDOUT: witness = (imports.%import_ref.938) +// CHECK:STDOUT: .Self = imports.%import_ref.884 +// CHECK:STDOUT: .F = imports.%import_ref.182 +// CHECK:STDOUT: witness = (imports.%import_ref.87f) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C as %I.type { -// CHECK:STDOUT: %F.decl: %F.type.73d = fn_decl @F.2 [template = constants.%F.e0f] {} {} +// CHECK:STDOUT: %F.decl: %F.type.fab = fn_decl @F.2 [template = constants.%F.7ab] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -551,7 +551,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.495 +// CHECK:STDOUT: .Self = imports.%import_ref.4c0 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.1 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -562,7 +562,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.9d1) [from "types.carbon"] { +// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.325) [from "types.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -596,12 +596,12 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.914 +// CHECK:STDOUT: %I.type => constants.%I.type.45c // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.ea3 -// CHECK:STDOUT: %F => constants.%F.e0e -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.f41 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.7c3 +// CHECK:STDOUT: %F.type => constants.%F.type.56a +// CHECK:STDOUT: %F => constants.%F.a79 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.2e0 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%X, constants.%I.facet) {} @@ -617,69 +617,69 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %InClassArgs: type = class_type @InClassArgs [template] -// CHECK:STDOUT: %C.5b1: type = class_type @C, @C(%InClassArgs) [template] +// CHECK:STDOUT: %C.23b: type = class_type @C, @C(%InClassArgs) [template] // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.9d1: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %F.type.8ee: type = fn_type @F.1, @I(%T) [symbolic] -// CHECK:STDOUT: %F.129: %F.type.8ee = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.351: type = assoc_entity_type %I.type.9d1, %F.type.8ee [symbolic] -// CHECK:STDOUT: %assoc0.fd0b7a.1: %F.assoc_type.351 = assoc_entity element0, imports.%import_ref.8d80ba.1 [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %F.type.2ae: type = fn_type @F.1, @I(%T) [symbolic] +// CHECK:STDOUT: %F.bb2: %F.type.2ae = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003: type = assoc_entity_type %I.type.325, %F.type.2ae [symbolic] +// CHECK:STDOUT: %assoc0.ed59f4.1: %F.assoc_type.003 = assoc_entity element0, imports.%import_ref.479b0f.1 [symbolic] // CHECK:STDOUT: %X: type = class_type @X [template] -// CHECK:STDOUT: %I.type.914: type = facet_type <@I, @I(%X)> [template] -// CHECK:STDOUT: %F.type.ea3: type = fn_type @F.1, @I(%X) [template] -// CHECK:STDOUT: %F.e0e: %F.type.ea3 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.f41: type = assoc_entity_type %I.type.914, %F.type.ea3 [template] -// CHECK:STDOUT: %assoc0.7c3: %F.assoc_type.f41 = assoc_entity element0, imports.%import_ref.8d80ba.1 [template] -// CHECK:STDOUT: %assoc0.fd0b7a.2: %F.assoc_type.351 = assoc_entity element0, imports.%import_ref.8d80ba.2 [symbolic] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.8f2f) [template] -// CHECK:STDOUT: %F.type.563: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.6f3: %F.type.563 = struct_value () [template] +// CHECK:STDOUT: %I.type.45c: type = facet_type <@I, @I(%X)> [template] +// CHECK:STDOUT: %F.type.56a: type = fn_type @F.1, @I(%X) [template] +// CHECK:STDOUT: %F.a79: %F.type.56a = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.2e0: type = assoc_entity_type %I.type.45c, %F.type.56a [template] +// CHECK:STDOUT: %assoc0.ef3: %F.assoc_type.2e0 = assoc_entity element0, imports.%import_ref.479b0f.1 [template] +// CHECK:STDOUT: %assoc0.ed59f4.2: %F.assoc_type.003 = assoc_entity element0, imports.%import_ref.479b0f.2 [symbolic] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.ae4) [template] +// CHECK:STDOUT: %F.type.fab: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.7ab: %F.type.fab = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.848: %I.type.dac = import_ref Main//types, I, loaded [template = constants.%I.generic] -// CHECK:STDOUT: %import_ref.26e: %C.type = import_ref Main//types, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.58f: type = import_ref Main//types, X, loaded [template = constants.%X] -// CHECK:STDOUT: %import_ref.4d5: type = import_ref Main//impl_in_class_args, InClassArgs, loaded [template = constants.%InClassArgs] +// CHECK:STDOUT: %import_ref.9f4: %I.type.dac = import_ref Main//types, I, loaded [template = constants.%I.generic] +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Main//types, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.686: type = import_ref Main//types, X, loaded [template = constants.%X] +// CHECK:STDOUT: %import_ref.4a9: type = import_ref Main//impl_in_class_args, InClassArgs, loaded [template = constants.%InClassArgs] // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//types, loc5_20, loaded [template = constants.%complete_type] -// CHECK:STDOUT: %import_ref.495 = import_ref Main//types, inst49 [no loc], unloaded +// CHECK:STDOUT: %import_ref.4c0 = import_ref Main//types, inst49 [no loc], unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//impl_in_class_args, loc5_20, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.683 = import_ref Main//impl_in_class_args, inst18 [no loc], unloaded -// CHECK:STDOUT: %import_ref.9c1 = import_ref Main//types, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.336: @I.%F.assoc_type (%F.assoc_type.351) = import_ref Main//types, loc4_31, loaded [symbolic = @I.%assoc0 (constants.%assoc0.fd0b7a.2)] -// CHECK:STDOUT: %import_ref.3d2 = import_ref Main//types, F, unloaded -// CHECK:STDOUT: %import_ref.8d80ba.1 = import_ref Main//types, loc4_31, unloaded +// CHECK:STDOUT: %import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.4ed: @I.%F.assoc_type (%F.assoc_type.003) = import_ref Main//types, loc4_31, loaded [symbolic = @I.%assoc0 (constants.%assoc0.ed59f4.2)] +// CHECK:STDOUT: %import_ref.e3f = import_ref Main//types, F, unloaded +// CHECK:STDOUT: %import_ref.479b0f.1 = import_ref Main//types, loc4_31, unloaded // CHECK:STDOUT: %import_ref.8f24d3.3: = import_ref Main//types, loc7_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.acf = import_ref Main//types, inst54 [no loc], unloaded -// CHECK:STDOUT: %import_ref.74e: = import_ref Main//impl_in_class_args, loc7_29, loaded [template = constants.%impl_witness] -// CHECK:STDOUT: %import_ref.829: type = import_ref Main//impl_in_class_args, loc7_19, loaded [template = constants.%C.5b1] -// CHECK:STDOUT: %import_ref.022: type = import_ref Main//impl_in_class_args, loc7_27, loaded [template = constants.%I.type.914] +// CHECK:STDOUT: %import_ref.6de: = import_ref Main//impl_in_class_args, loc7_29, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.d6e: type = import_ref Main//impl_in_class_args, loc7_19, loaded [template = constants.%C.23b] +// CHECK:STDOUT: %import_ref.208: type = import_ref Main//impl_in_class_args, loc7_27, loaded [template = constants.%I.type.45c] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .I = imports.%import_ref.848 -// CHECK:STDOUT: .C = imports.%import_ref.26e -// CHECK:STDOUT: .X = imports.%import_ref.58f -// CHECK:STDOUT: .InClassArgs = imports.%import_ref.4d5 +// CHECK:STDOUT: .I = imports.%import_ref.9f4 +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .X = imports.%import_ref.686 +// CHECK:STDOUT: .InClassArgs = imports.%import_ref.4a9 // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] { -// CHECK:STDOUT: %c.patt: %C.5b1 = binding_pattern c -// CHECK:STDOUT: %c.param_patt: %C.5b1 = value_param_pattern %c.patt, runtime_param0 +// CHECK:STDOUT: %c.patt: %C.23b = binding_pattern c +// CHECK:STDOUT: %c.param_patt: %C.23b = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.5b1 = value_param runtime_param0 -// CHECK:STDOUT: %.loc6_22: type = splice_block %C [template = constants.%C.5b1] { -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.26e [template = constants.%C.generic] -// CHECK:STDOUT: %InClassArgs.ref: type = name_ref InClassArgs, imports.%import_ref.4d5 [template = constants.%InClassArgs] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%InClassArgs) [template = constants.%C.5b1] +// CHECK:STDOUT: %c.param: %C.23b = value_param runtime_param0 +// CHECK:STDOUT: %.loc6_22: type = splice_block %C [template = constants.%C.23b] { +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.bb9 [template = constants.%C.generic] +// CHECK:STDOUT: %InClassArgs.ref: type = name_ref InClassArgs, imports.%import_ref.4a9 [template = constants.%InClassArgs] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%InClassArgs) [template = constants.%C.23b] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %C.5b1 = bind_name c, %c.param +// CHECK:STDOUT: %c: %C.23b = bind_name c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -688,24 +688,24 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.9d1)] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T) [symbolic = %F.type (constants.%F.type.8ee)] -// CHECK:STDOUT: %F: @I.%F.type (%F.type.8ee) = struct_value () [symbolic = %F (constants.%F.129)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.9d1), @I.%F.type (%F.type.8ee) [symbolic = %F.assoc_type (constants.%F.assoc_type.351)] -// CHECK:STDOUT: %assoc0: @I.%F.assoc_type (%F.assoc_type.351) = assoc_entity element0, imports.%import_ref.8d80ba.1 [symbolic = %assoc0 (constants.%assoc0.fd0b7a.1)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T) [symbolic = %F.type (constants.%F.type.2ae)] +// CHECK:STDOUT: %F: @I.%F.type (%F.type.2ae) = struct_value () [symbolic = %F (constants.%F.bb2)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325), @I.%F.type (%F.type.2ae) [symbolic = %F.assoc_type (constants.%F.assoc_type.003)] +// CHECK:STDOUT: %assoc0: @I.%F.assoc_type (%F.assoc_type.003) = assoc_entity element0, imports.%import_ref.479b0f.1 [symbolic = %assoc0 (constants.%assoc0.ed59f4.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.9c1 -// CHECK:STDOUT: .F = imports.%import_ref.336 -// CHECK:STDOUT: witness = (imports.%import_ref.3d2) +// CHECK:STDOUT: .Self = imports.%import_ref.884 +// CHECK:STDOUT: .F = imports.%import_ref.4ed +// CHECK:STDOUT: witness = (imports.%import_ref.e3f) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.829 as imports.%import_ref.022 [from "impl_in_class_args.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.d6e as imports.%import_ref.208 [from "impl_in_class_args.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.74e +// CHECK:STDOUT: witness = imports.%import_ref.6de // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(constants.%T: type) [from "types.carbon"] { @@ -716,7 +716,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.495 +// CHECK:STDOUT: .Self = imports.%import_ref.4c0 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.1 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -733,20 +733,20 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @H(%c.param_patt: %C.5b1) { +// CHECK:STDOUT: fn @H(%c.param_patt: %C.23b) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %C.5b1 = name_ref c, %c -// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.848 [template = constants.%I.generic] -// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%import_ref.58f [template = constants.%X] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [template = constants.%I.type.914] -// CHECK:STDOUT: %.loc6_34: %F.assoc_type.f41 = specific_constant imports.%import_ref.336, @I(constants.%X) [template = constants.%assoc0.7c3] -// CHECK:STDOUT: %F.ref: %F.assoc_type.f41 = name_ref F, %.loc6_34 [template = constants.%assoc0.7c3] -// CHECK:STDOUT: %impl.elem0: %F.type.ea3 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.6f3] +// CHECK:STDOUT: %c.ref: %C.23b = name_ref c, %c +// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.9f4 [template = constants.%I.generic] +// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%import_ref.686 [template = constants.%X] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [template = constants.%I.type.45c] +// CHECK:STDOUT: %.loc6_34: %F.assoc_type.2e0 = specific_constant imports.%import_ref.4ed, @I(constants.%X) [template = constants.%assoc0.ef3] +// CHECK:STDOUT: %F.ref: %F.assoc_type.2e0 = name_ref F, %.loc6_34 [template = constants.%assoc0.ef3] +// CHECK:STDOUT: %impl.elem0: %F.type.56a = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.7ab] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.9d1) [from "types.carbon"] { +// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.325) [from "types.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -779,11 +779,11 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.patt => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.914 +// CHECK:STDOUT: %I.type => constants.%I.type.45c // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.ea3 -// CHECK:STDOUT: %F => constants.%F.e0e -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.f41 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.7c3 +// CHECK:STDOUT: %F.type => constants.%F.type.56a +// CHECK:STDOUT: %F => constants.%F.a79 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.2e0 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index f64522db527f..f5f6519deba3 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -96,28 +96,28 @@ fn Call() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.e0c: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.983: %F.type.e0c = struct_value () [template] +// CHECK:STDOUT: %F.type.5d6: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.a2e: %F.type.5d6 = struct_value () [template] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.9f4: type = import_ref Main//i, I, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.df2: type = import_ref Main//i, I, loaded [template = constants.%I.type] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.f8c = import_ref Main//i, inst17 [no loc], unloaded -// CHECK:STDOUT: %import_ref.e20 = import_ref Main//i, loc4_21, unloaded -// CHECK:STDOUT: %import_ref.95d: %F.type.9df = import_ref Main//i, F, loaded [template = constants.%F.478] +// CHECK:STDOUT: %import_ref.e5d = import_ref Main//i, inst17 [no loc], unloaded +// CHECK:STDOUT: %import_ref.4a0 = import_ref Main//i, loc4_21, unloaded +// CHECK:STDOUT: %import_ref.05a: %F.type.cf0 = import_ref Main//i, F, loaded [template = constants.%F.bc6] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .I = imports.%import_ref.9f4 +// CHECK:STDOUT: .I = imports.%import_ref.df2 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: } @@ -126,20 +126,20 @@ fn Call() { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: impl_decl @impl [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.9f4 [template = constants.%I.type] +// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.df2 [template = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "i.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.f8c -// CHECK:STDOUT: .F = imports.%import_ref.e20 -// CHECK:STDOUT: witness = (imports.%import_ref.95d) +// CHECK:STDOUT: .Self = imports.%import_ref.e5d +// CHECK:STDOUT: .F = imports.%import_ref.4a0 +// CHECK:STDOUT: witness = (imports.%import_ref.05a) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.e0c = fn_decl @F.2 [template = constants.%F.983] {} {} +// CHECK:STDOUT: %F.decl: %F.type.5d6 = fn_decl @F.2 [template = constants.%F.a2e] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -179,7 +179,7 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//c, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//c, C, loaded [template = constants.%C] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -190,7 +190,7 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .Get = %Get.decl // CHECK:STDOUT: } @@ -200,7 +200,7 @@ fn Call() { // CHECK:STDOUT: %return.patt: %C = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %C = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %return.param: ref %C = out_param runtime_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -227,35 +227,35 @@ fn Call() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.911 [template] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.ba1) [template] -// CHECK:STDOUT: %F.type.731: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.2a3: %F.type.731 = struct_value () [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.777 [template] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.742) [template] +// CHECK:STDOUT: %F.type.5d6: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.a2e: %F.type.5d6 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.2a6: %Get.type = import_ref Main//get, Get, loaded [template = constants.%Get] -// CHECK:STDOUT: %import_ref.9f4: type = import_ref Main//i, I, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.773: %Get.type = import_ref Main//get, Get, loaded [template = constants.%Get] +// CHECK:STDOUT: %import_ref.df2: type = import_ref Main//i, I, loaded [template = constants.%I.type] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8db: = import_ref Main//get, inst21 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//get, inst22 [indirect], unloaded -// CHECK:STDOUT: %import_ref.f8c = import_ref Main//i, inst17 [no loc], unloaded -// CHECK:STDOUT: %import_ref.145: %F.assoc_type = import_ref Main//i, loc4_21, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.a15 = import_ref Main//i, F, unloaded -// CHECK:STDOUT: %import_ref.938: = import_ref Main//c, loc7_13, loaded [template = constants.%impl_witness] -// CHECK:STDOUT: %import_ref.3de: type = import_ref Main//c, loc7_6, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.60b: type = import_ref Main//c, loc7_11, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.e5d = import_ref Main//i, inst17 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b5b: %F.assoc_type = import_ref Main//i, loc4_21, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.8b9 = import_ref Main//i, F, unloaded +// CHECK:STDOUT: %import_ref.e53: = import_ref Main//c, loc7_13, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.29a: type = import_ref Main//c, loc7_6, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f50: type = import_ref Main//c, loc7_11, loaded [template = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Get = imports.%import_ref.2a6 -// CHECK:STDOUT: .I = imports.%import_ref.9f4 +// CHECK:STDOUT: .Get = imports.%import_ref.773 +// CHECK:STDOUT: .I = imports.%import_ref.df2 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .Call = %Call.decl // CHECK:STDOUT: } @@ -266,14 +266,14 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "i.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.f8c -// CHECK:STDOUT: .F = imports.%import_ref.145 -// CHECK:STDOUT: witness = (imports.%import_ref.a15) +// CHECK:STDOUT: .Self = imports.%import_ref.e5d +// CHECK:STDOUT: .F = imports.%import_ref.b5b +// CHECK:STDOUT: witness = (imports.%import_ref.8b9) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.3de as imports.%import_ref.60b [from "c.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.29a as imports.%import_ref.f50 [from "c.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.938 +// CHECK:STDOUT: witness = imports.%import_ref.e53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "get.carbon"] { @@ -284,12 +284,12 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Call() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Get.ref: %Get.type = name_ref Get, imports.%import_ref.2a6 [template = constants.%Get] +// CHECK:STDOUT: %Get.ref: %Get.type = name_ref Get, imports.%import_ref.773 [template = constants.%Get] // CHECK:STDOUT: %.loc9: ref %C = temporary_storage // CHECK:STDOUT: %Get.call: init %C = call %Get.ref() to %.loc9 -// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.9f4 [template = constants.%I.type] -// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.145 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.9df = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.2a3] +// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.df2 [template = constants.%I.type] +// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.b5b [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %F.type.cf0 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.a2e] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/multiple_extend.carbon b/toolchain/check/testdata/impl/multiple_extend.carbon index 01d0714765df..6df14ac7ec4f 100644 --- a/toolchain/check/testdata/impl/multiple_extend.carbon +++ b/toolchain/check/testdata/impl/multiple_extend.carbon @@ -163,27 +163,27 @@ fn P(o: O) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [template] -// CHECK:STDOUT: %Self.348: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.16d: type = fn_type @F.1 [template] +// CHECK:STDOUT: %Self.f0c: %HasF.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.b7b: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.a20: %F.type.16d = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.16d [template] -// CHECK:STDOUT: %assoc0.472: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] +// CHECK:STDOUT: %F.f50: %F.type.b7b = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %HasF.type, %F.type.b7b [template] +// CHECK:STDOUT: %assoc0.fe8: %F.assoc_type = assoc_entity element0, @HasF.%F.decl [template] // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [template] -// CHECK:STDOUT: %Self.4db: %HasG.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %G.type.6fe: type = fn_type @G.1 [template] -// CHECK:STDOUT: %G.0ea: %G.type.6fe = struct_value () [template] -// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %HasG.type, %G.type.6fe [template] -// CHECK:STDOUT: %assoc0.8b3: %G.assoc_type = assoc_entity element0, @HasG.%G.decl [template] +// CHECK:STDOUT: %Self.d42: %HasG.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %G.type.d27: type = fn_type @G.1 [template] +// CHECK:STDOUT: %G.688: %G.type.d27 = struct_value () [template] +// CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %HasG.type, %G.type.d27 [template] +// CHECK:STDOUT: %assoc0.27f: %G.assoc_type = assoc_entity element0, @HasG.%G.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %impl_witness.52d: = impl_witness (@impl.1.%F.decl) [template] -// CHECK:STDOUT: %F.type.cf2: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.f1c: %F.type.cf2 = struct_value () [template] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness.52d [template] -// CHECK:STDOUT: %impl_witness.5f2: = impl_witness (@impl.2.%G.decl) [template] -// CHECK:STDOUT: %G.type.892: type = fn_type @G.2 [template] -// CHECK:STDOUT: %G.90b: %G.type.892 = struct_value () [template] -// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, %impl_witness.5f2 [template] +// CHECK:STDOUT: %impl_witness.329: = impl_witness (@impl.1.%F.decl) [template] +// CHECK:STDOUT: %F.type.a65: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.ad8: %F.type.a65 = struct_value () [template] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness.329 [template] +// CHECK:STDOUT: %impl_witness.42a: = impl_witness (@impl.2.%G.decl) [template] +// CHECK:STDOUT: %G.type.cf6: type = fn_type @G.2 [template] +// CHECK:STDOUT: %G.957: %G.type.cf6 = struct_value () [template] +// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, %impl_witness.42a [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %H.type: type = fn_type @H [template] @@ -220,9 +220,9 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { -// CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.348] -// CHECK:STDOUT: %F.decl: %F.type.16d = fn_decl @F.1 [template = constants.%F.a20] {} {} -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0.472] +// CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f0c] +// CHECK:STDOUT: %F.decl: %F.type.b7b = fn_decl @F.1 [template = constants.%F.f50] {} {} +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0.fe8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -231,9 +231,9 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG { -// CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.4db] -// CHECK:STDOUT: %G.decl: %G.type.6fe = fn_decl @G.1 [template = constants.%G.0ea] {} {} -// CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, %G.decl [template = constants.%assoc0.8b3] +// CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d42] +// CHECK:STDOUT: %G.decl: %G.type.d27 = fn_decl @G.1 [template = constants.%G.688] {} {} +// CHECK:STDOUT: %assoc0: %G.assoc_type = assoc_entity element0, %G.decl [template = constants.%assoc0.27f] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -242,7 +242,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %Self.ref as %HasF.ref { -// CHECK:STDOUT: %F.decl: %F.type.cf2 = fn_decl @F.2 [template = constants.%F.f1c] {} {} +// CHECK:STDOUT: %F.decl: %F.type.a65 = fn_decl @F.2 [template = constants.%F.ad8] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -250,7 +250,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %Self.ref as %HasG.ref { -// CHECK:STDOUT: %G.decl: %G.type.892 = fn_decl @G.2 [template = constants.%G.90b] {} {} +// CHECK:STDOUT: %G.decl: %G.type.cf6 = fn_decl @G.2 [template = constants.%G.957] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .G = %G.decl @@ -262,12 +262,12 @@ fn P(o: O) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [template = constants.%C] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [template = constants.%HasF.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (@impl.1.%F.decl) [template = constants.%impl_witness.52d] +// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (@impl.1.%F.decl) [template = constants.%impl_witness.329] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [template = constants.%C] // CHECK:STDOUT: %HasG.ref: type = name_ref HasG, file.%HasG.decl [template = constants.%HasG.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc16: = impl_witness (@impl.2.%G.decl) [template = constants.%impl_witness.5f2] +// CHECK:STDOUT: %impl_witness.loc16: = impl_witness (@impl.2.%G.decl) [template = constants.%impl_witness.42a] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -300,27 +300,27 @@ fn P(o: O) { // CHECK:STDOUT: fn @H(%c.param_patt: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc22: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %F.ref.loc22: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0.472] -// CHECK:STDOUT: %impl.elem0.loc22: %F.type.16d = impl_witness_access constants.%impl_witness.52d, element0 [template = constants.%F.f1c] +// CHECK:STDOUT: %F.ref.loc22: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0.fe8] +// CHECK:STDOUT: %impl.elem0.loc22: %F.type.b7b = impl_witness_access constants.%impl_witness.329, element0 [template = constants.%F.ad8] // CHECK:STDOUT: %F.call.loc22: init %empty_tuple.type = call %impl.elem0.loc22() // CHECK:STDOUT: %c.ref.loc23: %C = name_ref c, %c -// CHECK:STDOUT: %F.ref.loc23: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0.472] -// CHECK:STDOUT: %impl.elem0.loc23: %F.type.16d = impl_witness_access constants.%impl_witness.52d, element0 [template = constants.%F.f1c] +// CHECK:STDOUT: %F.ref.loc23: %F.assoc_type = name_ref F, @HasF.%assoc0 [template = constants.%assoc0.fe8] +// CHECK:STDOUT: %impl.elem0.loc23: %F.type.b7b = impl_witness_access constants.%impl_witness.329, element0 [template = constants.%F.ad8] // CHECK:STDOUT: %F.call.loc23: init %empty_tuple.type = call %impl.elem0.loc23() // CHECK:STDOUT: %C.ref.loc24: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %G.ref.loc24: %G.assoc_type = name_ref G, @HasG.%assoc0 [template = constants.%assoc0.8b3] -// CHECK:STDOUT: %impl.elem0.loc24: %G.type.6fe = impl_witness_access constants.%impl_witness.5f2, element0 [template = constants.%G.90b] +// CHECK:STDOUT: %G.ref.loc24: %G.assoc_type = name_ref G, @HasG.%assoc0 [template = constants.%assoc0.27f] +// CHECK:STDOUT: %impl.elem0.loc24: %G.type.d27 = impl_witness_access constants.%impl_witness.42a, element0 [template = constants.%G.957] // CHECK:STDOUT: %G.call.loc24: init %empty_tuple.type = call %impl.elem0.loc24() // CHECK:STDOUT: %c.ref.loc25: %C = name_ref c, %c -// CHECK:STDOUT: %G.ref.loc25: %G.assoc_type = name_ref G, @HasG.%assoc0 [template = constants.%assoc0.8b3] -// CHECK:STDOUT: %impl.elem0.loc25: %G.type.6fe = impl_witness_access constants.%impl_witness.5f2, element0 [template = constants.%G.90b] +// CHECK:STDOUT: %G.ref.loc25: %G.assoc_type = name_ref G, @HasG.%assoc0 [template = constants.%assoc0.27f] +// CHECK:STDOUT: %impl.elem0.loc25: %G.type.d27 = impl_witness_access constants.%impl_witness.42a, element0 [template = constants.%G.957] // CHECK:STDOUT: %G.call.loc25: init %empty_tuple.type = call %impl.elem0.loc25() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.348) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.f0c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.4db) {} +// CHECK:STDOUT: specific @G.1(constants.%Self.d42) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%HasF.facet) {} // CHECK:STDOUT: @@ -330,26 +330,26 @@ fn P(o: O) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasA1.type: type = facet_type <@HasA1> [template] -// CHECK:STDOUT: %Self.6df: %HasA1.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %A.type.319: type = fn_type @A.1 [template] -// CHECK:STDOUT: %A.072: %A.type.319 = struct_value () [template] -// CHECK:STDOUT: %A.assoc_type.f09: type = assoc_entity_type %HasA1.type, %A.type.319 [template] -// CHECK:STDOUT: %assoc0.680: %A.assoc_type.f09 = assoc_entity element0, @HasA1.%A.decl [template] +// CHECK:STDOUT: %Self.90d: %HasA1.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %A.type.9c4: type = fn_type @A.1 [template] +// CHECK:STDOUT: %A.c3c: %A.type.9c4 = struct_value () [template] +// CHECK:STDOUT: %A.assoc_type.668: type = assoc_entity_type %HasA1.type, %A.type.9c4 [template] +// CHECK:STDOUT: %assoc0.41e: %A.assoc_type.668 = assoc_entity element0, @HasA1.%A.decl [template] // CHECK:STDOUT: %HasA2.type: type = facet_type <@HasA2> [template] -// CHECK:STDOUT: %Self.0d0: %HasA2.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %A.type.8fb: type = fn_type @A.2 [template] -// CHECK:STDOUT: %A.838: %A.type.8fb = struct_value () [template] -// CHECK:STDOUT: %A.assoc_type.c72: type = assoc_entity_type %HasA2.type, %A.type.8fb [template] -// CHECK:STDOUT: %assoc0.abb: %A.assoc_type.c72 = assoc_entity element0, @HasA2.%A.decl [template] +// CHECK:STDOUT: %Self.bdc: %HasA2.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %A.type.f71: type = fn_type @A.2 [template] +// CHECK:STDOUT: %A.0eb: %A.type.f71 = struct_value () [template] +// CHECK:STDOUT: %A.assoc_type.bac: type = assoc_entity_type %HasA2.type, %A.type.f71 [template] +// CHECK:STDOUT: %assoc0.c44: %A.assoc_type.bac = assoc_entity element0, @HasA2.%A.decl [template] // CHECK:STDOUT: %D: type = class_type @D [template] -// CHECK:STDOUT: %impl_witness.bb1: = impl_witness (@impl.1.%A.decl) [template] -// CHECK:STDOUT: %A.type.79c: type = fn_type @A.3 [template] -// CHECK:STDOUT: %A.cd0: %A.type.79c = struct_value () [template] -// CHECK:STDOUT: %HasA1.facet: %HasA1.type = facet_value %D, %impl_witness.bb1 [template] -// CHECK:STDOUT: %impl_witness.fce: = impl_witness (@impl.2.%A.decl) [template] -// CHECK:STDOUT: %A.type.c3a: type = fn_type @A.4 [template] -// CHECK:STDOUT: %A.cfa: %A.type.c3a = struct_value () [template] -// CHECK:STDOUT: %HasA2.facet: %HasA2.type = facet_value %D, %impl_witness.fce [template] +// CHECK:STDOUT: %impl_witness.73a: = impl_witness (@impl.1.%A.decl) [template] +// CHECK:STDOUT: %A.type.468: type = fn_type @A.3 [template] +// CHECK:STDOUT: %A.efc: %A.type.468 = struct_value () [template] +// CHECK:STDOUT: %HasA1.facet: %HasA1.type = facet_value %D, %impl_witness.73a [template] +// CHECK:STDOUT: %impl_witness.baf: = impl_witness (@impl.2.%A.decl) [template] +// CHECK:STDOUT: %A.type.938: type = fn_type @A.4 [template] +// CHECK:STDOUT: %A.890: %A.type.938 = struct_value () [template] +// CHECK:STDOUT: %HasA2.facet: %HasA2.type = facet_value %D, %impl_witness.baf [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %B.type: type = fn_type @B [template] @@ -386,9 +386,9 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasA1 { -// CHECK:STDOUT: %Self: %HasA1.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.6df] -// CHECK:STDOUT: %A.decl: %A.type.319 = fn_decl @A.1 [template = constants.%A.072] {} {} -// CHECK:STDOUT: %assoc0: %A.assoc_type.f09 = assoc_entity element0, %A.decl [template = constants.%assoc0.680] +// CHECK:STDOUT: %Self: %HasA1.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.90d] +// CHECK:STDOUT: %A.decl: %A.type.9c4 = fn_decl @A.1 [template = constants.%A.c3c] {} {} +// CHECK:STDOUT: %assoc0: %A.assoc_type.668 = assoc_entity element0, %A.decl [template = constants.%assoc0.41e] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -397,9 +397,9 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasA2 { -// CHECK:STDOUT: %Self: %HasA2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.0d0] -// CHECK:STDOUT: %A.decl: %A.type.8fb = fn_decl @A.2 [template = constants.%A.838] {} {} -// CHECK:STDOUT: %assoc0: %A.assoc_type.c72 = assoc_entity element0, %A.decl [template = constants.%assoc0.abb] +// CHECK:STDOUT: %Self: %HasA2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.bdc] +// CHECK:STDOUT: %A.decl: %A.type.f71 = fn_decl @A.2 [template = constants.%A.0eb] {} {} +// CHECK:STDOUT: %assoc0: %A.assoc_type.bac = assoc_entity element0, %A.decl [template = constants.%assoc0.c44] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -408,7 +408,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %Self.ref as %HasA1.ref { -// CHECK:STDOUT: %A.decl: %A.type.79c = fn_decl @A.3 [template = constants.%A.cd0] {} {} +// CHECK:STDOUT: %A.decl: %A.type.468 = fn_decl @A.3 [template = constants.%A.efc] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .A = %A.decl @@ -416,7 +416,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %Self.ref as %HasA2.ref { -// CHECK:STDOUT: %A.decl: %A.type.c3a = fn_decl @A.4 [template = constants.%A.cfa] {} {} +// CHECK:STDOUT: %A.decl: %A.type.938 = fn_decl @A.4 [template = constants.%A.890] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .A = %A.decl @@ -428,12 +428,12 @@ fn P(o: O) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D [template = constants.%D] // CHECK:STDOUT: %HasA1.ref: type = name_ref HasA1, file.%HasA1.decl [template = constants.%HasA1.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (@impl.1.%A.decl) [template = constants.%impl_witness.bb1] +// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (@impl.1.%A.decl) [template = constants.%impl_witness.73a] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D [template = constants.%D] // CHECK:STDOUT: %HasA2.ref: type = name_ref HasA2, file.%HasA2.decl [template = constants.%HasA2.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc16: = impl_witness (@impl.2.%A.decl) [template = constants.%impl_witness.fce] +// CHECK:STDOUT: %impl_witness.loc16: = impl_witness (@impl.2.%A.decl) [template = constants.%impl_witness.baf] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -472,9 +472,9 @@ fn P(o: O) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.1(constants.%Self.6df) {} +// CHECK:STDOUT: specific @A.1(constants.%Self.90d) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.2(constants.%Self.0d0) {} +// CHECK:STDOUT: specific @A.2(constants.%Self.bdc) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @A.1(constants.%HasA1.facet) {} // CHECK:STDOUT: @@ -485,10 +485,10 @@ fn P(o: O) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasI.type: type = facet_type <@HasI> [template] // CHECK:STDOUT: %Self: %HasI.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %I.type.ed9: type = fn_type @I.1 [template] +// CHECK:STDOUT: %I.type.9bd: type = fn_type @I.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %I.f16: %I.type.ed9 = struct_value () [template] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %HasI.type, %I.type.ed9 [template] +// CHECK:STDOUT: %I.0a6: %I.type.9bd = struct_value () [template] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %HasI.type, %I.type.9bd [template] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @HasI.%I.decl [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %J.type: type = fn_type @J [template] @@ -498,8 +498,8 @@ fn P(o: O) { // CHECK:STDOUT: %E: type = class_type @E [template] // CHECK:STDOUT: %E.elem: type = unbound_element_type %E, %B [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%I.decl) [template] -// CHECK:STDOUT: %I.type.340: type = fn_type @I.2 [template] -// CHECK:STDOUT: %I.c36: %I.type.340 = struct_value () [template] +// CHECK:STDOUT: %I.type.395: type = fn_type @I.2 [template] +// CHECK:STDOUT: %I.e74: %I.type.395 = struct_value () [template] // CHECK:STDOUT: %HasI.facet: %HasI.type = facet_value %E, %impl_witness [template] // CHECK:STDOUT: %struct_type.base.0ff: type = struct_type {.base: %B} [template] // CHECK:STDOUT: %complete_type.98e: = complete_type_witness %struct_type.base.0ff [template] @@ -538,7 +538,7 @@ fn P(o: O) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasI { // CHECK:STDOUT: %Self: %HasI.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %I.decl: %I.type.ed9 = fn_decl @I.1 [template = constants.%I.f16] {} {} +// CHECK:STDOUT: %I.decl: %I.type.9bd = fn_decl @I.1 [template = constants.%I.0a6] {} {} // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -548,7 +548,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %Self.ref as %HasI.ref { -// CHECK:STDOUT: %I.decl: %I.type.340 = fn_decl @I.2 [template = constants.%I.c36] {} {} +// CHECK:STDOUT: %I.decl: %I.type.395 = fn_decl @I.2 [template = constants.%I.e74] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .I = %I.decl @@ -602,11 +602,11 @@ fn P(o: O) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %E.ref.loc20: type = name_ref E, file.%E.decl [template = constants.%E] // CHECK:STDOUT: %I.ref.loc20: %I.assoc_type = name_ref I, @HasI.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc20: %I.type.ed9 = impl_witness_access constants.%impl_witness, element0 [template = constants.%I.c36] +// CHECK:STDOUT: %impl.elem0.loc20: %I.type.9bd = impl_witness_access constants.%impl_witness, element0 [template = constants.%I.e74] // CHECK:STDOUT: %I.call.loc20: init %empty_tuple.type = call %impl.elem0.loc20() // CHECK:STDOUT: %e.ref.loc21: %E = name_ref e, %e // CHECK:STDOUT: %I.ref.loc21: %I.assoc_type = name_ref I, @HasI.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc21: %I.type.ed9 = impl_witness_access constants.%impl_witness, element0 [template = constants.%I.c36] +// CHECK:STDOUT: %impl.elem0.loc21: %I.type.9bd = impl_witness_access constants.%impl_witness, element0 [template = constants.%I.e74] // CHECK:STDOUT: %I.call.loc21: init %empty_tuple.type = call %impl.elem0.loc21() // CHECK:STDOUT: %E.ref.loc22: type = name_ref E, file.%E.decl [template = constants.%E] // CHECK:STDOUT: %J.ref.loc22: %J.type = name_ref J, @B.%J.decl [template = constants.%J] @@ -625,21 +625,21 @@ fn P(o: O) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Base: type = class_type @Base [template] -// CHECK:STDOUT: %K.type.4ac: type = fn_type @K.1 [template] -// CHECK:STDOUT: %K.5b6: %K.type.4ac = struct_value () [template] +// CHECK:STDOUT: %K.type.5a4: type = fn_type @K.1 [template] +// CHECK:STDOUT: %K.801: %K.type.5a4 = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %HasK.type: type = facet_type <@HasK> [template] // CHECK:STDOUT: %Self: %HasK.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %K.type.cec: type = fn_type @K.2 [template] -// CHECK:STDOUT: %K.389: %K.type.cec = struct_value () [template] -// CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type %HasK.type, %K.type.cec [template] +// CHECK:STDOUT: %K.type.76f: type = fn_type @K.2 [template] +// CHECK:STDOUT: %K.c0e: %K.type.76f = struct_value () [template] +// CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type %HasK.type, %K.type.76f [template] // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @HasK.%K.decl [template] // CHECK:STDOUT: %L: type = class_type @L [template] // CHECK:STDOUT: %L.elem: type = unbound_element_type %L, %Base [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%K.decl) [template] -// CHECK:STDOUT: %K.type.5ab: type = fn_type @K.3 [template] -// CHECK:STDOUT: %K.d12: %K.type.5ab = struct_value () [template] +// CHECK:STDOUT: %K.type.bc2: type = fn_type @K.3 [template] +// CHECK:STDOUT: %K.bd6: %K.type.bc2 = struct_value () [template] // CHECK:STDOUT: %HasK.facet: %HasK.type = facet_value %L, %impl_witness [template] // CHECK:STDOUT: %struct_type.base.b1e: type = struct_type {.base: %Base} [template] // CHECK:STDOUT: %complete_type.15c: = complete_type_witness %struct_type.base.b1e [template] @@ -678,7 +678,7 @@ fn P(o: O) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasK { // CHECK:STDOUT: %Self: %HasK.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %K.decl: %K.type.cec = fn_decl @K.2 [template = constants.%K.389] {} {} +// CHECK:STDOUT: %K.decl: %K.type.76f = fn_decl @K.2 [template = constants.%K.c0e] {} {} // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, %K.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -688,7 +688,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %Self.ref as %HasK.ref { -// CHECK:STDOUT: %K.decl: %K.type.5ab = fn_decl @K.3 [template = constants.%K.d12] {} {} +// CHECK:STDOUT: %K.decl: %K.type.bc2 = fn_decl @K.3 [template = constants.%K.bd6] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .K = %K.decl @@ -696,7 +696,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base { -// CHECK:STDOUT: %K.decl: %K.type.4ac = fn_decl @K.1 [template = constants.%K.5b6] {} {} +// CHECK:STDOUT: %K.decl: %K.type.5a4 = fn_decl @K.1 [template = constants.%K.801] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -755,35 +755,35 @@ fn P(o: O) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NBase: type = class_type @NBase [template] -// CHECK:STDOUT: %N.type.e79: type = fn_type @N.1 [template] +// CHECK:STDOUT: %N.type.fbf: type = fn_type @N.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %N.950: %N.type.e79 = struct_value () [template] +// CHECK:STDOUT: %N.897: %N.type.fbf = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %HasN1.type: type = facet_type <@HasN1> [template] -// CHECK:STDOUT: %Self.f9f: %HasN1.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %N.type.4c7: type = fn_type @N.2 [template] -// CHECK:STDOUT: %N.ba3: %N.type.4c7 = struct_value () [template] -// CHECK:STDOUT: %N.assoc_type.58f: type = assoc_entity_type %HasN1.type, %N.type.4c7 [template] -// CHECK:STDOUT: %assoc0.f1a: %N.assoc_type.58f = assoc_entity element0, @HasN1.%N.decl [template] +// CHECK:STDOUT: %Self.e0b: %HasN1.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %N.type.3da: type = fn_type @N.2 [template] +// CHECK:STDOUT: %N.a51: %N.type.3da = struct_value () [template] +// CHECK:STDOUT: %N.assoc_type.d5e: type = assoc_entity_type %HasN1.type, %N.type.3da [template] +// CHECK:STDOUT: %assoc0.25b: %N.assoc_type.d5e = assoc_entity element0, @HasN1.%N.decl [template] // CHECK:STDOUT: %HasN2.type: type = facet_type <@HasN2> [template] -// CHECK:STDOUT: %Self.82d: %HasN2.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %N.type.06f: type = fn_type @N.3 [template] -// CHECK:STDOUT: %N.039: %N.type.06f = struct_value () [template] -// CHECK:STDOUT: %N.assoc_type.fb0: type = assoc_entity_type %HasN2.type, %N.type.06f [template] -// CHECK:STDOUT: %assoc0.b5a: %N.assoc_type.fb0 = assoc_entity element0, @HasN2.%N.decl [template] +// CHECK:STDOUT: %Self.e6e: %HasN2.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %N.type.0aa: type = fn_type @N.3 [template] +// CHECK:STDOUT: %N.1a4: %N.type.0aa = struct_value () [template] +// CHECK:STDOUT: %N.assoc_type.385: type = assoc_entity_type %HasN2.type, %N.type.0aa [template] +// CHECK:STDOUT: %assoc0.196: %N.assoc_type.385 = assoc_entity element0, @HasN2.%N.decl [template] // CHECK:STDOUT: %O: type = class_type @O [template] // CHECK:STDOUT: %O.elem: type = unbound_element_type %O, %NBase [template] -// CHECK:STDOUT: %impl_witness.d2b: = impl_witness (@impl.1.%N.decl) [template] -// CHECK:STDOUT: %N.type.b8d: type = fn_type @N.4 [template] -// CHECK:STDOUT: %N.cd2: %N.type.b8d = struct_value () [template] -// CHECK:STDOUT: %HasN1.facet: %HasN1.type = facet_value %O, %impl_witness.d2b [template] -// CHECK:STDOUT: %impl_witness.93f: = impl_witness (@impl.2.%N.decl) [template] -// CHECK:STDOUT: %N.type.afd: type = fn_type @N.5 [template] -// CHECK:STDOUT: %N.512: %N.type.afd = struct_value () [template] -// CHECK:STDOUT: %HasN2.facet: %HasN2.type = facet_value %O, %impl_witness.93f [template] -// CHECK:STDOUT: %N.type.964: type = fn_type @N.6 [template] -// CHECK:STDOUT: %N.3dd: %N.type.964 = struct_value () [template] +// CHECK:STDOUT: %impl_witness.982: = impl_witness (@impl.1.%N.decl) [template] +// CHECK:STDOUT: %N.type.ffc: type = fn_type @N.4 [template] +// CHECK:STDOUT: %N.4f5: %N.type.ffc = struct_value () [template] +// CHECK:STDOUT: %HasN1.facet: %HasN1.type = facet_value %O, %impl_witness.982 [template] +// CHECK:STDOUT: %impl_witness.599: = impl_witness (@impl.2.%N.decl) [template] +// CHECK:STDOUT: %N.type.8af: type = fn_type @N.5 [template] +// CHECK:STDOUT: %N.308: %N.type.8af = struct_value () [template] +// CHECK:STDOUT: %HasN2.facet: %HasN2.type = facet_value %O, %impl_witness.599 [template] +// CHECK:STDOUT: %N.type.8b4: type = fn_type @N.6 [template] +// CHECK:STDOUT: %N.cc3: %N.type.8b4 = struct_value () [template] // CHECK:STDOUT: %struct_type.base.9c6: type = struct_type {.base: %NBase} [template] // CHECK:STDOUT: %complete_type.121: = complete_type_witness %struct_type.base.9c6 [template] // CHECK:STDOUT: %P.type: type = fn_type @P [template] @@ -822,9 +822,9 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasN1 { -// CHECK:STDOUT: %Self: %HasN1.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f9f] -// CHECK:STDOUT: %N.decl: %N.type.4c7 = fn_decl @N.2 [template = constants.%N.ba3] {} {} -// CHECK:STDOUT: %assoc0: %N.assoc_type.58f = assoc_entity element0, %N.decl [template = constants.%assoc0.f1a] +// CHECK:STDOUT: %Self: %HasN1.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.e0b] +// CHECK:STDOUT: %N.decl: %N.type.3da = fn_decl @N.2 [template = constants.%N.a51] {} {} +// CHECK:STDOUT: %assoc0: %N.assoc_type.d5e = assoc_entity element0, %N.decl [template = constants.%assoc0.25b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -833,9 +833,9 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasN2 { -// CHECK:STDOUT: %Self: %HasN2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.82d] -// CHECK:STDOUT: %N.decl: %N.type.06f = fn_decl @N.3 [template = constants.%N.039] {} {} -// CHECK:STDOUT: %assoc0: %N.assoc_type.fb0 = assoc_entity element0, %N.decl [template = constants.%assoc0.b5a] +// CHECK:STDOUT: %Self: %HasN2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.e6e] +// CHECK:STDOUT: %N.decl: %N.type.0aa = fn_decl @N.3 [template = constants.%N.1a4] {} {} +// CHECK:STDOUT: %assoc0: %N.assoc_type.385 = assoc_entity element0, %N.decl [template = constants.%assoc0.196] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -844,7 +844,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %Self.ref as %HasN1.ref { -// CHECK:STDOUT: %N.decl: %N.type.b8d = fn_decl @N.4 [template = constants.%N.cd2] {} {} +// CHECK:STDOUT: %N.decl: %N.type.ffc = fn_decl @N.4 [template = constants.%N.4f5] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .N = %N.decl @@ -852,7 +852,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %Self.ref as %HasN2.ref { -// CHECK:STDOUT: %N.decl: %N.type.afd = fn_decl @N.5 [template = constants.%N.512] {} {} +// CHECK:STDOUT: %N.decl: %N.type.8af = fn_decl @N.5 [template = constants.%N.308] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .N = %N.decl @@ -860,7 +860,7 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NBase { -// CHECK:STDOUT: %N.decl: %N.type.e79 = fn_decl @N.1 [template = constants.%N.950] {} {} +// CHECK:STDOUT: %N.decl: %N.type.fbf = fn_decl @N.1 [template = constants.%N.897] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -876,13 +876,13 @@ fn P(o: O) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%O [template = constants.%O] // CHECK:STDOUT: %HasN1.ref: type = name_ref HasN1, file.%HasN1.decl [template = constants.%HasN1.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc18: = impl_witness (@impl.1.%N.decl) [template = constants.%impl_witness.d2b] +// CHECK:STDOUT: %impl_witness.loc18: = impl_witness (@impl.1.%N.decl) [template = constants.%impl_witness.982] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%O [template = constants.%O] // CHECK:STDOUT: %HasN2.ref: type = name_ref HasN2, file.%HasN2.decl [template = constants.%HasN2.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc21: = impl_witness (@impl.2.%N.decl) [template = constants.%impl_witness.93f] -// CHECK:STDOUT: %N.decl: %N.type.964 = fn_decl @N.6 [template = constants.%N.3dd] {} {} +// CHECK:STDOUT: %impl_witness.loc21: = impl_witness (@impl.2.%N.decl) [template = constants.%impl_witness.599] +// CHECK:STDOUT: %N.decl: %N.type.8b4 = fn_decl @N.6 [template = constants.%N.cc3] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.9c6 [template = constants.%complete_type.121] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -925,17 +925,17 @@ fn P(o: O) { // CHECK:STDOUT: fn @P(%o.param_patt: %O) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %O.ref.loc28: type = name_ref O, file.%O.decl [template = constants.%O] -// CHECK:STDOUT: %N.ref.loc28: %N.type.964 = name_ref N, @O.%N.decl [template = constants.%N.3dd] +// CHECK:STDOUT: %N.ref.loc28: %N.type.8b4 = name_ref N, @O.%N.decl [template = constants.%N.cc3] // CHECK:STDOUT: %N.call.loc28: init %empty_tuple.type = call %N.ref.loc28() // CHECK:STDOUT: %o.ref: %O = name_ref o, %o -// CHECK:STDOUT: %N.ref.loc29: %N.type.964 = name_ref N, @O.%N.decl [template = constants.%N.3dd] +// CHECK:STDOUT: %N.ref.loc29: %N.type.8b4 = name_ref N, @O.%N.decl [template = constants.%N.cc3] // CHECK:STDOUT: %N.call.loc29: init %empty_tuple.type = call %N.ref.loc29() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.2(constants.%Self.f9f) {} +// CHECK:STDOUT: specific @N.2(constants.%Self.e0b) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.3(constants.%Self.82d) {} +// CHECK:STDOUT: specific @N.3(constants.%Self.e6e) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @N.2(constants.%HasN1.facet) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/basic.carbon b/toolchain/check/testdata/impl/no_prelude/basic.carbon index d993077382a7..819c290f5d3b 100644 --- a/toolchain/check/testdata/impl/no_prelude/basic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/basic.carbon @@ -23,16 +23,16 @@ impl C as Simple { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [template] // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.c46: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.41f: %F.type.c46 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Simple.type, %F.type.c46 [template] +// CHECK:STDOUT: %F.type.e2e: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.df8: %F.type.e2e = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Simple.type, %F.type.e2e [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @Simple.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.228: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.07c: %F.type.228 = struct_value () [template] +// CHECK:STDOUT: %F.type.f9e: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.f50: %F.type.f9e = struct_value () [template] // CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -52,7 +52,7 @@ impl C as Simple { // CHECK:STDOUT: // CHECK:STDOUT: interface @Simple { // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.c46 = fn_decl @F.1 [template = constants.%F.41f] {} {} +// CHECK:STDOUT: %F.decl: %F.type.e2e = fn_decl @F.1 [template = constants.%F.df8] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -62,7 +62,7 @@ impl C as Simple { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref as %Simple.ref { -// CHECK:STDOUT: %F.decl: %F.type.228 = fn_decl @F.2 [template = constants.%F.07c] {} {} +// CHECK:STDOUT: %F.decl: %F.type.f9e = fn_decl @F.2 [template = constants.%F.f50] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl diff --git a/toolchain/check/testdata/impl/no_prelude/generic_redeclaration.carbon b/toolchain/check/testdata/impl/no_prelude/generic_redeclaration.carbon index 08cc45a30801..a973a6ce766b 100644 --- a/toolchain/check/testdata/impl/no_prelude/generic_redeclaration.carbon +++ b/toolchain/check/testdata/impl/no_prelude/generic_redeclaration.carbon @@ -67,31 +67,31 @@ impl (C, C).0 as I {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [template] -// CHECK:STDOUT: %Self.843: %Interface.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J.type: type = facet_type <@J> [template] -// CHECK:STDOUT: %Self.f9f: %J.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.ccd: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %K.type: type = facet_type <@K> [template] -// CHECK:STDOUT: %Self.744: %K.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.09f: %K.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %L.type: type = facet_type <@L> [template] -// CHECK:STDOUT: %Self.863: %L.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %T.84f: %I.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.8d6: %I.type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.26f: type = facet_access_type %T.84f [symbolic] -// CHECK:STDOUT: %impl_witness.62c: = impl_witness (), @impl.1(%T.84f) [symbolic] -// CHECK:STDOUT: %T.be2: %J.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.139: %J.type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.6d2: type = facet_access_type %T.be2 [symbolic] -// CHECK:STDOUT: %impl_witness.305: = impl_witness (), @impl.2(%T.be2) [symbolic] -// CHECK:STDOUT: %T.624: %K.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.2b4: %K.type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.4d9: type = facet_access_type %T.624 [symbolic] -// CHECK:STDOUT: %impl_witness.c4a: = impl_witness (), @impl.3(%T.624) [symbolic] -// CHECK:STDOUT: %T.4bb: %L.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.61a: %L.type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.e4e: type = facet_access_type %T.4bb [symbolic] -// CHECK:STDOUT: %impl_witness.a8f: = impl_witness (), @impl.4(%T.4bb) [symbolic] +// CHECK:STDOUT: %Self.1d2: %L.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %T.826: %I.type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.3ad: %I.type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.b70: type = facet_access_type %T.826 [symbolic] +// CHECK:STDOUT: %impl_witness.d14: = impl_witness (), @impl.1(%T.826) [symbolic] +// CHECK:STDOUT: %T.ccd: %J.type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.371: %J.type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.3df: type = facet_access_type %T.ccd [symbolic] +// CHECK:STDOUT: %impl_witness.d94: = impl_witness (), @impl.2(%T.ccd) [symbolic] +// CHECK:STDOUT: %T.09f: %K.type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.036: %K.type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.037: type = facet_access_type %T.09f [symbolic] +// CHECK:STDOUT: %impl_witness.8aa: = impl_witness (), @impl.3(%T.09f) [symbolic] +// CHECK:STDOUT: %T.1d2: %L.type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.29d: %L.type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.0ed: type = facet_access_type %T.1d2 [symbolic] +// CHECK:STDOUT: %impl_witness.da5: = impl_witness (), @impl.4(%T.1d2) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -108,109 +108,109 @@ impl (C, C).0 as I {} // CHECK:STDOUT: %K.decl: type = interface_decl @K [template = constants.%K.type] {} {} // CHECK:STDOUT: %L.decl: type = interface_decl @L [template = constants.%L.type] {} {} // CHECK:STDOUT: impl_decl @impl.1 [template] { -// CHECK:STDOUT: %T.patt.loc11_14.1: %I.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.8d6)] -// CHECK:STDOUT: %T.param_patt: %I.type = value_param_pattern %T.patt.loc11_14.1, runtime_param [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.8d6)] +// CHECK:STDOUT: %T.patt.loc11_14.1: %I.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.3ad)] +// CHECK:STDOUT: %T.param_patt: %I.type = value_param_pattern %T.patt.loc11_14.1, runtime_param [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.3ad)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc11: %I.type = name_ref T, %T.loc11_14.1 [symbolic = %T.loc11_14.2 (constants.%T.84f)] -// CHECK:STDOUT: %T.as_type.loc11_21.1: type = facet_access_type %T.ref.loc11 [symbolic = %T.as_type.loc11_21.2 (constants.%T.as_type.26f)] -// CHECK:STDOUT: %.loc11: type = converted %T.ref.loc11, %T.as_type.loc11_21.1 [symbolic = %T.as_type.loc11_21.2 (constants.%T.as_type.26f)] +// CHECK:STDOUT: %T.ref.loc11: %I.type = name_ref T, %T.loc11_14.1 [symbolic = %T.loc11_14.2 (constants.%T.826)] +// CHECK:STDOUT: %T.as_type.loc11_21.1: type = facet_access_type %T.ref.loc11 [symbolic = %T.as_type.loc11_21.2 (constants.%T.as_type.b70)] +// CHECK:STDOUT: %.loc11: type = converted %T.ref.loc11, %T.as_type.loc11_21.1 [symbolic = %T.as_type.loc11_21.2 (constants.%T.as_type.b70)] // CHECK:STDOUT: %Interface.ref.loc11: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param.loc11: %I.type = value_param runtime_param // CHECK:STDOUT: %I.ref.loc11: type = name_ref I, file.%I.decl [template = constants.%I.type] -// CHECK:STDOUT: %T.loc11_14.1: %I.type = bind_symbolic_name T, 0, %T.param.loc11 [symbolic = %T.loc11_14.2 (constants.%T.84f)] +// CHECK:STDOUT: %T.loc11_14.1: %I.type = bind_symbolic_name T, 0, %T.param.loc11 [symbolic = %T.loc11_14.2 (constants.%T.826)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc11: = impl_witness (), @impl.1(constants.%T.84f) [symbolic = @impl.1.%impl_witness (constants.%impl_witness.62c)] +// CHECK:STDOUT: %impl_witness.loc11: = impl_witness (), @impl.1(constants.%T.826) [symbolic = @impl.1.%impl_witness (constants.%impl_witness.d14)] // CHECK:STDOUT: impl_decl @impl.2 [template] { -// CHECK:STDOUT: %T.patt.loc12_14.1: %J.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.139)] -// CHECK:STDOUT: %T.param_patt: %J.type = value_param_pattern %T.patt.loc12_14.1, runtime_param [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.139)] +// CHECK:STDOUT: %T.patt.loc12_14.1: %J.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.371)] +// CHECK:STDOUT: %T.param_patt: %J.type = value_param_pattern %T.patt.loc12_14.1, runtime_param [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.371)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc12: %J.type = name_ref T, %T.loc12_14.1 [symbolic = %T.loc12_14.2 (constants.%T.be2)] -// 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.6d2)] -// CHECK:STDOUT: %.loc12: type = converted %T.ref.loc12, %T.as_type.loc12_21.1 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.6d2)] +// CHECK:STDOUT: %T.ref.loc12: %J.type = name_ref T, %T.loc12_14.1 [symbolic = %T.loc12_14.2 (constants.%T.ccd)] +// 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.3df)] +// CHECK:STDOUT: %.loc12: type = converted %T.ref.loc12, %T.as_type.loc12_21.1 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.3df)] // CHECK:STDOUT: %Interface.ref.loc12: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param.loc12: %J.type = value_param runtime_param // CHECK:STDOUT: %J.ref.loc12: type = name_ref J, file.%J.decl [template = constants.%J.type] -// CHECK:STDOUT: %T.loc12_14.1: %J.type = bind_symbolic_name T, 0, %T.param.loc12 [symbolic = %T.loc12_14.2 (constants.%T.be2)] +// CHECK:STDOUT: %T.loc12_14.1: %J.type = bind_symbolic_name T, 0, %T.param.loc12 [symbolic = %T.loc12_14.2 (constants.%T.ccd)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc12: = impl_witness (), @impl.2(constants.%T.be2) [symbolic = @impl.2.%impl_witness (constants.%impl_witness.305)] +// CHECK:STDOUT: %impl_witness.loc12: = impl_witness (), @impl.2(constants.%T.ccd) [symbolic = @impl.2.%impl_witness (constants.%impl_witness.d94)] // CHECK:STDOUT: impl_decl @impl.3 [template] { -// CHECK:STDOUT: %T.patt.loc13_14.1: %K.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.2b4)] -// CHECK:STDOUT: %T.param_patt: %K.type = value_param_pattern %T.patt.loc13_14.1, runtime_param [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.2b4)] +// CHECK:STDOUT: %T.patt.loc13_14.1: %K.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.036)] +// CHECK:STDOUT: %T.param_patt: %K.type = value_param_pattern %T.patt.loc13_14.1, runtime_param [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.036)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc13: %K.type = name_ref T, %T.loc13_14.1 [symbolic = %T.loc13_14.2 (constants.%T.624)] -// 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.4d9)] -// CHECK:STDOUT: %.loc13: type = converted %T.ref.loc13, %T.as_type.loc13_21.1 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.4d9)] +// CHECK:STDOUT: %T.ref.loc13: %K.type = name_ref T, %T.loc13_14.1 [symbolic = %T.loc13_14.2 (constants.%T.09f)] +// 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.037)] +// CHECK:STDOUT: %.loc13: type = converted %T.ref.loc13, %T.as_type.loc13_21.1 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.037)] // CHECK:STDOUT: %Interface.ref.loc13: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param.loc13: %K.type = value_param runtime_param // CHECK:STDOUT: %K.ref.loc13: type = name_ref K, file.%K.decl [template = constants.%K.type] -// CHECK:STDOUT: %T.loc13_14.1: %K.type = bind_symbolic_name T, 0, %T.param.loc13 [symbolic = %T.loc13_14.2 (constants.%T.624)] +// CHECK:STDOUT: %T.loc13_14.1: %K.type = bind_symbolic_name T, 0, %T.param.loc13 [symbolic = %T.loc13_14.2 (constants.%T.09f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (), @impl.3(constants.%T.624) [symbolic = @impl.3.%impl_witness (constants.%impl_witness.c4a)] +// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (), @impl.3(constants.%T.09f) [symbolic = @impl.3.%impl_witness (constants.%impl_witness.8aa)] // CHECK:STDOUT: impl_decl @impl.4 [template] { -// CHECK:STDOUT: %T.patt.loc14_14.1: %L.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.61a)] -// CHECK:STDOUT: %T.param_patt: %L.type = value_param_pattern %T.patt.loc14_14.1, runtime_param [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.61a)] +// CHECK:STDOUT: %T.patt.loc14_14.1: %L.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.29d)] +// CHECK:STDOUT: %T.param_patt: %L.type = value_param_pattern %T.patt.loc14_14.1, runtime_param [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.29d)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc14: %L.type = name_ref T, %T.loc14_14.1 [symbolic = %T.loc14_14.2 (constants.%T.4bb)] -// 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.e4e)] -// CHECK:STDOUT: %.loc14: type = converted %T.ref.loc14, %T.as_type.loc14_21.1 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.e4e)] +// CHECK:STDOUT: %T.ref.loc14: %L.type = name_ref T, %T.loc14_14.1 [symbolic = %T.loc14_14.2 (constants.%T.1d2)] +// 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.0ed)] +// CHECK:STDOUT: %.loc14: type = converted %T.ref.loc14, %T.as_type.loc14_21.1 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.0ed)] // CHECK:STDOUT: %Interface.ref.loc14: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param.loc14: %L.type = value_param runtime_param // CHECK:STDOUT: %L.ref.loc14: type = name_ref L, file.%L.decl [template = constants.%L.type] -// CHECK:STDOUT: %T.loc14_14.1: %L.type = bind_symbolic_name T, 0, %T.param.loc14 [symbolic = %T.loc14_14.2 (constants.%T.4bb)] +// CHECK:STDOUT: %T.loc14_14.1: %L.type = bind_symbolic_name T, 0, %T.param.loc14 [symbolic = %T.loc14_14.2 (constants.%T.1d2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc14: = impl_witness (), @impl.4(constants.%T.4bb) [symbolic = @impl.4.%impl_witness (constants.%impl_witness.a8f)] +// CHECK:STDOUT: %impl_witness.loc14: = impl_witness (), @impl.4(constants.%T.1d2) [symbolic = @impl.4.%impl_witness (constants.%impl_witness.da5)] // CHECK:STDOUT: impl_decl @impl.1 [template] { -// CHECK:STDOUT: %T.patt.loc11_14.1: %I.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.8d6)] -// CHECK:STDOUT: %T.param_patt: %I.type = value_param_pattern %T.patt.loc11_14.1, runtime_param [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.8d6)] +// CHECK:STDOUT: %T.patt.loc11_14.1: %I.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.3ad)] +// CHECK:STDOUT: %T.param_patt: %I.type = value_param_pattern %T.patt.loc11_14.1, runtime_param [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.3ad)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc18: %I.type = name_ref T, %T.loc18 [symbolic = constants.%T.84f] -// CHECK:STDOUT: %T.as_type.loc18: type = facet_access_type %T.ref.loc18 [symbolic = constants.%T.as_type.26f] -// CHECK:STDOUT: %.loc18: type = converted %T.ref.loc18, %T.as_type.loc18 [symbolic = constants.%T.as_type.26f] +// CHECK:STDOUT: %T.ref.loc18: %I.type = name_ref T, %T.loc18 [symbolic = constants.%T.826] +// CHECK:STDOUT: %T.as_type.loc18: type = facet_access_type %T.ref.loc18 [symbolic = constants.%T.as_type.b70] +// CHECK:STDOUT: %.loc18: type = converted %T.ref.loc18, %T.as_type.loc18 [symbolic = constants.%T.as_type.b70] // CHECK:STDOUT: %Interface.ref.loc18: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param.loc18: %I.type = value_param runtime_param // CHECK:STDOUT: %I.ref.loc18: type = name_ref I, file.%I.decl [template = constants.%I.type] -// CHECK:STDOUT: %T.loc18: %I.type = bind_symbolic_name T, 0, %T.param.loc18 [symbolic = constants.%T.84f] +// CHECK:STDOUT: %T.loc18: %I.type = bind_symbolic_name T, 0, %T.param.loc18 [symbolic = constants.%T.826] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.2 [template] { -// CHECK:STDOUT: %T.patt.loc12_14.1: %J.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.139)] -// CHECK:STDOUT: %T.param_patt: %J.type = value_param_pattern %T.patt.loc12_14.1, runtime_param [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.139)] +// CHECK:STDOUT: %T.patt.loc12_14.1: %J.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.371)] +// CHECK:STDOUT: %T.param_patt: %J.type = value_param_pattern %T.patt.loc12_14.1, runtime_param [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.371)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc19: %J.type = name_ref T, %T.loc19 [symbolic = constants.%T.be2] -// CHECK:STDOUT: %T.as_type.loc19: type = facet_access_type %T.ref.loc19 [symbolic = constants.%T.as_type.6d2] -// CHECK:STDOUT: %.loc19: type = converted %T.ref.loc19, %T.as_type.loc19 [symbolic = constants.%T.as_type.6d2] +// CHECK:STDOUT: %T.ref.loc19: %J.type = name_ref T, %T.loc19 [symbolic = constants.%T.ccd] +// CHECK:STDOUT: %T.as_type.loc19: type = facet_access_type %T.ref.loc19 [symbolic = constants.%T.as_type.3df] +// CHECK:STDOUT: %.loc19: type = converted %T.ref.loc19, %T.as_type.loc19 [symbolic = constants.%T.as_type.3df] // CHECK:STDOUT: %Interface.ref.loc19: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param.loc19: %J.type = value_param runtime_param // CHECK:STDOUT: %J.ref.loc19: type = name_ref J, file.%J.decl [template = constants.%J.type] -// CHECK:STDOUT: %T.loc19: %J.type = bind_symbolic_name T, 0, %T.param.loc19 [symbolic = constants.%T.be2] +// CHECK:STDOUT: %T.loc19: %J.type = bind_symbolic_name T, 0, %T.param.loc19 [symbolic = constants.%T.ccd] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.3 [template] { -// CHECK:STDOUT: %T.patt.loc13_14.1: %K.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.2b4)] -// CHECK:STDOUT: %T.param_patt: %K.type = value_param_pattern %T.patt.loc13_14.1, runtime_param [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.2b4)] +// CHECK:STDOUT: %T.patt.loc13_14.1: %K.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.036)] +// CHECK:STDOUT: %T.param_patt: %K.type = value_param_pattern %T.patt.loc13_14.1, runtime_param [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.036)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc20: %K.type = name_ref T, %T.loc20 [symbolic = constants.%T.624] -// CHECK:STDOUT: %T.as_type.loc20: type = facet_access_type %T.ref.loc20 [symbolic = constants.%T.as_type.4d9] -// CHECK:STDOUT: %.loc20: type = converted %T.ref.loc20, %T.as_type.loc20 [symbolic = constants.%T.as_type.4d9] +// CHECK:STDOUT: %T.ref.loc20: %K.type = name_ref T, %T.loc20 [symbolic = constants.%T.09f] +// CHECK:STDOUT: %T.as_type.loc20: type = facet_access_type %T.ref.loc20 [symbolic = constants.%T.as_type.037] +// CHECK:STDOUT: %.loc20: type = converted %T.ref.loc20, %T.as_type.loc20 [symbolic = constants.%T.as_type.037] // CHECK:STDOUT: %Interface.ref.loc20: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param.loc20: %K.type = value_param runtime_param // CHECK:STDOUT: %K.ref.loc20: type = name_ref K, file.%K.decl [template = constants.%K.type] -// CHECK:STDOUT: %T.loc20: %K.type = bind_symbolic_name T, 0, %T.param.loc20 [symbolic = constants.%T.624] +// CHECK:STDOUT: %T.loc20: %K.type = bind_symbolic_name T, 0, %T.param.loc20 [symbolic = constants.%T.09f] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.4 [template] { -// CHECK:STDOUT: %T.patt.loc14_14.1: %L.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.61a)] -// CHECK:STDOUT: %T.param_patt: %L.type = value_param_pattern %T.patt.loc14_14.1, runtime_param [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.61a)] +// CHECK:STDOUT: %T.patt.loc14_14.1: %L.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.29d)] +// CHECK:STDOUT: %T.param_patt: %L.type = value_param_pattern %T.patt.loc14_14.1, runtime_param [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.29d)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc21: %L.type = name_ref T, %T.loc21 [symbolic = constants.%T.4bb] -// CHECK:STDOUT: %T.as_type.loc21: type = facet_access_type %T.ref.loc21 [symbolic = constants.%T.as_type.e4e] -// CHECK:STDOUT: %.loc21: type = converted %T.ref.loc21, %T.as_type.loc21 [symbolic = constants.%T.as_type.e4e] +// CHECK:STDOUT: %T.ref.loc21: %L.type = name_ref T, %T.loc21 [symbolic = constants.%T.1d2] +// CHECK:STDOUT: %T.as_type.loc21: type = facet_access_type %T.ref.loc21 [symbolic = constants.%T.as_type.0ed] +// CHECK:STDOUT: %.loc21: type = converted %T.ref.loc21, %T.as_type.loc21 [symbolic = constants.%T.as_type.0ed] // CHECK:STDOUT: %Interface.ref.loc21: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param.loc21: %L.type = value_param runtime_param // CHECK:STDOUT: %L.ref.loc21: type = name_ref L, file.%L.decl [template = constants.%L.type] -// CHECK:STDOUT: %T.loc21: %L.type = bind_symbolic_name T, 0, %T.param.loc21 [symbolic = constants.%T.4bb] +// CHECK:STDOUT: %T.loc21: %L.type = bind_symbolic_name T, 0, %T.param.loc21 [symbolic = constants.%T.1d2] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.843] +// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -218,7 +218,7 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -226,7 +226,7 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f9f] +// CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.ccd] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -234,7 +234,7 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @K { -// CHECK:STDOUT: %Self: %K.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.744] +// CHECK:STDOUT: %Self: %K.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.09f] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -242,7 +242,7 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @L { -// CHECK:STDOUT: %Self: %L.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.863] +// CHECK:STDOUT: %Self: %L.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.1d2] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -250,10 +250,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl.1(%T.loc11_14.1: %I.type) { -// CHECK:STDOUT: %T.loc11_14.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc11_14.2 (constants.%T.84f)] -// CHECK:STDOUT: %T.patt.loc11_14.2: %I.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.8d6)] -// CHECK:STDOUT: %T.as_type.loc11_21.2: type = facet_access_type %T.loc11_14.2 [symbolic = %T.as_type.loc11_21.2 (constants.%T.as_type.26f)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T.loc11_14.2) [symbolic = %impl_witness (constants.%impl_witness.62c)] +// CHECK:STDOUT: %T.loc11_14.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc11_14.2 (constants.%T.826)] +// CHECK:STDOUT: %T.patt.loc11_14.2: %I.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_14.2 (constants.%T.patt.3ad)] +// CHECK:STDOUT: %T.as_type.loc11_21.2: type = facet_access_type %T.loc11_14.2 [symbolic = %T.as_type.loc11_21.2 (constants.%T.as_type.b70)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T.loc11_14.2) [symbolic = %impl_witness (constants.%impl_witness.d14)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -264,10 +264,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl.2(%T.loc12_14.1: %J.type) { -// CHECK:STDOUT: %T.loc12_14.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T.be2)] -// CHECK:STDOUT: %T.patt.loc12_14.2: %J.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.139)] -// CHECK:STDOUT: %T.as_type.loc12_21.2: type = facet_access_type %T.loc12_14.2 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.6d2)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T.loc12_14.2) [symbolic = %impl_witness (constants.%impl_witness.305)] +// CHECK:STDOUT: %T.loc12_14.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T.ccd)] +// CHECK:STDOUT: %T.patt.loc12_14.2: %J.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt.371)] +// CHECK:STDOUT: %T.as_type.loc12_21.2: type = facet_access_type %T.loc12_14.2 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.3df)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T.loc12_14.2) [symbolic = %impl_witness (constants.%impl_witness.d94)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -278,10 +278,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl.3(%T.loc13_14.1: %K.type) { -// CHECK:STDOUT: %T.loc13_14.2: %K.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_14.2 (constants.%T.624)] -// CHECK:STDOUT: %T.patt.loc13_14.2: %K.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.2b4)] -// CHECK:STDOUT: %T.as_type.loc13_21.2: type = facet_access_type %T.loc13_14.2 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.4d9)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.3(%T.loc13_14.2) [symbolic = %impl_witness (constants.%impl_witness.c4a)] +// CHECK:STDOUT: %T.loc13_14.2: %K.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_14.2 (constants.%T.09f)] +// CHECK:STDOUT: %T.patt.loc13_14.2: %K.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_14.2 (constants.%T.patt.036)] +// CHECK:STDOUT: %T.as_type.loc13_21.2: type = facet_access_type %T.loc13_14.2 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.037)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.3(%T.loc13_14.2) [symbolic = %impl_witness (constants.%impl_witness.8aa)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -292,10 +292,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl.4(%T.loc14_14.1: %L.type) { -// CHECK:STDOUT: %T.loc14_14.2: %L.type = bind_symbolic_name T, 0 [symbolic = %T.loc14_14.2 (constants.%T.4bb)] -// CHECK:STDOUT: %T.patt.loc14_14.2: %L.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.61a)] -// CHECK:STDOUT: %T.as_type.loc14_21.2: type = facet_access_type %T.loc14_14.2 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.e4e)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.4(%T.loc14_14.2) [symbolic = %impl_witness (constants.%impl_witness.a8f)] +// CHECK:STDOUT: %T.loc14_14.2: %L.type = bind_symbolic_name T, 0 [symbolic = %T.loc14_14.2 (constants.%T.1d2)] +// CHECK:STDOUT: %T.patt.loc14_14.2: %L.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt.29d)] +// CHECK:STDOUT: %T.as_type.loc14_21.2: type = facet_access_type %T.loc14_14.2 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.0ed)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.4(%T.loc14_14.2) [symbolic = %impl_witness (constants.%impl_witness.da5)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -305,38 +305,38 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl.1(constants.%T.84f) { -// CHECK:STDOUT: %T.loc11_14.2 => constants.%T.84f -// CHECK:STDOUT: %T.patt.loc11_14.2 => constants.%T.84f -// CHECK:STDOUT: %T.as_type.loc11_21.2 => constants.%T.as_type.26f -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.62c +// CHECK:STDOUT: specific @impl.1(constants.%T.826) { +// CHECK:STDOUT: %T.loc11_14.2 => constants.%T.826 +// CHECK:STDOUT: %T.patt.loc11_14.2 => constants.%T.826 +// CHECK:STDOUT: %T.as_type.loc11_21.2 => constants.%T.as_type.b70 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.d14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.1(%T.loc11_14.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl.2(constants.%T.be2) { -// CHECK:STDOUT: %T.loc12_14.2 => constants.%T.be2 -// CHECK:STDOUT: %T.patt.loc12_14.2 => constants.%T.be2 -// CHECK:STDOUT: %T.as_type.loc12_21.2 => constants.%T.as_type.6d2 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.305 +// CHECK:STDOUT: specific @impl.2(constants.%T.ccd) { +// CHECK:STDOUT: %T.loc12_14.2 => constants.%T.ccd +// CHECK:STDOUT: %T.patt.loc12_14.2 => constants.%T.ccd +// CHECK:STDOUT: %T.as_type.loc12_21.2 => constants.%T.as_type.3df +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.d94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.2(%T.loc12_14.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl.3(constants.%T.624) { -// CHECK:STDOUT: %T.loc13_14.2 => constants.%T.624 -// CHECK:STDOUT: %T.patt.loc13_14.2 => constants.%T.624 -// CHECK:STDOUT: %T.as_type.loc13_21.2 => constants.%T.as_type.4d9 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.c4a +// CHECK:STDOUT: specific @impl.3(constants.%T.09f) { +// CHECK:STDOUT: %T.loc13_14.2 => constants.%T.09f +// CHECK:STDOUT: %T.patt.loc13_14.2 => constants.%T.09f +// CHECK:STDOUT: %T.as_type.loc13_21.2 => constants.%T.as_type.037 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.8aa // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.3(%T.loc13_14.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl.4(constants.%T.4bb) { -// CHECK:STDOUT: %T.loc14_14.2 => constants.%T.4bb -// CHECK:STDOUT: %T.patt.loc14_14.2 => constants.%T.4bb -// CHECK:STDOUT: %T.as_type.loc14_21.2 => constants.%T.as_type.e4e -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.a8f +// CHECK:STDOUT: specific @impl.4(constants.%T.1d2) { +// CHECK:STDOUT: %T.loc14_14.2 => constants.%T.1d2 +// CHECK:STDOUT: %T.patt.loc14_14.2 => constants.%T.1d2 +// CHECK:STDOUT: %T.as_type.loc14_21.2 => constants.%T.as_type.0ed +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.da5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.4(%T.loc14_14.2) {} @@ -345,9 +345,9 @@ impl (C, C).0 as I {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J.type: type = facet_type <@J> [template] -// CHECK:STDOUT: %Self.f9f: %J.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.ccd: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: %I.type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] @@ -389,7 +389,7 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -397,7 +397,7 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f9f] +// CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.ccd] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self diff --git a/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon b/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon index 9ba498ad3eab..b9a3b686c05d 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon @@ -82,9 +82,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [template] // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %Op.type.16a: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %Op.93e: %Op.type.16a = struct_value () [template] -// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.16a [template] +// CHECK:STDOUT: %Op.type.31b: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.d59: %Op.type.31b = struct_value () [template] +// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.31b [template] // CHECK:STDOUT: %assoc0: %Op.assoc_type = assoc_entity element0, @Add.%Op.decl [template] // CHECK:STDOUT: %IntLiteral.type: type = fn_type @IntLiteral [template] // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [template] @@ -96,12 +96,12 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %MyInt.generic: %MyInt.type = struct_value () [template] // CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic] // CHECK:STDOUT: %iN.builtin: type = int_type signed, %N [symbolic] -// CHECK:STDOUT: %require_complete.889: = require_complete_type %iN.builtin [symbolic] +// CHECK:STDOUT: %require_complete.f1b: = require_complete_type %iN.builtin [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %iN.builtin [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Op.decl), @impl(%N) [symbolic] -// CHECK:STDOUT: %Op.type.43e: type = fn_type @Op.2, @impl(%N) [symbolic] -// CHECK:STDOUT: %Op.83a: %Op.type.43e = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.b8c: = require_complete_type %MyInt [symbolic] +// CHECK:STDOUT: %Op.type.883: type = fn_type @Op.2, @impl(%N) [symbolic] +// CHECK:STDOUT: %Op.8bc: %Op.type.883 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.fc7: = require_complete_type %MyInt [symbolic] // CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt, %impl_witness [symbolic] // CHECK:STDOUT: %Double.type: type = fn_type @Double [template] // CHECK:STDOUT: %Double: %Double.type = struct_value () [template] @@ -204,7 +204,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: interface @Add { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %Op.decl: %Op.type.16a = fn_decl @Op.1 [template = constants.%Op.93e] { +// CHECK:STDOUT: %Op.decl: %Op.type.31b = fn_decl @Op.1 [template = constants.%Op.d59] { // CHECK:STDOUT: %self.patt: @Op.1.%Self.as_type.loc5_15.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @Op.1.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: @Op.1.%Self.as_type.loc5_15.1 (%Self.as_type) = binding_pattern other @@ -247,12 +247,12 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %impl_witness: = impl_witness (%Op.decl), @impl(%N.loc15_14.2) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N.loc15_14.2) [symbolic = %Op.type (constants.%Op.type.43e)] -// CHECK:STDOUT: %Op: @impl.%Op.type (%Op.type.43e) = struct_value () [symbolic = %Op (constants.%Op.83a)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%MyInt.loc15_39.2 (%MyInt) [symbolic = %require_complete (constants.%require_complete.b8c)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N.loc15_14.2) [symbolic = %Op.type (constants.%Op.type.883)] +// CHECK:STDOUT: %Op: @impl.%Op.type (%Op.type.883) = struct_value () [symbolic = %Op (constants.%Op.8bc)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%MyInt.loc15_39.2 (%MyInt) [symbolic = %require_complete (constants.%require_complete.fc7)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %MyInt.loc15_39.1 as %Add.ref { -// CHECK:STDOUT: %Op.decl: @impl.%Op.type (%Op.type.43e) = fn_decl @Op.2 [symbolic = @impl.%Op (constants.%Op.83a)] { +// CHECK:STDOUT: %Op.decl: @impl.%Op.type (%Op.type.883) = fn_decl @Op.2 [symbolic = @impl.%Op (constants.%Op.8bc)] { // CHECK:STDOUT: %self.patt: @Op.2.%MyInt (%MyInt) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @Op.2.%MyInt (%MyInt) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: @Op.2.%MyInt (%MyInt) = binding_pattern other @@ -283,7 +283,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %iN.builtin: type = int_type signed, %N.loc11_13.2 [symbolic = %iN.builtin (constants.%iN.builtin)] -// CHECK:STDOUT: %require_complete: = require_complete_type @MyInt.%iN.builtin (%iN.builtin) [symbolic = %require_complete (constants.%require_complete.889)] +// CHECK:STDOUT: %require_complete: = require_complete_type @MyInt.%iN.builtin (%iN.builtin) [symbolic = %require_complete (constants.%require_complete.f1b)] // CHECK:STDOUT: %complete_type.loc13_1.2: = complete_type_witness @MyInt.%iN.builtin (%iN.builtin) [symbolic = %complete_type.loc13_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -327,16 +327,16 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %MyInt.loc19_39.2: type = class_type @MyInt, @MyInt(%N.loc19_11.2) [symbolic = %MyInt.loc19_39.2 (constants.%MyInt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Double.%MyInt.loc19_39.2 (%MyInt) [symbolic = %require_complete (constants.%require_complete.b8c)] -// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N.loc19_11.2) [symbolic = %Op.type (constants.%Op.type.43e)] -// CHECK:STDOUT: %Op: @Double.%Op.type (%Op.type.43e) = struct_value () [symbolic = %Op (constants.%Op.83a)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Double.%MyInt.loc19_39.2 (%MyInt) [symbolic = %require_complete (constants.%require_complete.fc7)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N.loc19_11.2) [symbolic = %Op.type (constants.%Op.type.883)] +// CHECK:STDOUT: %Op: @Double.%Op.type (%Op.type.883) = struct_value () [symbolic = %Op (constants.%Op.8bc)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%N.param_patt: Core.IntLiteral](%x.param_patt: @Double.%MyInt.loc19_39.2 (%MyInt)) -> @Double.%MyInt.loc19_39.2 (%MyInt) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref.loc20_10: @Double.%MyInt.loc19_39.2 (%MyInt) = name_ref x, %x // CHECK:STDOUT: %Add.ref: type = name_ref Add, file.%Add.decl [template = constants.%Add.type] // CHECK:STDOUT: %Op.ref: %Op.assoc_type = name_ref Op, @Add.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %Op.type.16a = impl_witness_access constants.%impl_witness, element0 [symbolic = %Op (constants.%Op.83a)] +// CHECK:STDOUT: %impl.elem0: %Op.type.31b = impl_witness_access constants.%impl_witness, element0 [symbolic = %Op (constants.%Op.8bc)] // CHECK:STDOUT: %Op.bound: = bound_method %x.ref.loc20_10, %impl.elem0 // CHECK:STDOUT: %x.ref.loc20_21: @Double.%MyInt.loc19_39.2 (%MyInt) = name_ref x, %x // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.bound, @Op.2(constants.%N) @@ -358,7 +358,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %iN.builtin => constants.%iN.builtin -// CHECK:STDOUT: %require_complete => constants.%require_complete.889 +// CHECK:STDOUT: %require_complete => constants.%require_complete.f1b // CHECK:STDOUT: %complete_type.loc13_1.2 => constants.%complete_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -369,9 +369,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %impl_witness => constants.%impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Op.type => constants.%Op.type.43e -// CHECK:STDOUT: %Op => constants.%Op.83a -// CHECK:STDOUT: %require_complete => constants.%require_complete.b8c +// CHECK:STDOUT: %Op.type => constants.%Op.type.883 +// CHECK:STDOUT: %Op => constants.%Op.8bc +// CHECK:STDOUT: %require_complete => constants.%require_complete.fc7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt(@impl.%N.loc15_14.2) {} @@ -409,30 +409,30 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %MyInt.generic: %MyInt.type = struct_value () [template] // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic] // CHECK:STDOUT: %iN.builtin: type = int_type signed, %N [symbolic] -// CHECK:STDOUT: %complete_type.c6b: = complete_type_witness %iN.builtin [symbolic] -// CHECK:STDOUT: %MyInt.080: type = class_type @MyInt, @MyInt(%N) [symbolic] +// CHECK:STDOUT: %complete_type.a87: = complete_type_witness %iN.builtin [symbolic] +// CHECK:STDOUT: %MyInt.09f: type = class_type @MyInt, @MyInt(%N) [symbolic] // CHECK:STDOUT: %N.patt: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %require_complete.889: = require_complete_type %iN.builtin [symbolic] +// CHECK:STDOUT: %require_complete.f1b: = require_complete_type %iN.builtin [symbolic] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [template] -// CHECK:STDOUT: %MyInt.f94: type = class_type @MyInt, @MyInt(%int_64) [template] +// CHECK:STDOUT: %MyInt.f30: type = class_type @MyInt, @MyInt(%int_64) [template] // CHECK:STDOUT: %LocalDouble.type: type = fn_type @LocalDouble [template] // CHECK:STDOUT: %LocalDouble: %LocalDouble.type = struct_value () [template] // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [template] // CHECK:STDOUT: %complete_type.4a1: = complete_type_witness %i64.builtin [template] // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [template] // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Op.type.16a: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.type.31b: type = fn_type @Op.1 [template] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.16a [template] -// CHECK:STDOUT: %assoc0: %Op.assoc_type = assoc_entity element0, imports.%import_ref.3bf [template] -// CHECK:STDOUT: %impl_witness.43f: = impl_witness (imports.%import_ref.b01), @impl(%N) [symbolic] -// CHECK:STDOUT: %Op.type.c77: type = fn_type @Op.2, @impl(%N) [symbolic] -// CHECK:STDOUT: %Op.947: %Op.type.c77 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.e07: = require_complete_type %MyInt.080 [symbolic] -// CHECK:STDOUT: %impl_witness.463: = impl_witness (imports.%import_ref.b01), @impl(%int_64) [template] -// CHECK:STDOUT: %impl_witness.68e: = impl_witness (imports.%import_ref.1b9), @impl(%N) [symbolic] -// CHECK:STDOUT: %Op.type.d80: type = fn_type @Op.2, @impl(%int_64) [template] -// CHECK:STDOUT: %Op.bdc: %Op.type.d80 = struct_value () [template] +// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.31b [template] +// CHECK:STDOUT: %assoc0: %Op.assoc_type = assoc_entity element0, imports.%import_ref.047 [template] +// CHECK:STDOUT: %impl_witness.3a3: = impl_witness (imports.%import_ref.19b), @impl(%N) [symbolic] +// CHECK:STDOUT: %Op.type.883: type = fn_type @Op.2, @impl(%N) [symbolic] +// CHECK:STDOUT: %Op.8bc: %Op.type.883 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.fc7: = require_complete_type %MyInt.09f [symbolic] +// CHECK:STDOUT: %impl_witness.8d6: = impl_witness (imports.%import_ref.19b), @impl(%int_64) [template] +// CHECK:STDOUT: %impl_witness.7e5: = impl_witness (imports.%import_ref.464), @impl(%N) [symbolic] +// CHECK:STDOUT: %Op.type.5a6: type = fn_type @Op.2, @impl(%int_64) [template] +// CHECK:STDOUT: %Op.cf9: %Op.type.5a6 = struct_value () [template] // CHECK:STDOUT: %CallImportedDouble.type: type = fn_type @CallImportedDouble [template] // CHECK:STDOUT: %CallImportedDouble: %CallImportedDouble.type = struct_value () [template] // CHECK:STDOUT: %Double.type: type = fn_type @Double [template] @@ -441,94 +441,94 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4b5: type = import_ref Main//generic_impl, Add, loaded [template = constants.%Add.type] -// CHECK:STDOUT: %import_ref.f28 = import_ref Main//generic_impl, IntLiteral, unloaded -// CHECK:STDOUT: %import_ref.11e = import_ref Main//generic_impl, Int, unloaded -// CHECK:STDOUT: %import_ref.ea3: %MyInt.type = import_ref Main//generic_impl, MyInt, loaded [template = constants.%MyInt.generic] -// CHECK:STDOUT: %import_ref.206: %Double.type = import_ref Main//generic_impl, Double, loaded [template = constants.%Double] -// CHECK:STDOUT: %import_ref.caf: = import_ref Main//generic_impl, loc13_1, loaded [symbolic = @MyInt.%complete_type (constants.%complete_type.c6b)] -// CHECK:STDOUT: %import_ref.b26 = import_ref Main//generic_impl, inst89 [no loc], unloaded -// CHECK:STDOUT: %import_ref.72a = import_ref Main//generic_impl, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.b57: %Op.assoc_type = import_ref Main//generic_impl, loc5_41, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.b75 = import_ref Main//generic_impl, Op, unloaded -// CHECK:STDOUT: %import_ref.0f5: = import_ref Main//generic_impl, loc15_48, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.68e)] -// CHECK:STDOUT: %import_ref.7b9: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @impl.%MyInt (constants.%MyInt.080)] -// CHECK:STDOUT: %import_ref.d37: type = import_ref Main//generic_impl, loc15_44, loaded [template = constants.%Add.type] -// CHECK:STDOUT: %import_ref.b01: @impl.%Op.type (%Op.type.c77) = import_ref Main//generic_impl, loc16_42, loaded [symbolic = @impl.%Op (constants.%Op.947)] +// CHECK:STDOUT: %import_ref.fe6: type = import_ref Main//generic_impl, Add, loaded [template = constants.%Add.type] +// CHECK:STDOUT: %import_ref.174 = import_ref Main//generic_impl, IntLiteral, unloaded +// CHECK:STDOUT: %import_ref.0dc = import_ref Main//generic_impl, Int, unloaded +// CHECK:STDOUT: %import_ref.370: %MyInt.type = import_ref Main//generic_impl, MyInt, loaded [template = constants.%MyInt.generic] +// CHECK:STDOUT: %import_ref.1a7: %Double.type = import_ref Main//generic_impl, Double, loaded [template = constants.%Double] +// CHECK:STDOUT: %import_ref.9e9: = import_ref Main//generic_impl, loc13_1, loaded [symbolic = @MyInt.%complete_type (constants.%complete_type.a87)] +// CHECK:STDOUT: %import_ref.697 = import_ref Main//generic_impl, inst89 [no loc], unloaded +// CHECK:STDOUT: %import_ref.07c = import_ref Main//generic_impl, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.6d9: %Op.assoc_type = import_ref Main//generic_impl, loc5_41, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.044 = import_ref Main//generic_impl, Op, unloaded +// CHECK:STDOUT: %import_ref.33b: = import_ref Main//generic_impl, loc15_48, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.7e5)] +// CHECK:STDOUT: %import_ref.719: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @impl.%MyInt (constants.%MyInt.09f)] +// CHECK:STDOUT: %import_ref.bf0: type = import_ref Main//generic_impl, loc15_44, loaded [template = constants.%Add.type] +// CHECK:STDOUT: %import_ref.19b: @impl.%Op.type (%Op.type.883) = import_ref Main//generic_impl, loc16_42, loaded [symbolic = @impl.%Op (constants.%Op.8bc)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Add = imports.%import_ref.4b5 -// CHECK:STDOUT: .IntLiteral = imports.%import_ref.f28 -// CHECK:STDOUT: .Int = imports.%import_ref.11e -// CHECK:STDOUT: .MyInt = imports.%import_ref.ea3 -// CHECK:STDOUT: .Double = imports.%import_ref.206 +// CHECK:STDOUT: .Add = imports.%import_ref.fe6 +// CHECK:STDOUT: .IntLiteral = imports.%import_ref.174 +// CHECK:STDOUT: .Int = imports.%import_ref.0dc +// CHECK:STDOUT: .MyInt = imports.%import_ref.370 +// CHECK:STDOUT: .Double = imports.%import_ref.1a7 // CHECK:STDOUT: .LocalDouble = %LocalDouble.decl // CHECK:STDOUT: .CallImportedDouble = %CallImportedDouble.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %LocalDouble.decl: %LocalDouble.type = fn_decl @LocalDouble [template = constants.%LocalDouble] { -// CHECK:STDOUT: %x.patt: %MyInt.f94 = binding_pattern x -// CHECK:STDOUT: %x.param_patt: %MyInt.f94 = value_param_pattern %x.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %MyInt.f94 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %MyInt.f94 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %x.patt: %MyInt.f30 = binding_pattern x +// CHECK:STDOUT: %x.param_patt: %MyInt.f30 = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %MyInt.f30 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %MyInt.f30 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %MyInt.ref.loc8_33: %MyInt.type = name_ref MyInt, imports.%import_ref.ea3 [template = constants.%MyInt.generic] +// CHECK:STDOUT: %MyInt.ref.loc8_33: %MyInt.type = name_ref MyInt, imports.%import_ref.370 [template = constants.%MyInt.generic] // CHECK:STDOUT: %int_64.loc8_39: Core.IntLiteral = int_value 64 [template = constants.%int_64] -// CHECK:STDOUT: %MyInt.loc8_41: type = class_type @MyInt, @MyInt(constants.%int_64) [template = constants.%MyInt.f94] -// CHECK:STDOUT: %x.param: %MyInt.f94 = value_param runtime_param0 -// CHECK:STDOUT: %.loc8: type = splice_block %MyInt.loc8_27 [template = constants.%MyInt.f94] { -// CHECK:STDOUT: %MyInt.ref.loc8_19: %MyInt.type = name_ref MyInt, imports.%import_ref.ea3 [template = constants.%MyInt.generic] +// CHECK:STDOUT: %MyInt.loc8_41: type = class_type @MyInt, @MyInt(constants.%int_64) [template = constants.%MyInt.f30] +// CHECK:STDOUT: %x.param: %MyInt.f30 = value_param runtime_param0 +// CHECK:STDOUT: %.loc8: type = splice_block %MyInt.loc8_27 [template = constants.%MyInt.f30] { +// CHECK:STDOUT: %MyInt.ref.loc8_19: %MyInt.type = name_ref MyInt, imports.%import_ref.370 [template = constants.%MyInt.generic] // CHECK:STDOUT: %int_64.loc8_25: Core.IntLiteral = int_value 64 [template = constants.%int_64] -// CHECK:STDOUT: %MyInt.loc8_27: type = class_type @MyInt, @MyInt(constants.%int_64) [template = constants.%MyInt.f94] +// CHECK:STDOUT: %MyInt.loc8_27: type = class_type @MyInt, @MyInt(constants.%int_64) [template = constants.%MyInt.f30] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %MyInt.f94 = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref %MyInt.f94 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %MyInt.f94 = return_slot %return.param +// CHECK:STDOUT: %x: %MyInt.f30 = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref %MyInt.f30 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %MyInt.f30 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallImportedDouble.decl: %CallImportedDouble.type = fn_decl @CallImportedDouble [template = constants.%CallImportedDouble] { -// CHECK:STDOUT: %n.patt: %MyInt.f94 = binding_pattern n -// CHECK:STDOUT: %n.param_patt: %MyInt.f94 = value_param_pattern %n.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %MyInt.f94 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %MyInt.f94 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %n.patt: %MyInt.f30 = binding_pattern n +// CHECK:STDOUT: %n.param_patt: %MyInt.f30 = value_param_pattern %n.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %MyInt.f30 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %MyInt.f30 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %MyInt.ref.loc12_40: %MyInt.type = name_ref MyInt, imports.%import_ref.ea3 [template = constants.%MyInt.generic] +// CHECK:STDOUT: %MyInt.ref.loc12_40: %MyInt.type = name_ref MyInt, imports.%import_ref.370 [template = constants.%MyInt.generic] // CHECK:STDOUT: %int_64.loc12_46: Core.IntLiteral = int_value 64 [template = constants.%int_64] -// CHECK:STDOUT: %MyInt.loc12_48: type = class_type @MyInt, @MyInt(constants.%int_64) [template = constants.%MyInt.f94] -// CHECK:STDOUT: %n.param: %MyInt.f94 = value_param runtime_param0 -// CHECK:STDOUT: %.loc12: type = splice_block %MyInt.loc12_34 [template = constants.%MyInt.f94] { -// CHECK:STDOUT: %MyInt.ref.loc12_26: %MyInt.type = name_ref MyInt, imports.%import_ref.ea3 [template = constants.%MyInt.generic] +// CHECK:STDOUT: %MyInt.loc12_48: type = class_type @MyInt, @MyInt(constants.%int_64) [template = constants.%MyInt.f30] +// CHECK:STDOUT: %n.param: %MyInt.f30 = value_param runtime_param0 +// CHECK:STDOUT: %.loc12: type = splice_block %MyInt.loc12_34 [template = constants.%MyInt.f30] { +// CHECK:STDOUT: %MyInt.ref.loc12_26: %MyInt.type = name_ref MyInt, imports.%import_ref.370 [template = constants.%MyInt.generic] // CHECK:STDOUT: %int_64.loc12_32: Core.IntLiteral = int_value 64 [template = constants.%int_64] -// CHECK:STDOUT: %MyInt.loc12_34: type = class_type @MyInt, @MyInt(constants.%int_64) [template = constants.%MyInt.f94] +// CHECK:STDOUT: %MyInt.loc12_34: type = class_type @MyInt, @MyInt(constants.%int_64) [template = constants.%MyInt.f30] // CHECK:STDOUT: } -// CHECK:STDOUT: %n: %MyInt.f94 = bind_name n, %n.param -// CHECK:STDOUT: %return.param: ref %MyInt.f94 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %MyInt.f94 = return_slot %return.param +// CHECK:STDOUT: %n: %MyInt.f30 = bind_name n, %n.param +// CHECK:STDOUT: %return.param: ref %MyInt.f30 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %MyInt.f30 = 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.%import_ref.72a -// CHECK:STDOUT: .Op = imports.%import_ref.b57 -// CHECK:STDOUT: witness = (imports.%import_ref.b75) +// CHECK:STDOUT: .Self = imports.%import_ref.07c +// CHECK:STDOUT: .Op = imports.%import_ref.6d9 +// CHECK:STDOUT: witness = (imports.%import_ref.044) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl(constants.%N: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %N.patt: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt)] -// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.080)] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.b01), @impl(%N) [symbolic = %impl_witness (constants.%impl_witness.43f)] +// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.09f)] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.19b), @impl(%N) [symbolic = %impl_witness (constants.%impl_witness.3a3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N) [symbolic = %Op.type (constants.%Op.type.c77)] -// CHECK:STDOUT: %Op: @impl.%Op.type (%Op.type.c77) = struct_value () [symbolic = %Op (constants.%Op.947)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%MyInt (%MyInt.080) [symbolic = %require_complete (constants.%require_complete.e07)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N) [symbolic = %Op.type (constants.%Op.type.883)] +// CHECK:STDOUT: %Op: @impl.%Op.type (%Op.type.883) = struct_value () [symbolic = %Op (constants.%Op.8bc)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.%MyInt (%MyInt.09f) [symbolic = %require_complete (constants.%require_complete.fc7)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%import_ref.7b9 as imports.%import_ref.d37 { +// CHECK:STDOUT: impl: imports.%import_ref.719 as imports.%import_ref.bf0 { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.0f5 +// CHECK:STDOUT: witness = imports.%import_ref.33b // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -538,28 +538,28 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %iN.builtin: type = int_type signed, %N [symbolic = %iN.builtin (constants.%iN.builtin)] -// CHECK:STDOUT: %require_complete: = require_complete_type @MyInt.%iN.builtin (%iN.builtin) [symbolic = %require_complete (constants.%require_complete.889)] -// CHECK:STDOUT: %complete_type: = complete_type_witness @MyInt.%iN.builtin (%iN.builtin) [symbolic = %complete_type (constants.%complete_type.c6b)] +// CHECK:STDOUT: %require_complete: = require_complete_type @MyInt.%iN.builtin (%iN.builtin) [symbolic = %require_complete (constants.%require_complete.f1b)] +// CHECK:STDOUT: %complete_type: = complete_type_witness @MyInt.%iN.builtin (%iN.builtin) [symbolic = %complete_type (constants.%complete_type.a87)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.b26 -// CHECK:STDOUT: complete_type_witness = imports.%import_ref.caf +// CHECK:STDOUT: .Self = imports.%import_ref.697 +// CHECK:STDOUT: complete_type_witness = imports.%import_ref.9e9 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @LocalDouble(%x.param_patt: %MyInt.f94) -> %MyInt.f94 { +// CHECK:STDOUT: fn @LocalDouble(%x.param_patt: %MyInt.f30) -> %MyInt.f30 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc9_10: %MyInt.f94 = name_ref x, %x -// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.4b5 [template = constants.%Add.type] -// CHECK:STDOUT: %Op.ref: %Op.assoc_type = name_ref Op, imports.%import_ref.b57 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %Op.type.16a = impl_witness_access constants.%impl_witness.463, element0 [template = constants.%Op.bdc] +// CHECK:STDOUT: %x.ref.loc9_10: %MyInt.f30 = name_ref x, %x +// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.fe6 [template = constants.%Add.type] +// CHECK:STDOUT: %Op.ref: %Op.assoc_type = name_ref Op, imports.%import_ref.6d9 [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %Op.type.31b = impl_witness_access constants.%impl_witness.8d6, element0 [template = constants.%Op.cf9] // CHECK:STDOUT: %Op.bound: = bound_method %x.ref.loc9_10, %impl.elem0 -// CHECK:STDOUT: %x.ref.loc9_21: %MyInt.f94 = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc9_21: %MyInt.f30 = name_ref x, %x // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.bound, @Op.2(constants.%int_64) -// CHECK:STDOUT: %int.sadd: init %MyInt.f94 = call %Op.specific_fn(%x.ref.loc9_10, %x.ref.loc9_21) -// CHECK:STDOUT: %.loc9_23.1: %MyInt.f94 = value_of_initializer %int.sadd -// CHECK:STDOUT: %.loc9_23.2: %MyInt.f94 = converted %int.sadd, %.loc9_23.1 +// CHECK:STDOUT: %int.sadd: init %MyInt.f30 = call %Op.specific_fn(%x.ref.loc9_10, %x.ref.loc9_21) +// CHECK:STDOUT: %.loc9_23.1: %MyInt.f30 = value_of_initializer %int.sadd +// CHECK:STDOUT: %.loc9_23.2: %MyInt.f30 = converted %int.sadd, %.loc9_23.1 // CHECK:STDOUT: return %.loc9_23.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -572,35 +572,35 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Op.2(constants.%N: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.080)] +// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.09f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @Op.2.%MyInt (%MyInt.080)](%other.param_patt: @Op.2.%MyInt (%MyInt.080)) -> @Op.2.%MyInt (%MyInt.080) = "int.sadd"; +// CHECK:STDOUT: fn[%self.param_patt: @Op.2.%MyInt (%MyInt.09f)](%other.param_patt: @Op.2.%MyInt (%MyInt.09f)) -> @Op.2.%MyInt (%MyInt.09f) = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallImportedDouble(%n.param_patt: %MyInt.f94) -> %MyInt.f94 { +// CHECK:STDOUT: fn @CallImportedDouble(%n.param_patt: %MyInt.f30) -> %MyInt.f30 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Double.ref: %Double.type = name_ref Double, imports.%import_ref.206 [template = constants.%Double] -// CHECK:STDOUT: %n.ref: %MyInt.f94 = name_ref n, %n +// CHECK:STDOUT: %Double.ref: %Double.type = name_ref Double, imports.%import_ref.1a7 [template = constants.%Double] +// CHECK:STDOUT: %n.ref: %MyInt.f30 = name_ref n, %n // CHECK:STDOUT: %Double.specific_fn: = specific_function %Double.ref, @Double(constants.%int_64) [template = constants.%Double.specific_fn] -// CHECK:STDOUT: %Double.call: init %MyInt.f94 = call %Double.specific_fn(%n.ref) -// CHECK:STDOUT: %.loc13_19.1: %MyInt.f94 = value_of_initializer %Double.call -// CHECK:STDOUT: %.loc13_19.2: %MyInt.f94 = converted %Double.call, %.loc13_19.1 +// CHECK:STDOUT: %Double.call: init %MyInt.f30 = call %Double.specific_fn(%n.ref) +// CHECK:STDOUT: %.loc13_19.1: %MyInt.f30 = value_of_initializer %Double.call +// CHECK:STDOUT: %.loc13_19.2: %MyInt.f30 = converted %Double.call, %.loc13_19.1 // CHECK:STDOUT: return %.loc13_19.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Double(constants.%N: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %N.patt: Core.IntLiteral = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt)] -// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.080)] +// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.09f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Double.%MyInt (%MyInt.080) [symbolic = %require_complete (constants.%require_complete.e07)] -// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N) [symbolic = %Op.type (constants.%Op.type.c77)] -// CHECK:STDOUT: %Op: @Double.%Op.type (%Op.type.c77) = struct_value () [symbolic = %Op (constants.%Op.947)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Double.%MyInt (%MyInt.09f) [symbolic = %require_complete (constants.%require_complete.fc7)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N) [symbolic = %Op.type (constants.%Op.type.883)] +// CHECK:STDOUT: %Op: @Double.%Op.type (%Op.type.883) = struct_value () [symbolic = %Op (constants.%Op.8bc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.param_patt: Core.IntLiteral](%x.param_patt: @Double.%MyInt (%MyInt.080)) -> @Double.%MyInt (%MyInt.080); +// CHECK:STDOUT: fn[%N.param_patt: Core.IntLiteral](%x.param_patt: @Double.%MyInt (%MyInt.09f)) -> @Double.%MyInt (%MyInt.09f); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt(constants.%N) { @@ -609,8 +609,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %iN.builtin => constants.%iN.builtin -// CHECK:STDOUT: %require_complete => constants.%require_complete.889 -// CHECK:STDOUT: %complete_type => constants.%complete_type.c6b +// CHECK:STDOUT: %require_complete => constants.%require_complete.f1b +// CHECK:STDOUT: %complete_type => constants.%complete_type.a87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt(constants.%int_64) { @@ -631,13 +631,13 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @impl(constants.%N) { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %N.patt => constants.%N -// CHECK:STDOUT: %MyInt => constants.%MyInt.080 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.43f +// CHECK:STDOUT: %MyInt => constants.%MyInt.09f +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.3a3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Op.type => constants.%Op.type.c77 -// CHECK:STDOUT: %Op => constants.%Op.947 -// CHECK:STDOUT: %require_complete => constants.%require_complete.e07 +// CHECK:STDOUT: %Op.type => constants.%Op.type.883 +// CHECK:STDOUT: %Op => constants.%Op.8bc +// CHECK:STDOUT: %require_complete => constants.%require_complete.fc7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt(@impl.%N) {} @@ -648,7 +648,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.2(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %MyInt => constants.%MyInt.080 +// CHECK:STDOUT: %MyInt => constants.%MyInt.09f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -656,18 +656,18 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @impl(constants.%int_64) { // CHECK:STDOUT: %N => constants.%int_64 // CHECK:STDOUT: %N.patt => constants.%int_64 -// CHECK:STDOUT: %MyInt => constants.%MyInt.f94 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.463 +// CHECK:STDOUT: %MyInt => constants.%MyInt.f30 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.8d6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Op.type => constants.%Op.type.d80 -// CHECK:STDOUT: %Op => constants.%Op.bdc +// CHECK:STDOUT: %Op.type => constants.%Op.type.5a6 +// CHECK:STDOUT: %Op => constants.%Op.cf9 // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.2(constants.%int_64) { // CHECK:STDOUT: %N => constants.%int_64 -// CHECK:STDOUT: %MyInt => constants.%MyInt.f94 +// CHECK:STDOUT: %MyInt => constants.%MyInt.f30 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -677,7 +677,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @Double(constants.%N) { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %N.patt => constants.%N -// CHECK:STDOUT: %MyInt => constants.%MyInt.080 +// CHECK:STDOUT: %MyInt => constants.%MyInt.09f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(@Double.%N) {} @@ -685,12 +685,12 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @Double(constants.%int_64) { // CHECK:STDOUT: %N => constants.%int_64 // CHECK:STDOUT: %N.patt => constants.%int_64 -// CHECK:STDOUT: %MyInt => constants.%MyInt.f94 +// CHECK:STDOUT: %MyInt => constants.%MyInt.f30 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 -// CHECK:STDOUT: %Op.type => constants.%Op.type.d80 -// CHECK:STDOUT: %Op => constants.%Op.bdc +// CHECK:STDOUT: %Op.type => constants.%Op.type.5a6 +// CHECK:STDOUT: %Op => constants.%Op.cf9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- convert_symbolic.carbon @@ -706,27 +706,27 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %ToLiteral.cf3: %ToLiteral.type.e7c = struct_value () [template] // CHECK:STDOUT: %FromLiteral.type: type = fn_type @FromLiteral [template] // CHECK:STDOUT: %FromLiteral: %FromLiteral.type = struct_value () [template] -// CHECK:STDOUT: %N.a7a: %i32.builtin = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.8e9: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %int.convert_checked.84b: init Core.IntLiteral = call %ToLiteral.cf3(%N.a7a) [symbolic] -// CHECK:STDOUT: %iN.builtin.b6f: type = int_type signed, %int.convert_checked.84b [symbolic] +// CHECK:STDOUT: %N.987: %i32.builtin = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.36b: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %int.convert_checked.346: init Core.IntLiteral = call %ToLiteral.cf3(%N.987) [symbolic] +// CHECK:STDOUT: %iN.builtin.016: type = int_type signed, %int.convert_checked.346 [symbolic] // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.b3f: = require_complete_type %iN.builtin.b6f [symbolic] -// CHECK:STDOUT: %Make.specific_fn: = specific_function %Make, @Make(%N.a7a) [symbolic] +// CHECK:STDOUT: %require_complete.88f: = require_complete_type %iN.builtin.016 [symbolic] +// CHECK:STDOUT: %Make.specific_fn: = specific_function %Make, @Make(%N.987) [symbolic] // CHECK:STDOUT: %OtherInt: type = class_type @OtherInt [template] -// CHECK:STDOUT: %ToLiteral.type.ea8: type = fn_type @ToLiteral.2 [template] -// CHECK:STDOUT: %ToLiteral.5b3: %ToLiteral.type.ea8 = struct_value () [template] +// CHECK:STDOUT: %ToLiteral.type.67d: type = fn_type @ToLiteral.2 [template] +// CHECK:STDOUT: %ToLiteral.ec2: %ToLiteral.type.67d = struct_value () [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %N.1a2: %OtherInt = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.71c: %OtherInt = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %ToLiteral.bound: = bound_method %N.1a2, %ToLiteral.5b3 [symbolic] -// CHECK:STDOUT: %int.convert_checked.519: init Core.IntLiteral = call %ToLiteral.bound(%N.1a2) [symbolic] -// CHECK:STDOUT: %iN.builtin.5d1: type = int_type signed, %int.convert_checked.519 [symbolic] +// CHECK:STDOUT: %N.335: %OtherInt = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.59d: %OtherInt = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %ToLiteral.bound: = bound_method %N.335, %ToLiteral.ec2 [symbolic] +// CHECK:STDOUT: %int.convert_checked.b6b: init Core.IntLiteral = call %ToLiteral.bound(%N.335) [symbolic] +// CHECK:STDOUT: %iN.builtin.9ef: type = int_type signed, %int.convert_checked.b6b [symbolic] // CHECK:STDOUT: %MakeFromClass.type: type = fn_type @MakeFromClass [template] // CHECK:STDOUT: %MakeFromClass: %MakeFromClass.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.02e: = require_complete_type %iN.builtin.5d1 [symbolic] -// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function %MakeFromClass, @MakeFromClass(%N.1a2) [symbolic] +// CHECK:STDOUT: %require_complete.c7d: = require_complete_type %iN.builtin.9ef [symbolic] +// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function %MakeFromClass, @MakeFromClass(%N.335) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -808,20 +808,20 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return: ref %i32.builtin = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [template = constants.%Make] { -// CHECK:STDOUT: %N.patt.loc9_9.1: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc9_9.2 (constants.%N.patt.8e9)] -// CHECK:STDOUT: %N.param_patt: %i32.builtin = value_param_pattern %N.patt.loc9_9.1, runtime_param [symbolic = %N.patt.loc9_9.2 (constants.%N.patt.8e9)] -// CHECK:STDOUT: %return.patt: @Make.%iN.builtin (%iN.builtin.b6f) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @Make.%iN.builtin (%iN.builtin.b6f) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %N.patt.loc9_9.1: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc9_9.2 (constants.%N.patt.36b)] +// CHECK:STDOUT: %N.param_patt: %i32.builtin = value_param_pattern %N.patt.loc9_9.1, runtime_param [symbolic = %N.patt.loc9_9.2 (constants.%N.patt.36b)] +// CHECK:STDOUT: %return.patt: @Make.%iN.builtin (%iN.builtin.016) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @Make.%iN.builtin (%iN.builtin.016) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref.loc9_25: %Int.type = name_ref Int, file.%Int.decl [template = constants.%Int] // CHECK:STDOUT: %ToLiteral.ref: %ToLiteral.type.e7c = name_ref ToLiteral, file.%ToLiteral.decl.loc6 [template = constants.%ToLiteral.cf3] -// CHECK:STDOUT: %N.ref.loc9_39: %i32.builtin = name_ref N, %N.loc9_9.1 [symbolic = %N.loc9_9.2 (constants.%N.a7a)] -// CHECK:STDOUT: %int.convert_checked.loc9_40.1: init Core.IntLiteral = call %ToLiteral.ref(%N.ref.loc9_39) [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.84b)] -// CHECK:STDOUT: %.loc9_40.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc9_40.1 [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.84b)] -// CHECK:STDOUT: %.loc9_40.2: Core.IntLiteral = converted %int.convert_checked.loc9_40.1, %.loc9_40.1 [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.84b)] -// CHECK:STDOUT: %int.make_type_signed.loc9_41: init type = call %Int.ref.loc9_25(%.loc9_40.2) [symbolic = %iN.builtin (constants.%iN.builtin.b6f)] -// CHECK:STDOUT: %.loc9_41.1: type = value_of_initializer %int.make_type_signed.loc9_41 [symbolic = %iN.builtin (constants.%iN.builtin.b6f)] -// CHECK:STDOUT: %.loc9_41.2: type = converted %int.make_type_signed.loc9_41, %.loc9_41.1 [symbolic = %iN.builtin (constants.%iN.builtin.b6f)] +// CHECK:STDOUT: %N.ref.loc9_39: %i32.builtin = name_ref N, %N.loc9_9.1 [symbolic = %N.loc9_9.2 (constants.%N.987)] +// CHECK:STDOUT: %int.convert_checked.loc9_40.1: init Core.IntLiteral = call %ToLiteral.ref(%N.ref.loc9_39) [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %.loc9_40.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc9_40.1 [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %.loc9_40.2: Core.IntLiteral = converted %int.convert_checked.loc9_40.1, %.loc9_40.1 [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %int.make_type_signed.loc9_41: init type = call %Int.ref.loc9_25(%.loc9_40.2) [symbolic = %iN.builtin (constants.%iN.builtin.016)] +// CHECK:STDOUT: %.loc9_41.1: type = value_of_initializer %int.make_type_signed.loc9_41 [symbolic = %iN.builtin (constants.%iN.builtin.016)] +// CHECK:STDOUT: %.loc9_41.2: type = converted %int.make_type_signed.loc9_41, %.loc9_41.1 [symbolic = %iN.builtin (constants.%iN.builtin.016)] // CHECK:STDOUT: %N.param: %i32.builtin = value_param runtime_param // CHECK:STDOUT: %.loc9_19.1: type = splice_block %.loc9_19.3 [template = constants.%i32.builtin] { // CHECK:STDOUT: %Int.ref.loc9_13: %Int.type = name_ref Int, file.%Int.decl [template = constants.%Int] @@ -830,12 +830,12 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %.loc9_19.2: type = value_of_initializer %int.make_type_signed.loc9_19 [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc9_19.3: type = converted %int.make_type_signed.loc9_19, %.loc9_19.2 [template = constants.%i32.builtin] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc9_9.1: %i32.builtin = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc9_9.2 (constants.%N.a7a)] -// CHECK:STDOUT: %return.param: ref @Make.%iN.builtin (%iN.builtin.b6f) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @Make.%iN.builtin (%iN.builtin.b6f) = return_slot %return.param +// CHECK:STDOUT: %N.loc9_9.1: %i32.builtin = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc9_9.2 (constants.%N.987)] +// CHECK:STDOUT: %return.param: ref @Make.%iN.builtin (%iN.builtin.016) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @Make.%iN.builtin (%iN.builtin.016) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %OtherInt.decl: type = class_decl @OtherInt [template = constants.%OtherInt] {} {} -// CHECK:STDOUT: %ToLiteral.decl.loc16: %ToLiteral.type.ea8 = fn_decl @ToLiteral.2 [template = constants.%ToLiteral.5b3] { +// CHECK:STDOUT: %ToLiteral.decl.loc16: %ToLiteral.type.67d = fn_decl @ToLiteral.2 [template = constants.%ToLiteral.ec2] { // CHECK:STDOUT: %self.patt: %OtherInt = binding_pattern self // CHECK:STDOUT: %self.param_patt: %OtherInt = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: Core.IntLiteral = return_slot_pattern @@ -852,26 +852,26 @@ 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 [template = constants.%MakeFromClass] { -// CHECK:STDOUT: %N.patt.loc18_18.1: %OtherInt = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc18_18.2 (constants.%N.patt.71c)] -// CHECK:STDOUT: %N.param_patt: %OtherInt = value_param_pattern %N.patt.loc18_18.1, runtime_param [symbolic = %N.patt.loc18_18.2 (constants.%N.patt.71c)] -// CHECK:STDOUT: %return.patt: @MakeFromClass.%iN.builtin (%iN.builtin.5d1) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @MakeFromClass.%iN.builtin (%iN.builtin.5d1) = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %N.patt.loc18_18.1: %OtherInt = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc18_18.2 (constants.%N.patt.59d)] +// CHECK:STDOUT: %N.param_patt: %OtherInt = value_param_pattern %N.patt.loc18_18.1, runtime_param [symbolic = %N.patt.loc18_18.2 (constants.%N.patt.59d)] +// CHECK:STDOUT: %return.patt: @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, file.%Int.decl [template = constants.%Int] -// CHECK:STDOUT: %N.ref.loc18_39: %OtherInt = name_ref N, %N.loc18_18.1 [symbolic = %N.loc18_18.2 (constants.%N.1a2)] -// CHECK:STDOUT: %ToLiteral.ref: %ToLiteral.type.ea8 = name_ref ToLiteral, @OtherInt.%ToLiteral.decl [template = constants.%ToLiteral.5b3] +// CHECK:STDOUT: %N.ref.loc18_39: %OtherInt = name_ref N, %N.loc18_18.1 [symbolic = %N.loc18_18.2 (constants.%N.335)] +// CHECK:STDOUT: %ToLiteral.ref: %ToLiteral.type.67d = name_ref ToLiteral, @OtherInt.%ToLiteral.decl [template = constants.%ToLiteral.ec2] // CHECK:STDOUT: %ToLiteral.bound.loc18_40.1: = bound_method %N.ref.loc18_39, %ToLiteral.ref [symbolic = %ToLiteral.bound.loc18_40.2 (constants.%ToLiteral.bound)] -// CHECK:STDOUT: %int.convert_checked.loc18_51.1: init Core.IntLiteral = call %ToLiteral.bound.loc18_40.1(%N.ref.loc18_39) [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.519)] -// CHECK:STDOUT: %.loc18_51.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc18_51.1 [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.519)] -// CHECK:STDOUT: %.loc18_51.2: Core.IntLiteral = converted %int.convert_checked.loc18_51.1, %.loc18_51.1 [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.519)] -// CHECK:STDOUT: %int.make_type_signed: init type = call %Int.ref(%.loc18_51.2) [symbolic = %iN.builtin (constants.%iN.builtin.5d1)] -// CHECK:STDOUT: %.loc18_52.1: type = value_of_initializer %int.make_type_signed [symbolic = %iN.builtin (constants.%iN.builtin.5d1)] -// CHECK:STDOUT: %.loc18_52.2: type = converted %int.make_type_signed, %.loc18_52.1 [symbolic = %iN.builtin (constants.%iN.builtin.5d1)] +// CHECK:STDOUT: %int.convert_checked.loc18_51.1: init Core.IntLiteral = call %ToLiteral.bound.loc18_40.1(%N.ref.loc18_39) [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %.loc18_51.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc18_51.1 [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %.loc18_51.2: Core.IntLiteral = converted %int.convert_checked.loc18_51.1, %.loc18_51.1 [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %int.make_type_signed: init type = call %Int.ref(%.loc18_51.2) [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] +// CHECK:STDOUT: %.loc18_52.1: type = value_of_initializer %int.make_type_signed [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] +// CHECK:STDOUT: %.loc18_52.2: type = converted %int.make_type_signed, %.loc18_52.1 [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] // CHECK:STDOUT: %N.param: %OtherInt = value_param runtime_param // CHECK:STDOUT: %OtherInt.ref: type = name_ref OtherInt, file.%OtherInt.decl [template = constants.%OtherInt] -// CHECK:STDOUT: %N.loc18_18.1: %OtherInt = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc18_18.2 (constants.%N.1a2)] -// CHECK:STDOUT: %return.param: ref @MakeFromClass.%iN.builtin (%iN.builtin.5d1) = out_param runtime_param0 -// CHECK:STDOUT: %return: ref @MakeFromClass.%iN.builtin (%iN.builtin.5d1) = return_slot %return.param +// CHECK:STDOUT: %N.loc18_18.1: %OtherInt = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc18_18.2 (constants.%N.335)] +// CHECK:STDOUT: %return.param: ref @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = out_param runtime_param0 +// CHECK:STDOUT: %return: ref @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -882,7 +882,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %.loc12_16.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc12_16.2: type = converted %int.make_type_signed, %.loc12_16.1 [template = constants.%i32.builtin] // CHECK:STDOUT: adapt_decl %.loc12_16.2 [template] -// CHECK:STDOUT: %ToLiteral.decl: %ToLiteral.type.ea8 = fn_decl @ToLiteral.2 [template = constants.%ToLiteral.5b3] { +// CHECK:STDOUT: %ToLiteral.decl: %ToLiteral.type.67d = fn_decl @ToLiteral.2 [template = constants.%ToLiteral.ec2] { // CHECK:STDOUT: %self.patt: %OtherInt = binding_pattern self // CHECK:STDOUT: %self.param_patt: %OtherInt = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: Core.IntLiteral = return_slot_pattern @@ -915,23 +915,23 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: fn @FromLiteral(%n.param_patt: Core.IntLiteral) -> %i32.builtin = "int.convert_checked"; // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Make(%N.loc9_9.1: %i32.builtin) { -// CHECK:STDOUT: %N.loc9_9.2: %i32.builtin = bind_symbolic_name N, 0 [symbolic = %N.loc9_9.2 (constants.%N.a7a)] -// CHECK:STDOUT: %N.patt.loc9_9.2: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc9_9.2 (constants.%N.patt.8e9)] -// CHECK:STDOUT: %int.convert_checked.loc9_40.2: init Core.IntLiteral = call constants.%ToLiteral.cf3(%N.loc9_9.2) [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.84b)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc9_40.2 [symbolic = %iN.builtin (constants.%iN.builtin.b6f)] +// CHECK:STDOUT: %N.loc9_9.2: %i32.builtin = bind_symbolic_name N, 0 [symbolic = %N.loc9_9.2 (constants.%N.987)] +// CHECK:STDOUT: %N.patt.loc9_9.2: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc9_9.2 (constants.%N.patt.36b)] +// CHECK:STDOUT: %int.convert_checked.loc9_40.2: init Core.IntLiteral = call constants.%ToLiteral.cf3(%N.loc9_9.2) [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc9_40.2 [symbolic = %iN.builtin (constants.%iN.builtin.016)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Make.%iN.builtin (%iN.builtin.b6f) [symbolic = %require_complete (constants.%require_complete.b3f)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Make.%iN.builtin (%iN.builtin.016) [symbolic = %require_complete (constants.%require_complete.88f)] // CHECK:STDOUT: %Make.specific_fn.loc9_52.2: = specific_function constants.%Make, @Make(%N.loc9_9.2) [symbolic = %Make.specific_fn.loc9_52.2 (constants.%Make.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%N.param_patt: %i32.builtin) -> @Make.%iN.builtin (%iN.builtin.b6f) { +// CHECK:STDOUT: fn(%N.param_patt: %i32.builtin) -> @Make.%iN.builtin (%iN.builtin.016) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] -// CHECK:STDOUT: %N.ref.loc9_57: %i32.builtin = name_ref N, %N.loc9_9.1 [symbolic = %N.loc9_9.2 (constants.%N.a7a)] -// CHECK:STDOUT: %Make.specific_fn.loc9_52.1: = specific_function %Make.ref, @Make(constants.%N.a7a) [symbolic = %Make.specific_fn.loc9_52.2 (constants.%Make.specific_fn)] -// CHECK:STDOUT: %Make.call: init @Make.%iN.builtin (%iN.builtin.b6f) = call %Make.specific_fn.loc9_52.1() -// CHECK:STDOUT: %.loc9_59.1: @Make.%iN.builtin (%iN.builtin.b6f) = value_of_initializer %Make.call -// CHECK:STDOUT: %.loc9_59.2: @Make.%iN.builtin (%iN.builtin.b6f) = converted %Make.call, %.loc9_59.1 +// CHECK:STDOUT: %N.ref.loc9_57: %i32.builtin = name_ref N, %N.loc9_9.1 [symbolic = %N.loc9_9.2 (constants.%N.987)] +// CHECK:STDOUT: %Make.specific_fn.loc9_52.1: = specific_function %Make.ref, @Make(constants.%N.987) [symbolic = %Make.specific_fn.loc9_52.2 (constants.%Make.specific_fn)] +// CHECK:STDOUT: %Make.call: init @Make.%iN.builtin (%iN.builtin.016) = call %Make.specific_fn.loc9_52.1() +// CHECK:STDOUT: %.loc9_59.1: @Make.%iN.builtin (%iN.builtin.016) = value_of_initializer %Make.call +// CHECK:STDOUT: %.loc9_59.2: @Make.%iN.builtin (%iN.builtin.016) = converted %Make.call, %.loc9_59.1 // CHECK:STDOUT: return %.loc9_59.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -939,50 +939,50 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: fn @ToLiteral.2[%self.param_patt: %OtherInt]() -> Core.IntLiteral = "int.convert_checked"; // CHECK:STDOUT: // CHECK:STDOUT: generic fn @MakeFromClass(%N.loc18_18.1: %OtherInt) { -// CHECK:STDOUT: %N.loc18_18.2: %OtherInt = bind_symbolic_name N, 0 [symbolic = %N.loc18_18.2 (constants.%N.1a2)] -// CHECK:STDOUT: %N.patt.loc18_18.2: %OtherInt = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc18_18.2 (constants.%N.patt.71c)] -// CHECK:STDOUT: %ToLiteral.bound.loc18_40.2: = bound_method %N.loc18_18.2, constants.%ToLiteral.5b3 [symbolic = %ToLiteral.bound.loc18_40.2 (constants.%ToLiteral.bound)] -// CHECK:STDOUT: %int.convert_checked.loc18_51.2: init Core.IntLiteral = call %ToLiteral.bound.loc18_40.2(%N.loc18_18.2) [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.519)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc18_51.2 [symbolic = %iN.builtin (constants.%iN.builtin.5d1)] +// CHECK:STDOUT: %N.loc18_18.2: %OtherInt = bind_symbolic_name N, 0 [symbolic = %N.loc18_18.2 (constants.%N.335)] +// CHECK:STDOUT: %N.patt.loc18_18.2: %OtherInt = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc18_18.2 (constants.%N.patt.59d)] +// CHECK:STDOUT: %ToLiteral.bound.loc18_40.2: = bound_method %N.loc18_18.2, constants.%ToLiteral.ec2 [symbolic = %ToLiteral.bound.loc18_40.2 (constants.%ToLiteral.bound)] +// CHECK:STDOUT: %int.convert_checked.loc18_51.2: init Core.IntLiteral = call %ToLiteral.bound.loc18_40.2(%N.loc18_18.2) [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc18_51.2 [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @MakeFromClass.%iN.builtin (%iN.builtin.5d1) [symbolic = %require_complete (constants.%require_complete.02e)] +// CHECK:STDOUT: %require_complete: = require_complete_type @MakeFromClass.%iN.builtin (%iN.builtin.9ef) [symbolic = %require_complete (constants.%require_complete.c7d)] // CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.2: = specific_function constants.%MakeFromClass, @MakeFromClass(%N.loc18_18.2) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%N.param_patt: %OtherInt) -> @MakeFromClass.%iN.builtin (%iN.builtin.5d1) { +// CHECK:STDOUT: fn(%N.param_patt: %OtherInt) -> @MakeFromClass.%iN.builtin (%iN.builtin.9ef) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %MakeFromClass.ref: %MakeFromClass.type = name_ref MakeFromClass, file.%MakeFromClass.decl [template = constants.%MakeFromClass] -// CHECK:STDOUT: %N.ref.loc18_77: %OtherInt = name_ref N, %N.loc18_18.1 [symbolic = %N.loc18_18.2 (constants.%N.1a2)] -// CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.1: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%N.1a2) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] -// CHECK:STDOUT: %MakeFromClass.call: init @MakeFromClass.%iN.builtin (%iN.builtin.5d1) = call %MakeFromClass.specific_fn.loc18_63.1() -// CHECK:STDOUT: %.loc18_79.1: @MakeFromClass.%iN.builtin (%iN.builtin.5d1) = value_of_initializer %MakeFromClass.call -// CHECK:STDOUT: %.loc18_79.2: @MakeFromClass.%iN.builtin (%iN.builtin.5d1) = converted %MakeFromClass.call, %.loc18_79.1 +// CHECK:STDOUT: %N.ref.loc18_77: %OtherInt = name_ref N, %N.loc18_18.1 [symbolic = %N.loc18_18.2 (constants.%N.335)] +// CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.1: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%N.335) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] +// CHECK:STDOUT: %MakeFromClass.call: init @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = call %MakeFromClass.specific_fn.loc18_63.1() +// CHECK:STDOUT: %.loc18_79.1: @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = value_of_initializer %MakeFromClass.call +// CHECK:STDOUT: %.loc18_79.2: @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = converted %MakeFromClass.call, %.loc18_79.1 // CHECK:STDOUT: return %.loc18_79.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Make(constants.%N.a7a) { -// CHECK:STDOUT: %N.loc9_9.2 => constants.%N.a7a -// CHECK:STDOUT: %N.patt.loc9_9.2 => constants.%N.a7a -// CHECK:STDOUT: %int.convert_checked.loc9_40.2 => constants.%int.convert_checked.84b -// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.b6f +// CHECK:STDOUT: specific @Make(constants.%N.987) { +// CHECK:STDOUT: %N.loc9_9.2 => constants.%N.987 +// CHECK:STDOUT: %N.patt.loc9_9.2 => constants.%N.987 +// CHECK:STDOUT: %int.convert_checked.loc9_40.2 => constants.%int.convert_checked.346 +// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.016 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.b3f +// CHECK:STDOUT: %require_complete => constants.%require_complete.88f // CHECK:STDOUT: %Make.specific_fn.loc9_52.2 => constants.%Make.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(%N.loc9_9.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @MakeFromClass(constants.%N.1a2) { -// CHECK:STDOUT: %N.loc18_18.2 => constants.%N.1a2 -// CHECK:STDOUT: %N.patt.loc18_18.2 => constants.%N.1a2 +// CHECK:STDOUT: specific @MakeFromClass(constants.%N.335) { +// CHECK:STDOUT: %N.loc18_18.2 => constants.%N.335 +// CHECK:STDOUT: %N.patt.loc18_18.2 => constants.%N.335 // CHECK:STDOUT: %ToLiteral.bound.loc18_40.2 => constants.%ToLiteral.bound -// CHECK:STDOUT: %int.convert_checked.loc18_51.2 => constants.%int.convert_checked.519 -// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.5d1 +// CHECK:STDOUT: %int.convert_checked.loc18_51.2 => constants.%int.convert_checked.b6b +// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.9ef // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.02e +// CHECK:STDOUT: %require_complete => constants.%require_complete.c7d // CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.2 => constants.%MakeFromClass.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: @@ -999,58 +999,58 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] -// CHECK:STDOUT: %N.a7a: %i32.builtin = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.8e9: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %N.987: %i32.builtin = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.36b: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %ToLiteral.type.e7c: type = fn_type @ToLiteral.1 [template] // CHECK:STDOUT: %ToLiteral.cf3: %ToLiteral.type.e7c = struct_value () [template] -// CHECK:STDOUT: %int.convert_checked.84b: init Core.IntLiteral = call %ToLiteral.cf3(%N.a7a) [symbolic] -// CHECK:STDOUT: %iN.builtin.b6f: type = int_type signed, %int.convert_checked.84b [symbolic] -// CHECK:STDOUT: %require_complete.b3f: = require_complete_type %iN.builtin.b6f [symbolic] -// CHECK:STDOUT: %Make.specific_fn.45b: = specific_function %Make, @Make(%N.a7a) [symbolic] +// CHECK:STDOUT: %int.convert_checked.346: init Core.IntLiteral = call %ToLiteral.cf3(%N.987) [symbolic] +// CHECK:STDOUT: %iN.builtin.016: type = int_type signed, %int.convert_checked.346 [symbolic] +// CHECK:STDOUT: %require_complete.88f: = require_complete_type %iN.builtin.016 [symbolic] +// CHECK:STDOUT: %Make.specific_fn.8ec: = specific_function %Make, @Make(%N.987) [symbolic] // CHECK:STDOUT: %FromLiteral.type: type = fn_type @FromLiteral [template] // CHECK:STDOUT: %FromLiteral: %FromLiteral.type = struct_value () [template] // CHECK:STDOUT: %int_64.f82: %i32.builtin = int_value 64 [template] -// CHECK:STDOUT: %Make.specific_fn.525: = specific_function %Make, @Make(%int_64.f82) [template] +// CHECK:STDOUT: %Make.specific_fn.02d: = specific_function %Make, @Make(%int_64.f82) [template] // CHECK:STDOUT: %MakeFromClass.type: type = fn_type @MakeFromClass [template] // CHECK:STDOUT: %MakeFromClass: %MakeFromClass.type = struct_value () [template] // CHECK:STDOUT: %OtherInt: type = class_type @OtherInt [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %N.1a2: %OtherInt = bind_symbolic_name N, 0 [symbolic] -// CHECK:STDOUT: %N.patt.71c: %OtherInt = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %ToLiteral.type.ea8: type = fn_type @ToLiteral.2 [template] -// CHECK:STDOUT: %ToLiteral.5b3: %ToLiteral.type.ea8 = struct_value () [template] -// CHECK:STDOUT: %ToLiteral.bound.e03: = bound_method %N.1a2, %ToLiteral.5b3 [symbolic] -// CHECK:STDOUT: %int.convert_checked.519: init Core.IntLiteral = call %ToLiteral.bound.e03(%N.1a2) [symbolic] -// CHECK:STDOUT: %iN.builtin.5d1: type = int_type signed, %int.convert_checked.519 [symbolic] -// CHECK:STDOUT: %require_complete.02e: = require_complete_type %iN.builtin.5d1 [symbolic] -// CHECK:STDOUT: %MakeFromClass.specific_fn.f22: = specific_function %MakeFromClass, @MakeFromClass(%N.1a2) [symbolic] -// CHECK:STDOUT: %ToLiteral.bound.648: = bound_method %int_64.f82, %ToLiteral.5b3 [template] -// CHECK:STDOUT: %MakeFromClass.specific_fn.b9d: = specific_function %MakeFromClass, @MakeFromClass(%int_64.f82) [template] +// CHECK:STDOUT: %N.335: %OtherInt = bind_symbolic_name N, 0 [symbolic] +// CHECK:STDOUT: %N.patt.59d: %OtherInt = symbolic_binding_pattern N, 0 [symbolic] +// CHECK:STDOUT: %ToLiteral.type.67d: type = fn_type @ToLiteral.2 [template] +// CHECK:STDOUT: %ToLiteral.ec2: %ToLiteral.type.67d = struct_value () [template] +// CHECK:STDOUT: %ToLiteral.bound.8e3: = bound_method %N.335, %ToLiteral.ec2 [symbolic] +// CHECK:STDOUT: %int.convert_checked.b6b: init Core.IntLiteral = call %ToLiteral.bound.8e3(%N.335) [symbolic] +// CHECK:STDOUT: %iN.builtin.9ef: type = int_type signed, %int.convert_checked.b6b [symbolic] +// CHECK:STDOUT: %require_complete.c7d: = require_complete_type %iN.builtin.9ef [symbolic] +// CHECK:STDOUT: %MakeFromClass.specific_fn.004: = specific_function %MakeFromClass, @MakeFromClass(%N.335) [symbolic] +// CHECK:STDOUT: %ToLiteral.bound.395: = bound_method %int_64.f82, %ToLiteral.ec2 [template] +// CHECK:STDOUT: %MakeFromClass.specific_fn.ad7: = specific_function %MakeFromClass, @MakeFromClass(%int_64.f82) [template] // CHECK:STDOUT: %complete_type.4a1: = complete_type_witness %i64.builtin [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.f28 = import_ref Main//convert_symbolic, IntLiteral, unloaded -// CHECK:STDOUT: %import_ref.85d: %Int.type = import_ref Main//convert_symbolic, Int, loaded [template = constants.%Int] -// CHECK:STDOUT: %import_ref.4be = import_ref Main//convert_symbolic, ToLiteral, unloaded -// CHECK:STDOUT: %import_ref.3f7: %FromLiteral.type = import_ref Main//convert_symbolic, FromLiteral, loaded [template = constants.%FromLiteral] -// CHECK:STDOUT: %import_ref.0e9: %Make.type = import_ref Main//convert_symbolic, Make, loaded [template = constants.%Make] -// CHECK:STDOUT: %import_ref.9cf: type = import_ref Main//convert_symbolic, OtherInt, loaded [template = constants.%OtherInt] -// CHECK:STDOUT: %import_ref.87f: %MakeFromClass.type = import_ref Main//convert_symbolic, MakeFromClass, loaded [template = constants.%MakeFromClass] +// CHECK:STDOUT: %import_ref.174 = import_ref Main//convert_symbolic, IntLiteral, unloaded +// CHECK:STDOUT: %import_ref.4a2: %Int.type = import_ref Main//convert_symbolic, Int, loaded [template = constants.%Int] +// CHECK:STDOUT: %import_ref.e08 = import_ref Main//convert_symbolic, ToLiteral, unloaded +// CHECK:STDOUT: %import_ref.527: %FromLiteral.type = import_ref Main//convert_symbolic, FromLiteral, loaded [template = constants.%FromLiteral] +// CHECK:STDOUT: %import_ref.eaa: %Make.type = import_ref Main//convert_symbolic, Make, loaded [template = constants.%Make] +// CHECK:STDOUT: %import_ref.466: type = import_ref Main//convert_symbolic, OtherInt, loaded [template = constants.%OtherInt] +// CHECK:STDOUT: %import_ref.10c: %MakeFromClass.type = import_ref Main//convert_symbolic, MakeFromClass, loaded [template = constants.%MakeFromClass] // CHECK:STDOUT: %import_ref.b03: = import_ref Main//convert_symbolic, loc14_1, loaded [template = constants.%complete_type.f8a] // CHECK:STDOUT: %import_ref.d11 = import_ref Main//convert_symbolic, inst129 [no loc], unloaded -// CHECK:STDOUT: %import_ref.6ba = import_ref Main//convert_symbolic, loc13_45, unloaded +// CHECK:STDOUT: %import_ref.8f7 = import_ref Main//convert_symbolic, loc13_45, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .IntLiteral = imports.%import_ref.f28 -// CHECK:STDOUT: .Int = imports.%import_ref.85d -// CHECK:STDOUT: .ToLiteral = imports.%import_ref.4be -// CHECK:STDOUT: .FromLiteral = imports.%import_ref.3f7 -// CHECK:STDOUT: .Make = imports.%import_ref.0e9 -// CHECK:STDOUT: .OtherInt = imports.%import_ref.9cf -// CHECK:STDOUT: .MakeFromClass = imports.%import_ref.87f +// CHECK:STDOUT: .IntLiteral = imports.%import_ref.174 +// CHECK:STDOUT: .Int = imports.%import_ref.4a2 +// CHECK:STDOUT: .ToLiteral = imports.%import_ref.e08 +// CHECK:STDOUT: .FromLiteral = imports.%import_ref.527 +// CHECK:STDOUT: .Make = imports.%import_ref.eaa +// CHECK:STDOUT: .OtherInt = imports.%import_ref.466 +// CHECK:STDOUT: .MakeFromClass = imports.%import_ref.10c // CHECK:STDOUT: .m = %m // CHECK:STDOUT: .n = %n // CHECK:STDOUT: } @@ -1064,80 +1064,80 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: class @OtherInt [from "convert_symbolic.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.d11 -// CHECK:STDOUT: .ToLiteral = imports.%import_ref.6ba +// CHECK:STDOUT: .ToLiteral = imports.%import_ref.8f7 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.b03 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%n.param_patt: Core.IntLiteral) -> type = "int.make_type_signed" [from "convert_symbolic.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make(constants.%N.a7a: %i32.builtin) [from "convert_symbolic.carbon"] { -// CHECK:STDOUT: %N: %i32.builtin = bind_symbolic_name N, 0 [symbolic = %N (constants.%N.a7a)] -// CHECK:STDOUT: %N.patt: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt.8e9)] -// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call constants.%ToLiteral.cf3(%N) [symbolic = %int.convert_checked (constants.%int.convert_checked.84b)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked [symbolic = %iN.builtin (constants.%iN.builtin.b6f)] +// CHECK:STDOUT: generic fn @Make(constants.%N.987: %i32.builtin) [from "convert_symbolic.carbon"] { +// CHECK:STDOUT: %N: %i32.builtin = bind_symbolic_name N, 0 [symbolic = %N (constants.%N.987)] +// CHECK:STDOUT: %N.patt: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt.36b)] +// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call constants.%ToLiteral.cf3(%N) [symbolic = %int.convert_checked (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked [symbolic = %iN.builtin (constants.%iN.builtin.016)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Make.%iN.builtin (%iN.builtin.b6f) [symbolic = %require_complete (constants.%require_complete.b3f)] -// CHECK:STDOUT: %Make.specific_fn: = specific_function constants.%Make, @Make(%N) [symbolic = %Make.specific_fn (constants.%Make.specific_fn.45b)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Make.%iN.builtin (%iN.builtin.016) [symbolic = %require_complete (constants.%require_complete.88f)] +// CHECK:STDOUT: %Make.specific_fn: = specific_function constants.%Make, @Make(%N) [symbolic = %Make.specific_fn (constants.%Make.specific_fn.8ec)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%N.param_patt: %i32.builtin) -> @Make.%iN.builtin (%iN.builtin.b6f); +// CHECK:STDOUT: fn(%N.param_patt: %i32.builtin) -> @Make.%iN.builtin (%iN.builtin.016); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ToLiteral.1(%n.param_patt: %i32.builtin) -> Core.IntLiteral = "int.convert_checked" [from "convert_symbolic.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @FromLiteral(%n.param_patt: Core.IntLiteral) -> %i32.builtin = "int.convert_checked" [from "convert_symbolic.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeFromClass(constants.%N.1a2: %OtherInt) [from "convert_symbolic.carbon"] { -// CHECK:STDOUT: %N: %OtherInt = bind_symbolic_name N, 0 [symbolic = %N (constants.%N.1a2)] -// CHECK:STDOUT: %N.patt: %OtherInt = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt.71c)] -// CHECK:STDOUT: %ToLiteral.bound: = bound_method %N, constants.%ToLiteral.5b3 [symbolic = %ToLiteral.bound (constants.%ToLiteral.bound.e03)] -// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %ToLiteral.bound(%N) [symbolic = %int.convert_checked (constants.%int.convert_checked.519)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked [symbolic = %iN.builtin (constants.%iN.builtin.5d1)] +// CHECK:STDOUT: generic fn @MakeFromClass(constants.%N.335: %OtherInt) [from "convert_symbolic.carbon"] { +// CHECK:STDOUT: %N: %OtherInt = bind_symbolic_name N, 0 [symbolic = %N (constants.%N.335)] +// CHECK:STDOUT: %N.patt: %OtherInt = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt.59d)] +// CHECK:STDOUT: %ToLiteral.bound: = bound_method %N, constants.%ToLiteral.ec2 [symbolic = %ToLiteral.bound (constants.%ToLiteral.bound.8e3)] +// CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %ToLiteral.bound(%N) [symbolic = %int.convert_checked (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @MakeFromClass.%iN.builtin (%iN.builtin.5d1) [symbolic = %require_complete (constants.%require_complete.02e)] -// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function constants.%MakeFromClass, @MakeFromClass(%N) [symbolic = %MakeFromClass.specific_fn (constants.%MakeFromClass.specific_fn.f22)] +// CHECK:STDOUT: %require_complete: = require_complete_type @MakeFromClass.%iN.builtin (%iN.builtin.9ef) [symbolic = %require_complete (constants.%require_complete.c7d)] +// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function constants.%MakeFromClass, @MakeFromClass(%N) [symbolic = %MakeFromClass.specific_fn (constants.%MakeFromClass.specific_fn.004)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%N.param_patt: %OtherInt) -> @MakeFromClass.%iN.builtin (%iN.builtin.5d1); +// CHECK:STDOUT: fn(%N.param_patt: %OtherInt) -> @MakeFromClass.%iN.builtin (%iN.builtin.9ef); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ToLiteral.2[%self.param_patt: %OtherInt]() -> Core.IntLiteral = "int.convert_checked" [from "convert_symbolic.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, imports.%import_ref.0e9 [template = constants.%Make] -// CHECK:STDOUT: %FromLiteral.ref.loc6: %FromLiteral.type = name_ref FromLiteral, imports.%import_ref.3f7 [template = constants.%FromLiteral] +// CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, imports.%import_ref.eaa [template = constants.%Make] +// CHECK:STDOUT: %FromLiteral.ref.loc6: %FromLiteral.type = name_ref FromLiteral, imports.%import_ref.527 [template = constants.%FromLiteral] // CHECK:STDOUT: %int_64.loc6: Core.IntLiteral = int_value 64 [template = constants.%int_64.fab] // CHECK:STDOUT: %int.convert_checked.loc6: init %i32.builtin = call %FromLiteral.ref.loc6(%int_64.loc6) [template = constants.%int_64.f82] // CHECK:STDOUT: %.loc6_38.1: %i32.builtin = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_64.f82] // CHECK:STDOUT: %.loc6_38.2: %i32.builtin = converted %int.convert_checked.loc6, %.loc6_38.1 [template = constants.%int_64.f82] -// CHECK:STDOUT: %Make.specific_fn: = specific_function %Make.ref, @Make(constants.%int_64.f82) [template = constants.%Make.specific_fn.525] +// CHECK:STDOUT: %Make.specific_fn: = specific_function %Make.ref, @Make(constants.%int_64.f82) [template = constants.%Make.specific_fn.02d] // 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.%import_ref.87f [template = constants.%MakeFromClass] -// CHECK:STDOUT: %FromLiteral.ref.loc7: %FromLiteral.type = name_ref FromLiteral, imports.%import_ref.3f7 [template = constants.%FromLiteral] +// CHECK:STDOUT: %MakeFromClass.ref: %MakeFromClass.type = name_ref MakeFromClass, imports.%import_ref.10c [template = constants.%MakeFromClass] +// CHECK:STDOUT: %FromLiteral.ref.loc7: %FromLiteral.type = name_ref FromLiteral, imports.%import_ref.527 [template = constants.%FromLiteral] // CHECK:STDOUT: %int_64.loc7: Core.IntLiteral = int_value 64 [template = constants.%int_64.fab] // CHECK:STDOUT: %int.convert_checked.loc7: init %i32.builtin = call %FromLiteral.ref.loc7(%int_64.loc7) [template = constants.%int_64.f82] -// CHECK:STDOUT: %OtherInt.ref: type = name_ref OtherInt, imports.%import_ref.9cf [template = constants.%OtherInt] +// CHECK:STDOUT: %OtherInt.ref: type = name_ref OtherInt, imports.%import_ref.466 [template = constants.%OtherInt] // CHECK:STDOUT: %.loc7_48.1: init %OtherInt = as_compatible %int.convert_checked.loc7 [template = constants.%int_64.f82] // CHECK:STDOUT: %.loc7_48.2: init %OtherInt = converted %int.convert_checked.loc7, %.loc7_48.1 [template = constants.%int_64.f82] // CHECK:STDOUT: %.loc7_59.1: %OtherInt = value_of_initializer %.loc7_48.2 [template = constants.%int_64.f82] // CHECK:STDOUT: %.loc7_59.2: %OtherInt = converted %.loc7_48.2, %.loc7_59.1 [template = constants.%int_64.f82] -// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%int_64.f82) [template = constants.%MakeFromClass.specific_fn.b9d] +// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%int_64.f82) [template = constants.%MakeFromClass.specific_fn.ad7] // CHECK:STDOUT: %MakeFromClass.call: init %i64.builtin = call %MakeFromClass.specific_fn() // CHECK:STDOUT: assign file.%n.var, %MakeFromClass.call // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Make(constants.%N.a7a) { -// CHECK:STDOUT: %N => constants.%N.a7a -// CHECK:STDOUT: %N.patt => constants.%N.a7a -// CHECK:STDOUT: %int.convert_checked => constants.%int.convert_checked.84b -// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.b6f +// CHECK:STDOUT: specific @Make(constants.%N.987) { +// CHECK:STDOUT: %N => constants.%N.987 +// CHECK:STDOUT: %N.patt => constants.%N.987 +// CHECK:STDOUT: %int.convert_checked => constants.%int.convert_checked.346 +// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.016 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.b3f -// CHECK:STDOUT: %Make.specific_fn => constants.%Make.specific_fn.45b +// CHECK:STDOUT: %require_complete => constants.%require_complete.88f +// CHECK:STDOUT: %Make.specific_fn => constants.%Make.specific_fn.8ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(%N) {} @@ -1150,19 +1150,19 @@ 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.525 +// CHECK:STDOUT: %Make.specific_fn => constants.%Make.specific_fn.02d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MakeFromClass(constants.%N.1a2) { -// CHECK:STDOUT: %N => constants.%N.1a2 -// CHECK:STDOUT: %N.patt => constants.%N.1a2 -// CHECK:STDOUT: %ToLiteral.bound => constants.%ToLiteral.bound.e03 -// CHECK:STDOUT: %int.convert_checked => constants.%int.convert_checked.519 -// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.5d1 +// CHECK:STDOUT: specific @MakeFromClass(constants.%N.335) { +// CHECK:STDOUT: %N => constants.%N.335 +// CHECK:STDOUT: %N.patt => constants.%N.335 +// CHECK:STDOUT: %ToLiteral.bound => constants.%ToLiteral.bound.8e3 +// CHECK:STDOUT: %int.convert_checked => constants.%int.convert_checked.b6b +// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.9ef // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.02e -// CHECK:STDOUT: %MakeFromClass.specific_fn => constants.%MakeFromClass.specific_fn.f22 +// CHECK:STDOUT: %require_complete => constants.%require_complete.c7d +// CHECK:STDOUT: %MakeFromClass.specific_fn => constants.%MakeFromClass.specific_fn.004 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MakeFromClass(%N) {} @@ -1170,12 +1170,12 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @MakeFromClass(constants.%int_64.f82) { // CHECK:STDOUT: %N => constants.%int_64.f82 // CHECK:STDOUT: %N.patt => constants.%int_64.f82 -// CHECK:STDOUT: %ToLiteral.bound => constants.%ToLiteral.bound.648 +// CHECK:STDOUT: %ToLiteral.bound => constants.%ToLiteral.bound.395 // CHECK:STDOUT: %int.convert_checked => constants.%int_64.fab // CHECK:STDOUT: %iN.builtin => constants.%i64.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 -// CHECK:STDOUT: %MakeFromClass.specific_fn => constants.%MakeFromClass.specific_fn.b9d +// CHECK:STDOUT: %MakeFromClass.specific_fn => constants.%MakeFromClass.specific_fn.ad7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon b/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon index 2aa3acf6f1b7..701a1f62d765 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon @@ -38,14 +38,14 @@ fn G(c: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.58f: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.17c: %F.type.58f = struct_value () [template] +// CHECK:STDOUT: %F.type.f36: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.4c3: %F.type.f36 = struct_value () [template] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] @@ -62,7 +62,7 @@ fn G(c: C) { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] {} {} +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -72,7 +72,7 @@ fn G(c: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %Self.ref as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.58f = fn_decl @F.2 [template = constants.%F.17c] {} {} +// CHECK:STDOUT: %F.decl: %F.type.f36 = fn_decl @F.2 [template = constants.%F.4c3] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -118,32 +118,32 @@ fn G(c: C) { // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.911 [template] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.799) [template] -// CHECK:STDOUT: %F.type.0c2: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.7a4: %F.type.0c2 = struct_value () [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.777 [template] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.f6d) [template] +// CHECK:STDOUT: %F.type.f36: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.4c3: %F.type.f36 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.492 = import_ref Main//extend_impl_library, I, unloaded -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//extend_impl_library, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.541 = import_ref Main//extend_impl_library, I, unloaded +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//extend_impl_library, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//extend_impl_library, loc12_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//extend_impl_library, inst25 [no loc], unloaded -// CHECK:STDOUT: %import_ref.bd076a.1: type = import_ref Main//extend_impl_library, loc9_18, loaded [template = constants.%I.type] -// CHECK:STDOUT: %import_ref.f8c = import_ref Main//extend_impl_library, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.145: %F.assoc_type = import_ref Main//extend_impl_library, loc5_9, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.a15 = import_ref Main//extend_impl_library, F, unloaded -// CHECK:STDOUT: %import_ref.5d1: = import_ref Main//extend_impl_library, loc9_20, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.3019d1.1: type = import_ref Main//extend_impl_library, loc9_18, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.e5d = import_ref Main//extend_impl_library, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b5b: %F.assoc_type = import_ref Main//extend_impl_library, loc5_9, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.8b9 = import_ref Main//extend_impl_library, F, unloaded +// CHECK:STDOUT: %import_ref.b86: = import_ref Main//extend_impl_library, loc9_20, loaded [template = constants.%impl_witness] // CHECK:STDOUT: %import_ref.0ed: type = import_ref Main//extend_impl_library, loc9_15, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.bd076a.2: type = import_ref Main//extend_impl_library, loc9_18, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.3019d1.2: type = import_ref Main//extend_impl_library, loc9_18, loaded [template = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .I = imports.%import_ref.492 -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .I = imports.%import_ref.541 +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -152,39 +152,39 @@ fn G(c: C) { // CHECK:STDOUT: %c.param_patt: %C = value_param_pattern %c.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param runtime_param0 -// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %c: %C = bind_name c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "extend_impl_library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.f8c -// CHECK:STDOUT: .F = imports.%import_ref.145 -// CHECK:STDOUT: witness = (imports.%import_ref.a15) +// CHECK:STDOUT: .Self = imports.%import_ref.e5d +// CHECK:STDOUT: .F = imports.%import_ref.b5b +// CHECK:STDOUT: witness = (imports.%import_ref.8b9) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.0ed as imports.%import_ref.bd076a.2 [from "extend_impl_library.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.0ed as imports.%import_ref.3019d1.2 [from "extend_impl_library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.5d1 +// CHECK:STDOUT: witness = imports.%import_ref.b86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "extend_impl_library.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.2c4 -// CHECK:STDOUT: extend imports.%import_ref.bd076a.1 +// CHECK:STDOUT: extend imports.%import_ref.3019d1.1 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%c.param_patt: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %F.ref.loc7: %F.assoc_type = name_ref F, imports.%import_ref.145 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc7: %F.type.9df = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.7a4] +// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %F.ref.loc7: %F.assoc_type = name_ref F, imports.%import_ref.b5b [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0.loc7: %F.type.cf0 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.4c3] // CHECK:STDOUT: %F.call.loc7: init %empty_tuple.type = call %impl.elem0.loc7() // CHECK:STDOUT: %c.ref: %C = name_ref c, %c -// CHECK:STDOUT: %F.ref.loc8: %F.assoc_type = name_ref F, imports.%import_ref.145 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc8: %F.type.9df = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.7a4] +// CHECK:STDOUT: %F.ref.loc8: %F.assoc_type = name_ref F, imports.%import_ref.b5b [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0.loc8: %F.type.cf0 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.4c3] // CHECK:STDOUT: %F.call.loc8: init %empty_tuple.type = call %impl.elem0.loc8() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/no_prelude/import_generic.carbon b/toolchain/check/testdata/impl/no_prelude/import_generic.carbon index 2ccc0be0e723..34ff58eed0cb 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_generic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_generic.carbon @@ -106,14 +106,14 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.bc4: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.ffb: = require_complete_type %I.type.bc4 [symbolic] -// CHECK:STDOUT: %impl_witness.455: = impl_witness (), @impl.1(%T) [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.cfe: = require_complete_type %I.type.325 [symbolic] +// CHECK:STDOUT: %impl_witness.eff: = impl_witness (), @impl.1(%T) [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %I.type.51f: type = facet_type <@I, @I(%ptr)> [symbolic] -// CHECK:STDOUT: %require_complete.96d: = require_complete_type %I.type.51f [symbolic] -// CHECK:STDOUT: %impl_witness.26c: = impl_witness (), @impl.2(%T) [symbolic] +// CHECK:STDOUT: %I.type.0e2: type = facet_type <@I, @I(%ptr)> [symbolic] +// CHECK:STDOUT: %require_complete.0e6: = require_complete_type %I.type.0e2 [symbolic] +// CHECK:STDOUT: %impl_witness.465: = impl_witness (), @impl.2(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -136,11 +136,11 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %I.ref.loc8: %I.type.dac = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %T.ref.loc8: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.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.bc4)] +// CHECK:STDOUT: %I.type.loc8_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.325)] // CHECK:STDOUT: %T.param.loc8: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param.loc8 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc8: = impl_witness (), @impl.1(constants.%T) [symbolic = @impl.1.%impl_witness (constants.%impl_witness.455)] +// CHECK:STDOUT: %impl_witness.loc8: = impl_witness (), @impl.1(constants.%T) [symbolic = @impl.1.%impl_witness (constants.%impl_witness.eff)] // CHECK:STDOUT: impl_decl @impl.1 [template] { // CHECK:STDOUT: %T.patt.loc8_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc8_14.1, runtime_param [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] @@ -148,7 +148,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %I.ref.loc9: %I.type.dac = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc9 [symbolic = constants.%T] -// CHECK:STDOUT: %I.type.loc9: type = facet_type <@I, @I(constants.%T)> [symbolic = constants.%I.type.bc4] +// CHECK:STDOUT: %I.type.loc9: type = facet_type <@I, @I(constants.%T)> [symbolic = constants.%I.type.325] // CHECK:STDOUT: %T.param.loc9: type = value_param runtime_param // CHECK:STDOUT: %T.loc9: type = bind_symbolic_name T, 0, %T.param.loc9 [symbolic = constants.%T] // CHECK:STDOUT: } @@ -160,11 +160,11 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc12_14.1 [symbolic = %T.loc12_14.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc12_32.1: type = ptr_type %T [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.51f)] +// CHECK:STDOUT: %I.type.loc12_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc12_33.2 (constants.%I.type.0e2)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc12_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc12: = impl_witness (), @impl.2(constants.%T) [symbolic = @impl.2.%impl_witness (constants.%impl_witness.26c)] +// CHECK:STDOUT: %impl_witness.loc12: = impl_witness (), @impl.2(constants.%T) [symbolic = @impl.2.%impl_witness (constants.%impl_witness.465)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @I(%T.loc5_13.1: type) { @@ -172,11 +172,11 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt.loc5_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc5_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc5_13.2)> [symbolic = %I.type (constants.%I.type.bc4)] -// CHECK:STDOUT: %Self.2: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc5_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self.2: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.bc4) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -187,9 +187,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: generic impl @impl.1(%T.loc8_14.1: type) { // CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %I.type.loc8_32.2: type = facet_type <@I, @I(%T.loc8_14.2)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.bc4)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.1.%I.type.loc8_32.2 (%I.type.bc4) [symbolic = %require_complete (constants.%require_complete.ffb)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.455)] +// CHECK:STDOUT: %I.type.loc8_32.2: type = facet_type <@I, @I(%T.loc8_14.2)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.325)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.1.%I.type.loc8_32.2 (%I.type.325) [symbolic = %require_complete (constants.%require_complete.cfe)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.eff)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -203,9 +203,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc12_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc12_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt)] // CHECK:STDOUT: %ptr.loc12_32.2: type = ptr_type @impl.2.%T.loc12_14.2 (%T) [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.51f)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.2.%I.type.loc12_33.2 (%I.type.51f) [symbolic = %require_complete (constants.%require_complete.96d)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T.loc12_14.2) [symbolic = %impl_witness (constants.%impl_witness.26c)] +// 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.0e2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.2.%I.type.loc12_33.2 (%I.type.0e2) [symbolic = %require_complete (constants.%require_complete.0e6)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T.loc12_14.2) [symbolic = %impl_witness (constants.%impl_witness.465)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -228,7 +228,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt.loc5_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.bc4 +// CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: @@ -237,9 +237,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: specific @impl.1(constants.%T) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%T -// CHECK:STDOUT: %I.type.loc8_32.2 => constants.%I.type.bc4 -// CHECK:STDOUT: %require_complete => constants.%require_complete.ffb -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.455 +// CHECK:STDOUT: %I.type.loc8_32.2 => constants.%I.type.325 +// CHECK:STDOUT: %require_complete => constants.%require_complete.cfe +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.eff // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@impl.1.%T.loc8_14.2) {} @@ -251,7 +251,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt.loc5_13.2 => constants.%ptr // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.51f +// CHECK:STDOUT: %I.type => constants.%I.type.0e2 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: @@ -259,9 +259,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc12_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc12_14.2 => constants.%T // CHECK:STDOUT: %ptr.loc12_32.2 => constants.%ptr -// CHECK:STDOUT: %I.type.loc12_33.2 => constants.%I.type.51f -// CHECK:STDOUT: %require_complete => constants.%require_complete.96d -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.26c +// CHECK:STDOUT: %I.type.loc12_33.2 => constants.%I.type.0e2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.0e6 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.465 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@impl.2.%ptr.loc12_32.2) {} @@ -274,42 +274,42 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.9d1: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.48b: = require_complete_type %I.type.9d1 [symbolic] -// CHECK:STDOUT: %impl_witness.8fd: = impl_witness (), @impl.1(%T) [symbolic] +// CHECK:STDOUT: %require_complete.cfe: = require_complete_type %I.type.325 [symbolic] +// CHECK:STDOUT: %impl_witness.eff58b.1: = impl_witness (), @impl.1(%T) [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %I.type.ffc: type = facet_type <@I, @I(%ptr)> [symbolic] -// CHECK:STDOUT: %require_complete.6c6: = require_complete_type %I.type.ffc [symbolic] -// CHECK:STDOUT: %impl_witness.4b1: = impl_witness (), @impl.2(%T) [symbolic] -// CHECK:STDOUT: %impl_witness.cbc10c.1: = impl_witness (), @impl.3(%T) [symbolic] -// CHECK:STDOUT: %impl_witness.cbc10c.2: = impl_witness (), @impl.4(%T) [symbolic] -// CHECK:STDOUT: %impl_witness.aad5cc.1: = impl_witness (), @impl.5(%T) [symbolic] -// CHECK:STDOUT: %impl_witness.aad5cc.2: = impl_witness (), @impl.6(%T) [symbolic] +// CHECK:STDOUT: %I.type.0e2: type = facet_type <@I, @I(%ptr)> [symbolic] +// CHECK:STDOUT: %require_complete.0e6: = require_complete_type %I.type.0e2 [symbolic] +// CHECK:STDOUT: %impl_witness.46542c.1: = impl_witness (), @impl.2(%T) [symbolic] +// CHECK:STDOUT: %impl_witness.eff58b.2: = impl_witness (), @impl.3(%T) [symbolic] +// CHECK:STDOUT: %impl_witness.eff58b.3: = impl_witness (), @impl.4(%T) [symbolic] +// CHECK:STDOUT: %impl_witness.46542c.2: = impl_witness (), @impl.5(%T) [symbolic] +// CHECK:STDOUT: %impl_witness.46542c.3: = impl_witness (), @impl.6(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//import_generic, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.848: %I.type.dac = import_ref Main//import_generic, I, loaded [template = constants.%I.generic] -// CHECK:STDOUT: %import_ref.ea4 = import_ref Main//import_generic, loc8_33, unloaded -// CHECK:STDOUT: %import_ref.9c1 = import_ref Main//import_generic, inst31 [no loc], unloaded +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//import_generic, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.9f4: %I.type.dac = import_ref Main//import_generic, I, loaded [template = constants.%I.generic] +// CHECK:STDOUT: %import_ref.003 = import_ref Main//import_generic, loc8_33, unloaded +// CHECK:STDOUT: %import_ref.884 = import_ref Main//import_generic, inst31 [no loc], unloaded // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//import_generic, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//import_generic, inst14 [no loc], unloaded -// CHECK:STDOUT: %import_ref.3de5b0.1: type = import_ref Main//import_generic, loc8_24, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.c59: type = import_ref Main//import_generic, loc8_32, loaded [symbolic = @impl.1.%I.type (constants.%I.type.9d1)] -// CHECK:STDOUT: %import_ref.c38 = import_ref Main//import_generic, loc12_35, unloaded -// CHECK:STDOUT: %import_ref.3de5b0.2: type = import_ref Main//import_generic, loc12_24, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.39d: type = import_ref Main//import_generic, loc12_33, loaded [symbolic = @impl.2.%I.type (constants.%I.type.ffc)] +// CHECK:STDOUT: %import_ref.29aca8.1: type = import_ref Main//import_generic, loc8_24, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.4be: type = import_ref Main//import_generic, loc8_32, loaded [symbolic = @impl.1.%I.type (constants.%I.type.325)] +// CHECK:STDOUT: %import_ref.4e1 = import_ref Main//import_generic, loc12_35, unloaded +// CHECK:STDOUT: %import_ref.29aca8.2: type = import_ref Main//import_generic, loc12_24, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3e2: type = import_ref Main//import_generic, loc12_33, loaded [symbolic = @impl.2.%I.type (constants.%I.type.0e2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac -// CHECK:STDOUT: .I = imports.%import_ref.848 +// CHECK:STDOUT: .C = imports.%import_ref.3b0 +// CHECK:STDOUT: .I = imports.%import_ref.9f4 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import @@ -317,52 +317,52 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt.loc8_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc8_14.1, runtime_param [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.848 [template = constants.%I.generic] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.9f4 [template = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.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.9d1)] +// CHECK:STDOUT: %I.type.loc8_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.325)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc8: = impl_witness (), @impl.3(constants.%T) [symbolic = @impl.3.%impl_witness (constants.%impl_witness.cbc10c.1)] +// CHECK:STDOUT: %impl_witness.loc8: = impl_witness (), @impl.3(constants.%T) [symbolic = @impl.3.%impl_witness (constants.%impl_witness.eff58b.2)] // CHECK:STDOUT: impl_decl @impl.4 [template] { // CHECK:STDOUT: %T.patt.loc14_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc14_14.1, runtime_param [symbolic = %T.patt.loc14_14.2 (constants.%T.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.848 [template = constants.%I.generic] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.9f4 [template = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc14_14.1 [symbolic = %T.loc14_14.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.9d1)] +// CHECK:STDOUT: %I.type.loc14_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc14_32.2 (constants.%I.type.325)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc14_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc14_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc14: = impl_witness (), @impl.4(constants.%T) [symbolic = @impl.4.%impl_witness (constants.%impl_witness.cbc10c.2)] +// CHECK:STDOUT: %impl_witness.loc14: = impl_witness (), @impl.4(constants.%T) [symbolic = @impl.4.%impl_witness (constants.%impl_witness.eff58b.3)] // CHECK:STDOUT: impl_decl @impl.5 [template] { // CHECK:STDOUT: %T.patt.loc20_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc20_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc20_14.1, runtime_param [symbolic = %T.patt.loc20_14.2 (constants.%T.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.848 [template = constants.%I.generic] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.9f4 [template = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc20_14.1 [symbolic = %T.loc20_14.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc20_32.1: type = ptr_type %T [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.ffc)] +// CHECK:STDOUT: %I.type.loc20_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc20_33.2 (constants.%I.type.0e2)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc20_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc20_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc20: = impl_witness (), @impl.5(constants.%T) [symbolic = @impl.5.%impl_witness (constants.%impl_witness.aad5cc.1)] +// CHECK:STDOUT: %impl_witness.loc20: = impl_witness (), @impl.5(constants.%T) [symbolic = @impl.5.%impl_witness (constants.%impl_witness.46542c.2)] // CHECK:STDOUT: impl_decl @impl.6 [template] { // CHECK:STDOUT: %T.patt.loc26_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc26_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc26_14.1, runtime_param [symbolic = %T.patt.loc26_14.2 (constants.%T.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.848 [template = constants.%I.generic] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, imports.%import_ref.9f4 [template = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc26_14.1 [symbolic = %T.loc26_14.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc26_32.1: type = ptr_type %T [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.ffc)] +// CHECK:STDOUT: %I.type.loc26_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc26_33.2 (constants.%I.type.0e2)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc26_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc26_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc26: = impl_witness (), @impl.6(constants.%T) [symbolic = @impl.6.%impl_witness (constants.%impl_witness.aad5cc.2)] +// CHECK:STDOUT: %impl_witness.loc26: = impl_witness (), @impl.6(constants.%T) [symbolic = @impl.6.%impl_witness (constants.%impl_witness.46542c.3)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @I(constants.%T: type) [from "import_generic.carbon"] { @@ -370,12 +370,12 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.9d1)] -// CHECK:STDOUT: %Self: %I.type.9d1 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.9c1 +// CHECK:STDOUT: .Self = imports.%import_ref.884 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -383,15 +383,15 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: generic impl @impl.1(constants.%T: type) [from "import_generic.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.9d1)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.1.%I.type (%I.type.9d1) [symbolic = %require_complete (constants.%require_complete.48b)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T) [symbolic = %impl_witness (constants.%impl_witness.8fd)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.1.%I.type (%I.type.325) [symbolic = %require_complete (constants.%require_complete.cfe)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T) [symbolic = %impl_witness (constants.%impl_witness.eff58b.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%import_ref.3de5b0.1 as imports.%import_ref.c59 { +// CHECK:STDOUT: impl: imports.%import_ref.29aca8.1 as imports.%import_ref.4be { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.ea4 +// CHECK:STDOUT: witness = imports.%import_ref.003 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,24 +399,24 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: %ptr: type = ptr_type @impl.2.%T (%T) [symbolic = %ptr (constants.%ptr)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%ptr)> [symbolic = %I.type (constants.%I.type.ffc)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.2.%I.type (%I.type.ffc) [symbolic = %require_complete (constants.%require_complete.6c6)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T) [symbolic = %impl_witness (constants.%impl_witness.4b1)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%ptr)> [symbolic = %I.type (constants.%I.type.0e2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.2.%I.type (%I.type.0e2) [symbolic = %require_complete (constants.%require_complete.0e6)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T) [symbolic = %impl_witness (constants.%impl_witness.46542c.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%import_ref.3de5b0.2 as imports.%import_ref.39d { +// CHECK:STDOUT: impl: imports.%import_ref.29aca8.2 as imports.%import_ref.3e2 { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.c38 +// CHECK:STDOUT: witness = imports.%import_ref.4e1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl.3(%T.loc8_14.1: type) { // CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %I.type.loc8_32.2: type = facet_type <@I, @I(%T.loc8_14.2)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.9d1)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.3.%I.type.loc8_32.2 (%I.type.9d1) [symbolic = %require_complete (constants.%require_complete.48b)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.3(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.cbc10c.1)] +// CHECK:STDOUT: %I.type.loc8_32.2: type = facet_type <@I, @I(%T.loc8_14.2)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.325)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.3.%I.type.loc8_32.2 (%I.type.325) [symbolic = %require_complete (constants.%require_complete.cfe)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.3(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.eff58b.2)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %I.type.loc8_32.1; // CHECK:STDOUT: } @@ -424,9 +424,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: generic impl @impl.4(%T.loc14_14.1: type) { // CHECK:STDOUT: %T.loc14_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc14_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %I.type.loc14_32.2: type = facet_type <@I, @I(%T.loc14_14.2)> [symbolic = %I.type.loc14_32.2 (constants.%I.type.9d1)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.4.%I.type.loc14_32.2 (%I.type.9d1) [symbolic = %require_complete (constants.%require_complete.48b)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.4(%T.loc14_14.2) [symbolic = %impl_witness (constants.%impl_witness.cbc10c.2)] +// CHECK:STDOUT: %I.type.loc14_32.2: type = facet_type <@I, @I(%T.loc14_14.2)> [symbolic = %I.type.loc14_32.2 (constants.%I.type.325)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.4.%I.type.loc14_32.2 (%I.type.325) [symbolic = %require_complete (constants.%require_complete.cfe)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.4(%T.loc14_14.2) [symbolic = %impl_witness (constants.%impl_witness.eff58b.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -440,9 +440,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc20_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc20_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc20_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc20_14.2 (constants.%T.patt)] // CHECK:STDOUT: %ptr.loc20_32.2: type = ptr_type @impl.5.%T.loc20_14.2 (%T) [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.ffc)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.5.%I.type.loc20_33.2 (%I.type.ffc) [symbolic = %require_complete (constants.%require_complete.6c6)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.5(%T.loc20_14.2) [symbolic = %impl_witness (constants.%impl_witness.aad5cc.1)] +// 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.0e2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.5.%I.type.loc20_33.2 (%I.type.0e2) [symbolic = %require_complete (constants.%require_complete.0e6)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.5(%T.loc20_14.2) [symbolic = %impl_witness (constants.%impl_witness.46542c.2)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %I.type.loc20_33.1; // CHECK:STDOUT: } @@ -451,9 +451,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc26_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc26_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc26_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc26_14.2 (constants.%T.patt)] // CHECK:STDOUT: %ptr.loc26_32.2: type = ptr_type @impl.6.%T.loc26_14.2 (%T) [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.ffc)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.6.%I.type.loc26_33.2 (%I.type.ffc) [symbolic = %require_complete (constants.%require_complete.6c6)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.6(%T.loc26_14.2) [symbolic = %impl_witness (constants.%impl_witness.aad5cc.2)] +// 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.0e2)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.6.%I.type.loc26_33.2 (%I.type.0e2) [symbolic = %require_complete (constants.%require_complete.0e6)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.6(%T.loc26_14.2) [symbolic = %impl_witness (constants.%impl_witness.46542c.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -474,7 +474,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.9d1 +// CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: @@ -483,9 +483,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: specific @impl.1(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T.patt => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.9d1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.48b -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.8fd +// CHECK:STDOUT: %I.type => constants.%I.type.325 +// CHECK:STDOUT: %require_complete => constants.%require_complete.cfe +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.eff58b.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@impl.1.%T) {} @@ -497,7 +497,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt => constants.%ptr // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.ffc +// CHECK:STDOUT: %I.type => constants.%I.type.0e2 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: @@ -505,9 +505,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: %ptr => constants.%ptr -// CHECK:STDOUT: %I.type => constants.%I.type.ffc -// CHECK:STDOUT: %require_complete => constants.%require_complete.6c6 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.4b1 +// CHECK:STDOUT: %I.type => constants.%I.type.0e2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.0e6 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.46542c.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@impl.2.%ptr) {} @@ -517,9 +517,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: specific @impl.3(constants.%T) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%T -// CHECK:STDOUT: %I.type.loc8_32.2 => constants.%I.type.9d1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.48b -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.cbc10c.1 +// CHECK:STDOUT: %I.type.loc8_32.2 => constants.%I.type.325 +// CHECK:STDOUT: %require_complete => constants.%require_complete.cfe +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.eff58b.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@impl.3.%T.loc8_14.2) {} @@ -529,9 +529,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: specific @impl.4(constants.%T) { // CHECK:STDOUT: %T.loc14_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc14_14.2 => constants.%T -// CHECK:STDOUT: %I.type.loc14_32.2 => constants.%I.type.9d1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.48b -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.cbc10c.2 +// CHECK:STDOUT: %I.type.loc14_32.2 => constants.%I.type.325 +// CHECK:STDOUT: %require_complete => constants.%require_complete.cfe +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.eff58b.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@impl.4.%T.loc14_14.2) {} @@ -542,9 +542,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc20_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc20_14.2 => constants.%T // CHECK:STDOUT: %ptr.loc20_32.2 => constants.%ptr -// CHECK:STDOUT: %I.type.loc20_33.2 => constants.%I.type.ffc -// CHECK:STDOUT: %require_complete => constants.%require_complete.6c6 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.aad5cc.1 +// CHECK:STDOUT: %I.type.loc20_33.2 => constants.%I.type.0e2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.0e6 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.46542c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@impl.5.%ptr.loc20_32.2) {} @@ -555,9 +555,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc26_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc26_14.2 => constants.%T // CHECK:STDOUT: %ptr.loc26_32.2 => constants.%ptr -// CHECK:STDOUT: %I.type.loc26_33.2 => constants.%I.type.ffc -// CHECK:STDOUT: %require_complete => constants.%require_complete.6c6 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.aad5cc.2 +// CHECK:STDOUT: %I.type.loc26_33.2 => constants.%I.type.0e2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.0e6 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.46542c.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@impl.6.%ptr.loc26_32.2) {} @@ -574,14 +574,14 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %J.type.2b8: type = generic_interface_type @J [template] // CHECK:STDOUT: %J.generic: %J.type.2b8 = struct_value () [template] -// CHECK:STDOUT: %J.type.d4b: type = facet_type <@J, @J(%T)> [symbolic] -// CHECK:STDOUT: %Self: %J.type.d4b = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.7f4: = require_complete_type %J.type.d4b [symbolic] -// CHECK:STDOUT: %impl_witness.6f1: = impl_witness (), @impl.1(%T) [symbolic] +// CHECK:STDOUT: %J.type.b72: type = facet_type <@J, @J(%T)> [symbolic] +// CHECK:STDOUT: %Self: %J.type.b72 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.287: = require_complete_type %J.type.b72 [symbolic] +// CHECK:STDOUT: %impl_witness.0ef: = impl_witness (), @impl.1(%T) [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %J.type.a4c: type = facet_type <@J, @J(%ptr)> [symbolic] -// CHECK:STDOUT: %require_complete.664: = require_complete_type %J.type.a4c [symbolic] -// CHECK:STDOUT: %impl_witness.87e: = impl_witness (), @impl.2(%T) [symbolic] +// CHECK:STDOUT: %J.type.628: type = facet_type <@J, @J(%ptr)> [symbolic] +// CHECK:STDOUT: %require_complete.c60: = require_complete_type %J.type.628 [symbolic] +// CHECK:STDOUT: %impl_witness.b80: = impl_witness (), @impl.2(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -604,11 +604,11 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] // CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, file.%J.decl [template = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_14.1 [symbolic = %T.loc11_14.2 (constants.%T)] -// CHECK:STDOUT: %J.type.loc11_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc11_32.2 (constants.%J.type.d4b)] +// CHECK:STDOUT: %J.type.loc11_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc11_32.2 (constants.%J.type.b72)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc11_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc11: = impl_witness (), @impl.1(constants.%T) [symbolic = @impl.1.%impl_witness (constants.%impl_witness.6f1)] +// CHECK:STDOUT: %impl_witness.loc11: = impl_witness (), @impl.1(constants.%T) [symbolic = @impl.1.%impl_witness (constants.%impl_witness.0ef)] // CHECK:STDOUT: impl_decl @impl.2 [template] { // CHECK:STDOUT: %T.patt.loc17_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc17_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc17_14.1, runtime_param [symbolic = %T.patt.loc17_14.2 (constants.%T.patt)] @@ -617,11 +617,11 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, file.%J.decl [template = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc17_14.1 [symbolic = %T.loc17_14.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc17_32.1: type = ptr_type %T [symbolic = %ptr.loc17_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc17_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc17_33.2 (constants.%J.type.a4c)] +// CHECK:STDOUT: %J.type.loc17_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc17_33.2 (constants.%J.type.628)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc17_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc17_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (), @impl.2(constants.%T) [symbolic = @impl.2.%impl_witness (constants.%impl_witness.87e)] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (), @impl.2(constants.%T) [symbolic = @impl.2.%impl_witness (constants.%impl_witness.b80)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @J(%T.loc5_13.1: type) { @@ -629,11 +629,11 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt.loc5_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc5_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc5_13.2)> [symbolic = %J.type (constants.%J.type.d4b)] -// CHECK:STDOUT: %Self.2: %J.type.d4b = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc5_13.2)> [symbolic = %J.type (constants.%J.type.b72)] +// CHECK:STDOUT: %Self.2: %J.type.b72 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @J.%J.type (%J.type.d4b) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @J.%J.type (%J.type.b72) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -644,9 +644,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: generic impl @impl.1(%T.loc11_14.1: type) { // CHECK:STDOUT: %T.loc11_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc11_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %J.type.loc11_32.2: type = facet_type <@J, @J(%T.loc11_14.2)> [symbolic = %J.type.loc11_32.2 (constants.%J.type.d4b)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.1.%J.type.loc11_32.2 (%J.type.d4b) [symbolic = %require_complete (constants.%require_complete.7f4)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T.loc11_14.2) [symbolic = %impl_witness (constants.%impl_witness.6f1)] +// CHECK:STDOUT: %J.type.loc11_32.2: type = facet_type <@J, @J(%T.loc11_14.2)> [symbolic = %J.type.loc11_32.2 (constants.%J.type.b72)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.1.%J.type.loc11_32.2 (%J.type.b72) [symbolic = %require_complete (constants.%require_complete.287)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T.loc11_14.2) [symbolic = %impl_witness (constants.%impl_witness.0ef)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.ref as %J.type.loc11_32.1; // CHECK:STDOUT: } @@ -655,9 +655,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc17_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc17_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc17_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc17_14.2 (constants.%T.patt)] // CHECK:STDOUT: %ptr.loc17_32.2: type = ptr_type @impl.2.%T.loc17_14.2 (%T) [symbolic = %ptr.loc17_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc17_33.2: type = facet_type <@J, @J(%ptr.loc17_32.2)> [symbolic = %J.type.loc17_33.2 (constants.%J.type.a4c)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.2.%J.type.loc17_33.2 (%J.type.a4c) [symbolic = %require_complete (constants.%require_complete.664)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T.loc17_14.2) [symbolic = %impl_witness (constants.%impl_witness.87e)] +// CHECK:STDOUT: %J.type.loc17_33.2: type = facet_type <@J, @J(%ptr.loc17_32.2)> [symbolic = %J.type.loc17_33.2 (constants.%J.type.628)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.2.%J.type.loc17_33.2 (%J.type.628) [symbolic = %require_complete (constants.%require_complete.c60)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T.loc17_14.2) [symbolic = %impl_witness (constants.%impl_witness.b80)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.ref as %J.type.loc17_33.1; // CHECK:STDOUT: } @@ -675,7 +675,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt.loc5_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type => constants.%J.type.d4b +// CHECK:STDOUT: %J.type => constants.%J.type.b72 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: @@ -684,9 +684,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: specific @impl.1(constants.%T) { // CHECK:STDOUT: %T.loc11_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc11_14.2 => constants.%T -// CHECK:STDOUT: %J.type.loc11_32.2 => constants.%J.type.d4b -// CHECK:STDOUT: %require_complete => constants.%require_complete.7f4 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.6f1 +// CHECK:STDOUT: %J.type.loc11_32.2 => constants.%J.type.b72 +// CHECK:STDOUT: %require_complete => constants.%require_complete.287 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.0ef // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(@impl.1.%T.loc11_14.2) {} @@ -698,7 +698,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt.loc5_13.2 => constants.%ptr // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type => constants.%J.type.a4c +// CHECK:STDOUT: %J.type => constants.%J.type.628 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: @@ -706,9 +706,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc17_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc17_14.2 => constants.%T // CHECK:STDOUT: %ptr.loc17_32.2 => constants.%ptr -// CHECK:STDOUT: %J.type.loc17_33.2 => constants.%J.type.a4c -// CHECK:STDOUT: %require_complete => constants.%require_complete.664 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.87e +// CHECK:STDOUT: %J.type.loc17_33.2 => constants.%J.type.628 +// CHECK:STDOUT: %require_complete => constants.%require_complete.c60 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.b80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(@impl.2.%ptr.loc17_32.2) {} @@ -721,40 +721,40 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %J.type.2b8: type = generic_interface_type @J [template] // CHECK:STDOUT: %J.generic: %J.type.2b8 = struct_value () [template] -// CHECK:STDOUT: %J.type.dab: type = facet_type <@J, @J(%T)> [symbolic] -// CHECK:STDOUT: %Self: %J.type.dab = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %J.type.b72: type = facet_type <@J, @J(%T)> [symbolic] +// CHECK:STDOUT: %Self: %J.type.b72 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.5ad: = require_complete_type %J.type.dab [symbolic] -// CHECK:STDOUT: %impl_witness.11f: = impl_witness (), @impl.1(%T) [symbolic] +// CHECK:STDOUT: %require_complete.287: = require_complete_type %J.type.b72 [symbolic] +// CHECK:STDOUT: %impl_witness.0ef94b.1: = impl_witness (), @impl.1(%T) [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %J.type.919: type = facet_type <@J, @J(%ptr)> [symbolic] -// CHECK:STDOUT: %require_complete.c6c: = require_complete_type %J.type.919 [symbolic] -// CHECK:STDOUT: %impl_witness.e2f: = impl_witness (), @impl.2(%T) [symbolic] -// CHECK:STDOUT: %impl_witness.8e29ed.1: = impl_witness (), @impl.3(%T) [symbolic] -// CHECK:STDOUT: %impl_witness.8e29ed.2: = impl_witness (), @impl.4(%T) [symbolic] -// CHECK:STDOUT: %impl_witness.64a655.1: = impl_witness (), @impl.5(%T) [symbolic] -// CHECK:STDOUT: %impl_witness.64a655.2: = impl_witness (), @impl.6(%T) [symbolic] +// CHECK:STDOUT: %J.type.628: type = facet_type <@J, @J(%ptr)> [symbolic] +// CHECK:STDOUT: %require_complete.c60: = require_complete_type %J.type.628 [symbolic] +// CHECK:STDOUT: %impl_witness.b80f53.1: = impl_witness (), @impl.2(%T) [symbolic] +// CHECK:STDOUT: %impl_witness.0ef94b.2: = impl_witness (), @impl.3(%T) [symbolic] +// CHECK:STDOUT: %impl_witness.0ef94b.3: = impl_witness (), @impl.4(%T) [symbolic] +// CHECK:STDOUT: %impl_witness.b80f53.2: = impl_witness (), @impl.5(%T) [symbolic] +// CHECK:STDOUT: %impl_witness.b80f53.3: = impl_witness (), @impl.6(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.275: type = import_ref Main//import_generic_decl, D, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.51e: %J.type.2b8 = import_ref Main//import_generic_decl, J, loaded [template = constants.%J.generic] -// CHECK:STDOUT: %import_ref.b49 = import_ref Main//import_generic_decl, inst31 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b0a: type = import_ref Main//import_generic_decl, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.0eb: %J.type.2b8 = import_ref Main//import_generic_decl, J, loaded [template = constants.%J.generic] +// CHECK:STDOUT: %import_ref.ff5 = import_ref Main//import_generic_decl, inst31 [no loc], unloaded // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//import_generic_decl, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.cab = import_ref Main//import_generic_decl, inst14 [no loc], unloaded -// CHECK:STDOUT: %import_ref.3b992b.1: type = import_ref Main//import_generic_decl, loc11_24, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.bdf: type = import_ref Main//import_generic_decl, loc11_32, loaded [symbolic = @impl.1.%J.type (constants.%J.type.dab)] -// CHECK:STDOUT: %import_ref.3b992b.2: type = import_ref Main//import_generic_decl, loc17_24, loaded [template = constants.%D] -// CHECK:STDOUT: %import_ref.857: type = import_ref Main//import_generic_decl, loc17_33, loaded [symbolic = @impl.2.%J.type (constants.%J.type.919)] +// CHECK:STDOUT: %import_ref.aa9f8a.1: type = import_ref Main//import_generic_decl, loc11_24, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.ded: type = import_ref Main//import_generic_decl, loc11_32, loaded [symbolic = @impl.1.%J.type (constants.%J.type.b72)] +// CHECK:STDOUT: %import_ref.aa9f8a.2: type = import_ref Main//import_generic_decl, loc17_24, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.0d3: type = import_ref Main//import_generic_decl, loc17_33, loaded [symbolic = @impl.2.%J.type (constants.%J.type.628)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .D = imports.%import_ref.275 -// CHECK:STDOUT: .J = imports.%import_ref.51e +// CHECK:STDOUT: .D = imports.%import_ref.b0a +// CHECK:STDOUT: .J = imports.%import_ref.0eb // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import @@ -762,52 +762,52 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt.loc8_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc8_14.1, runtime_param [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, imports.%import_ref.51e [template = constants.%J.generic] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0a [template = constants.%D] +// CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, imports.%import_ref.0eb [template = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.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.dab)] +// CHECK:STDOUT: %J.type.loc8_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc8_32.2 (constants.%J.type.b72)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc8: = impl_witness (), @impl.3(constants.%T) [symbolic = @impl.3.%impl_witness (constants.%impl_witness.8e29ed.1)] +// CHECK:STDOUT: %impl_witness.loc8: = impl_witness (), @impl.3(constants.%T) [symbolic = @impl.3.%impl_witness (constants.%impl_witness.0ef94b.2)] // CHECK:STDOUT: impl_decl @impl.4 [template] { // CHECK:STDOUT: %T.patt.loc14_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc14_14.1, runtime_param [symbolic = %T.patt.loc14_14.2 (constants.%T.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, imports.%import_ref.51e [template = constants.%J.generic] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0a [template = constants.%D] +// CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, imports.%import_ref.0eb [template = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc14_14.1 [symbolic = %T.loc14_14.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.dab)] +// CHECK:STDOUT: %J.type.loc14_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc14_32.2 (constants.%J.type.b72)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc14_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc14_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc14: = impl_witness (), @impl.4(constants.%T) [symbolic = @impl.4.%impl_witness (constants.%impl_witness.8e29ed.2)] +// CHECK:STDOUT: %impl_witness.loc14: = impl_witness (), @impl.4(constants.%T) [symbolic = @impl.4.%impl_witness (constants.%impl_witness.0ef94b.3)] // CHECK:STDOUT: impl_decl @impl.5 [template] { // CHECK:STDOUT: %T.patt.loc20_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc20_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc20_14.1, runtime_param [symbolic = %T.patt.loc20_14.2 (constants.%T.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, imports.%import_ref.51e [template = constants.%J.generic] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0a [template = constants.%D] +// CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, imports.%import_ref.0eb [template = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc20_14.1 [symbolic = %T.loc20_14.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc20_32.1: type = ptr_type %T [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.919)] +// CHECK:STDOUT: %J.type.loc20_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc20_33.2 (constants.%J.type.628)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc20_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc20_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc20: = impl_witness (), @impl.5(constants.%T) [symbolic = @impl.5.%impl_witness (constants.%impl_witness.64a655.1)] +// CHECK:STDOUT: %impl_witness.loc20: = impl_witness (), @impl.5(constants.%T) [symbolic = @impl.5.%impl_witness (constants.%impl_witness.b80f53.2)] // CHECK:STDOUT: impl_decl @impl.6 [template] { // CHECK:STDOUT: %T.patt.loc25_14.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc25_14.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc25_14.1, runtime_param [symbolic = %T.patt.loc25_14.2 (constants.%T.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, imports.%import_ref.51e [template = constants.%J.generic] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0a [template = constants.%D] +// CHECK:STDOUT: %J.ref: %J.type.2b8 = name_ref J, imports.%import_ref.0eb [template = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc25_14.1 [symbolic = %T.loc25_14.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc25_32.1: type = ptr_type %T [symbolic = %ptr.loc25_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc25_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc25_33.2 (constants.%J.type.919)] +// CHECK:STDOUT: %J.type.loc25_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc25_33.2 (constants.%J.type.628)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc25_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc25_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc25: = impl_witness (), @impl.6(constants.%T) [symbolic = @impl.6.%impl_witness (constants.%impl_witness.64a655.2)] +// CHECK:STDOUT: %impl_witness.loc25: = impl_witness (), @impl.6(constants.%T) [symbolic = @impl.6.%impl_witness (constants.%impl_witness.b80f53.3)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @J(constants.%T: type) [from "fail_import_generic_decl.carbon"] { @@ -815,12 +815,12 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.dab)] -// CHECK:STDOUT: %Self: %J.type.dab = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.b72)] +// CHECK:STDOUT: %Self: %J.type.b72 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.b49 +// CHECK:STDOUT: .Self = imports.%import_ref.ff5 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -828,30 +828,30 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: generic impl @impl.1(constants.%T: type) [from "fail_import_generic_decl.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.dab)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.1.%J.type (%J.type.dab) [symbolic = %require_complete (constants.%require_complete.5ad)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T) [symbolic = %impl_witness (constants.%impl_witness.11f)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.b72)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.1.%J.type (%J.type.b72) [symbolic = %require_complete (constants.%require_complete.287)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.1(%T) [symbolic = %impl_witness (constants.%impl_witness.0ef94b.1)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%import_ref.3b992b.1 as imports.%import_ref.bdf; +// CHECK:STDOUT: impl: imports.%import_ref.aa9f8a.1 as imports.%import_ref.ded; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl.2(constants.%T: type) [from "fail_import_generic_decl.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: %ptr: type = ptr_type @impl.2.%T (%T) [symbolic = %ptr (constants.%ptr)] -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%ptr)> [symbolic = %J.type (constants.%J.type.919)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.2.%J.type (%J.type.919) [symbolic = %require_complete (constants.%require_complete.c6c)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T) [symbolic = %impl_witness (constants.%impl_witness.e2f)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%ptr)> [symbolic = %J.type (constants.%J.type.628)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.2.%J.type (%J.type.628) [symbolic = %require_complete (constants.%require_complete.c60)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.2(%T) [symbolic = %impl_witness (constants.%impl_witness.b80f53.1)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%import_ref.3b992b.2 as imports.%import_ref.857; +// CHECK:STDOUT: impl: imports.%import_ref.aa9f8a.2 as imports.%import_ref.0d3; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl.3(%T.loc8_14.1: type) { // CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %J.type.loc8_32.2: type = facet_type <@J, @J(%T.loc8_14.2)> [symbolic = %J.type.loc8_32.2 (constants.%J.type.dab)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.3.%J.type.loc8_32.2 (%J.type.dab) [symbolic = %require_complete (constants.%require_complete.5ad)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.3(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.8e29ed.1)] +// CHECK:STDOUT: %J.type.loc8_32.2: type = facet_type <@J, @J(%T.loc8_14.2)> [symbolic = %J.type.loc8_32.2 (constants.%J.type.b72)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.3.%J.type.loc8_32.2 (%J.type.b72) [symbolic = %require_complete (constants.%require_complete.287)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.3(%T.loc8_14.2) [symbolic = %impl_witness (constants.%impl_witness.0ef94b.2)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.ref as %J.type.loc8_32.1; // CHECK:STDOUT: } @@ -859,9 +859,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: generic impl @impl.4(%T.loc14_14.1: type) { // CHECK:STDOUT: %T.loc14_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc14_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_14.2 (constants.%T.patt)] -// CHECK:STDOUT: %J.type.loc14_32.2: type = facet_type <@J, @J(%T.loc14_14.2)> [symbolic = %J.type.loc14_32.2 (constants.%J.type.dab)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.4.%J.type.loc14_32.2 (%J.type.dab) [symbolic = %require_complete (constants.%require_complete.5ad)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.4(%T.loc14_14.2) [symbolic = %impl_witness (constants.%impl_witness.8e29ed.2)] +// CHECK:STDOUT: %J.type.loc14_32.2: type = facet_type <@J, @J(%T.loc14_14.2)> [symbolic = %J.type.loc14_32.2 (constants.%J.type.b72)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.4.%J.type.loc14_32.2 (%J.type.b72) [symbolic = %require_complete (constants.%require_complete.287)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.4(%T.loc14_14.2) [symbolic = %impl_witness (constants.%impl_witness.0ef94b.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -875,9 +875,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc20_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc20_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc20_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc20_14.2 (constants.%T.patt)] // CHECK:STDOUT: %ptr.loc20_32.2: type = ptr_type @impl.5.%T.loc20_14.2 (%T) [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.919)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.5.%J.type.loc20_33.2 (%J.type.919) [symbolic = %require_complete (constants.%require_complete.c6c)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.5(%T.loc20_14.2) [symbolic = %impl_witness (constants.%impl_witness.64a655.1)] +// 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.628)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.5.%J.type.loc20_33.2 (%J.type.628) [symbolic = %require_complete (constants.%require_complete.c60)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.5(%T.loc20_14.2) [symbolic = %impl_witness (constants.%impl_witness.b80f53.2)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.ref as %J.type.loc20_33.1; // CHECK:STDOUT: } @@ -886,9 +886,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc25_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc25_14.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc25_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc25_14.2 (constants.%T.patt)] // CHECK:STDOUT: %ptr.loc25_32.2: type = ptr_type @impl.6.%T.loc25_14.2 (%T) [symbolic = %ptr.loc25_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc25_33.2: type = facet_type <@J, @J(%ptr.loc25_32.2)> [symbolic = %J.type.loc25_33.2 (constants.%J.type.919)] -// CHECK:STDOUT: %require_complete: = require_complete_type @impl.6.%J.type.loc25_33.2 (%J.type.919) [symbolic = %require_complete (constants.%require_complete.c6c)] -// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.6(%T.loc25_14.2) [symbolic = %impl_witness (constants.%impl_witness.64a655.2)] +// CHECK:STDOUT: %J.type.loc25_33.2: type = facet_type <@J, @J(%ptr.loc25_32.2)> [symbolic = %J.type.loc25_33.2 (constants.%J.type.628)] +// CHECK:STDOUT: %require_complete: = require_complete_type @impl.6.%J.type.loc25_33.2 (%J.type.628) [symbolic = %require_complete (constants.%require_complete.c60)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.6(%T.loc25_14.2) [symbolic = %impl_witness (constants.%impl_witness.b80f53.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -909,7 +909,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type => constants.%J.type.dab +// CHECK:STDOUT: %J.type => constants.%J.type.b72 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: @@ -918,9 +918,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: specific @impl.1(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T.patt => constants.%T -// CHECK:STDOUT: %J.type => constants.%J.type.dab -// CHECK:STDOUT: %require_complete => constants.%require_complete.5ad -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.11f +// CHECK:STDOUT: %J.type => constants.%J.type.b72 +// CHECK:STDOUT: %require_complete => constants.%require_complete.287 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.0ef94b.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(@impl.1.%T) {} @@ -932,7 +932,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.patt => constants.%ptr // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type => constants.%J.type.919 +// CHECK:STDOUT: %J.type => constants.%J.type.628 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: @@ -940,9 +940,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: %ptr => constants.%ptr -// CHECK:STDOUT: %J.type => constants.%J.type.919 -// CHECK:STDOUT: %require_complete => constants.%require_complete.c6c -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.e2f +// CHECK:STDOUT: %J.type => constants.%J.type.628 +// CHECK:STDOUT: %require_complete => constants.%require_complete.c60 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.b80f53.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(@impl.2.%ptr) {} @@ -952,9 +952,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: specific @impl.3(constants.%T) { // CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_14.2 => constants.%T -// CHECK:STDOUT: %J.type.loc8_32.2 => constants.%J.type.dab -// CHECK:STDOUT: %require_complete => constants.%require_complete.5ad -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.8e29ed.1 +// CHECK:STDOUT: %J.type.loc8_32.2 => constants.%J.type.b72 +// CHECK:STDOUT: %require_complete => constants.%require_complete.287 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.0ef94b.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(@impl.3.%T.loc8_14.2) {} @@ -964,9 +964,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: specific @impl.4(constants.%T) { // CHECK:STDOUT: %T.loc14_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc14_14.2 => constants.%T -// CHECK:STDOUT: %J.type.loc14_32.2 => constants.%J.type.dab -// CHECK:STDOUT: %require_complete => constants.%require_complete.5ad -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.8e29ed.2 +// CHECK:STDOUT: %J.type.loc14_32.2 => constants.%J.type.b72 +// CHECK:STDOUT: %require_complete => constants.%require_complete.287 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.0ef94b.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(@impl.4.%T.loc14_14.2) {} @@ -977,9 +977,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc20_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc20_14.2 => constants.%T // CHECK:STDOUT: %ptr.loc20_32.2 => constants.%ptr -// CHECK:STDOUT: %J.type.loc20_33.2 => constants.%J.type.919 -// CHECK:STDOUT: %require_complete => constants.%require_complete.c6c -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.64a655.1 +// CHECK:STDOUT: %J.type.loc20_33.2 => constants.%J.type.628 +// CHECK:STDOUT: %require_complete => constants.%require_complete.c60 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.b80f53.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(@impl.5.%ptr.loc20_32.2) {} @@ -990,9 +990,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %T.loc25_14.2 => constants.%T // CHECK:STDOUT: %T.patt.loc25_14.2 => constants.%T // CHECK:STDOUT: %ptr.loc25_32.2 => constants.%ptr -// CHECK:STDOUT: %J.type.loc25_33.2 => constants.%J.type.919 -// CHECK:STDOUT: %require_complete => constants.%require_complete.c6c -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.64a655.2 +// CHECK:STDOUT: %J.type.loc25_33.2 => constants.%J.type.628 +// CHECK:STDOUT: %require_complete => constants.%require_complete.c60 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.b80f53.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(@impl.6.%ptr.loc25_32.2) {} diff --git a/toolchain/check/testdata/impl/no_prelude/import_self.carbon b/toolchain/check/testdata/impl/no_prelude/import_self.carbon index 66d026083988..c4a0cd300082 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_self.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_self.carbon @@ -105,37 +105,37 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [template] // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Op.type.16a: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %Op.93e: %Op.type.16a = struct_value () [template] +// CHECK:STDOUT: %Op.type.31b: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.d59: %Op.type.31b = struct_value () [template] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.188: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.26f: %Op.type.188 = struct_value () [template] +// CHECK:STDOUT: %Op.type.adf: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.489: %Op.type.adf = struct_value () [template] // CHECK:STDOUT: %Add.facet: %Add.type = facet_value %empty_tuple.type, %impl_witness [template] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.16a [template] -// CHECK:STDOUT: %assoc0: %Op.assoc_type = assoc_entity element0, imports.%import_ref.3bf [template] +// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type %Add.type, %Op.type.31b [template] +// CHECK:STDOUT: %assoc0: %Op.assoc_type = assoc_entity element0, imports.%import_ref.047 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4b5: type = import_ref Main//a, Add, loaded [template = constants.%Add.type] -// CHECK:STDOUT: %import_ref.72a = import_ref Main//a, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.b57: %Op.assoc_type = import_ref Main//a, loc5_41, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.634: %Op.type.16a = import_ref Main//a, Op, loaded [template = constants.%Op.93e] +// CHECK:STDOUT: %import_ref.fe6: type = import_ref Main//a, Add, loaded [template = constants.%Add.type] +// CHECK:STDOUT: %import_ref.07c = import_ref Main//a, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.6d9: %Op.assoc_type = import_ref Main//a, loc5_41, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.502: %Op.type.31b = import_ref Main//a, Op, loaded [template = constants.%Op.d59] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Add = imports.%import_ref.4b5 +// CHECK:STDOUT: .Add = imports.%import_ref.fe6 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: impl_decl @impl [template] {} { // CHECK:STDOUT: %.loc6_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc6_7.2: type = converted %.loc6_7.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.4b5 [template = constants.%Add.type] +// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.fe6 [template = constants.%Add.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Op.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { @@ -167,13 +167,13 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: // CHECK:STDOUT: interface @Add [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.72a -// CHECK:STDOUT: .Op = imports.%import_ref.b57 -// CHECK:STDOUT: witness = (imports.%import_ref.634) +// CHECK:STDOUT: .Self = imports.%import_ref.07c +// CHECK:STDOUT: .Op = imports.%import_ref.6d9 +// CHECK:STDOUT: witness = (imports.%import_ref.502) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %.loc6_7.2 as %Add.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.188 = fn_decl @Op.2 [template = constants.%Op.26f] { +// CHECK:STDOUT: %Op.decl: %Op.type.adf = fn_decl @Op.2 [template = constants.%Op.489] { // CHECK:STDOUT: %self.patt: %empty_tuple.type = binding_pattern self // CHECK:STDOUT: %self.param_patt: %empty_tuple.type = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %empty_tuple.type = binding_pattern other @@ -215,9 +215,9 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: fn @F(%x.param_patt: %empty_tuple.type, %y.param_patt: %empty_tuple.type) -> %empty_tuple.type { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, %x -// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.4b5 [template = constants.%Add.type] -// CHECK:STDOUT: %Op.ref: %Op.assoc_type = name_ref Op, imports.%import_ref.b57 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %Op.type.16a = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.26f] +// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.fe6 [template = constants.%Add.type] +// CHECK:STDOUT: %Op.ref: %Op.assoc_type = name_ref Op, imports.%import_ref.6d9 [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %Op.type.31b = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.489] // CHECK:STDOUT: %Op.bound: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %y.ref: %empty_tuple.type = name_ref y, %y // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%x.ref, %y.ref) diff --git a/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon b/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon index 7569ecce8dcf..a7d3e2f768b6 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon @@ -51,13 +51,13 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.478: %F.type.9df = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.7bd: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.3d2: %F.type.7bd = struct_value () [symbolic] +// CHECK:STDOUT: %F.type.40c: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.071: %F.type.40c = struct_value () [symbolic] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -90,7 +90,7 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.9df = fn_decl @F.1 [template = constants.%F.478] {} {} +// CHECK:STDOUT: %F.decl: %F.type.cf0 = fn_decl @F.1 [template = constants.%F.bc6] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -106,11 +106,11 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: %impl_witness: = impl_witness (%F.decl), @impl(%T.loc10_14.2) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc10_14.2) [symbolic = %F.type (constants.%F.type.7bd)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.7bd) = struct_value () [symbolic = %F (constants.%F.3d2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc10_14.2) [symbolic = %F.type (constants.%F.type.40c)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.40c) = struct_value () [symbolic = %F (constants.%F.071)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.loc10_27.1 as %I.ref { -// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.7bd) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.3d2)] {} {} +// CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.40c) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.071)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -161,8 +161,8 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: %impl_witness => constants.%impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.7bd -// CHECK:STDOUT: %F => constants.%F.3d2 +// CHECK:STDOUT: %F.type => constants.%F.type.40c +// CHECK:STDOUT: %F => constants.%F.071 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(@impl.%T.loc10_14.2) {} @@ -182,59 +182,59 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %C.df4: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %C.a68: type = class_type @C, @C(%empty_struct_type) [template] -// CHECK:STDOUT: %C.val: %C.a68 = struct_value () [template] +// CHECK:STDOUT: %C.7a7: type = class_type @C, @C(%empty_struct_type) [template] +// CHECK:STDOUT: %C.val: %C.7a7 = struct_value () [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.9df: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.9df [template] -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.911 [template] -// CHECK:STDOUT: %impl_witness.1c5: = impl_witness (imports.%import_ref.a9f), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.2f0: type = fn_type @F.2, @impl(%T) [symbolic] -// CHECK:STDOUT: %F.263: %F.type.2f0 = struct_value () [symbolic] -// CHECK:STDOUT: %impl_witness.8a8: = impl_witness (imports.%import_ref.a9f), @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %impl_witness.4be: = impl_witness (imports.%import_ref.5d8), @impl(%T) [symbolic] -// CHECK:STDOUT: %F.type.50d: type = fn_type @F.2, @impl(%empty_struct_type) [template] -// CHECK:STDOUT: %F.91e: %F.type.50d = struct_value () [template] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.91e, @F.2(%empty_struct_type) [template] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.cf0 [template] +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, imports.%import_ref.777 [template] +// CHECK:STDOUT: %impl_witness.681: = impl_witness (imports.%import_ref.e2c), @impl(%T) [symbolic] +// CHECK:STDOUT: %F.type.40c: type = fn_type @F.2, @impl(%T) [symbolic] +// CHECK:STDOUT: %F.071: %F.type.40c = struct_value () [symbolic] +// CHECK:STDOUT: %impl_witness.02b: = impl_witness (imports.%import_ref.e2c), @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %impl_witness.bbe: = impl_witness (imports.%import_ref.c57), @impl(%T) [symbolic] +// CHECK:STDOUT: %F.type.4a4: type = fn_type @F.2, @impl(%empty_struct_type) [template] +// CHECK:STDOUT: %F.9e6: %F.type.4a4 = struct_value () [template] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.9e6, @F.2(%empty_struct_type) [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.3 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.26e: %C.type = import_ref Main//import_generic, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.9f4: type = import_ref Main//import_generic, I, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Main//import_generic, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.df2: type = import_ref Main//import_generic, I, loaded [template = constants.%I.type] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//import_generic, loc4_20, loaded [template = constants.%complete_type] -// CHECK:STDOUT: %import_ref.495 = import_ref Main//import_generic, inst25 [no loc], unloaded -// CHECK:STDOUT: %import_ref.f8c = import_ref Main//import_generic, inst31 [no loc], unloaded -// CHECK:STDOUT: %import_ref.145: %F.assoc_type = import_ref Main//import_generic, loc7_9, loaded [template = constants.%assoc0] -// CHECK:STDOUT: %import_ref.a15 = import_ref Main//import_generic, F, unloaded -// CHECK:STDOUT: %import_ref.445: = import_ref Main//import_generic, loc10_34, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.4be)] -// CHECK:STDOUT: %import_ref.311: type = import_ref Main//import_generic, loc10_27, loaded [symbolic = @impl.%C (constants.%C.df4)] -// CHECK:STDOUT: %import_ref.bd0: type = import_ref Main//import_generic, loc10_32, loaded [template = constants.%I.type] -// CHECK:STDOUT: %import_ref.a9f: @impl.%F.type (%F.type.2f0) = import_ref Main//import_generic, loc11_10, loaded [symbolic = @impl.%F (constants.%F.263)] +// CHECK:STDOUT: %import_ref.4c0 = import_ref Main//import_generic, inst25 [no loc], unloaded +// CHECK:STDOUT: %import_ref.e5d = import_ref Main//import_generic, inst31 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b5b: %F.assoc_type = import_ref Main//import_generic, loc7_9, loaded [template = constants.%assoc0] +// CHECK:STDOUT: %import_ref.8b9 = import_ref Main//import_generic, F, unloaded +// CHECK:STDOUT: %import_ref.d91: = import_ref Main//import_generic, loc10_34, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.bbe)] +// CHECK:STDOUT: %import_ref.499: type = import_ref Main//import_generic, loc10_27, loaded [symbolic = @impl.%C (constants.%C.f2e)] +// CHECK:STDOUT: %import_ref.301: type = import_ref Main//import_generic, loc10_32, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.e2c: @impl.%F.type (%F.type.40c) = import_ref Main//import_generic, loc11_10, loaded [symbolic = @impl.%F (constants.%F.071)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.26e -// CHECK:STDOUT: .I = imports.%import_ref.9f4 +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .I = imports.%import_ref.df2 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %c.var: ref %C.a68 = var c -// CHECK:STDOUT: %c: ref %C.a68 = bind_name c, %c.var +// CHECK:STDOUT: %c.var: ref %C.7a7 = var c +// CHECK:STDOUT: %c: ref %C.7a7 = bind_name c, %c.var // CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.3 [template = constants.%F.c41] { // CHECK:STDOUT: %return.patt: = return_slot_pattern // CHECK:STDOUT: %return.param_patt: = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.ref: ref %C.a68 = name_ref c, file.%c -// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.9f4 [template = constants.%I.type] -// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.145 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.9df = impl_witness_access constants.%impl_witness.8a8, element0 [template = constants.%F.91e] +// CHECK:STDOUT: %c.ref: ref %C.7a7 = name_ref c, file.%c +// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.df2 [template = constants.%I.type] +// CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, imports.%import_ref.b5b [template = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %F.type.cf0 = impl_witness_access constants.%impl_witness.02b, element0 [template = constants.%F.9e6] // CHECK:STDOUT: %F.specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [template = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() // CHECK:STDOUT: %.loc15_19.1: ref %empty_tuple.type = temporary_storage @@ -247,24 +247,24 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "import_generic.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.f8c -// CHECK:STDOUT: .F = imports.%import_ref.145 -// CHECK:STDOUT: witness = (imports.%import_ref.a15) +// CHECK:STDOUT: .Self = imports.%import_ref.e5d +// CHECK:STDOUT: .F = imports.%import_ref.b5b +// CHECK:STDOUT: witness = (imports.%import_ref.8b9) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl(constants.%T: type) [from "import_generic.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.df4)] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.a9f), @impl(%T) [symbolic = %impl_witness (constants.%impl_witness.1c5)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.e2c), @impl(%T) [symbolic = %impl_witness (constants.%impl_witness.681)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T) [symbolic = %F.type (constants.%F.type.2f0)] -// CHECK:STDOUT: %F: @impl.%F.type (%F.type.2f0) = struct_value () [symbolic = %F (constants.%F.263)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T) [symbolic = %F.type (constants.%F.type.40c)] +// CHECK:STDOUT: %F: @impl.%F.type (%F.type.40c) = struct_value () [symbolic = %F (constants.%F.071)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%import_ref.311 as imports.%import_ref.bd0 { +// CHECK:STDOUT: impl: imports.%import_ref.499 as imports.%import_ref.301 { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.445 +// CHECK:STDOUT: witness = imports.%import_ref.d91 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -276,7 +276,7 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.495 +// CHECK:STDOUT: .Self = imports.%import_ref.4c0 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -299,8 +299,8 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_17.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc6_17.2: init %C.a68 = class_init (), file.%c.var [template = constants.%C.val] -// CHECK:STDOUT: %.loc6_18: init %C.a68 = converted %.loc6_17.1, %.loc6_17.2 [template = constants.%C.val] +// CHECK:STDOUT: %.loc6_17.2: init %C.7a7 = class_init (), file.%c.var [template = constants.%C.val] +// CHECK:STDOUT: %.loc6_18: init %C.7a7 = converted %.loc6_17.1, %.loc6_17.2 [template = constants.%C.val] // CHECK:STDOUT: assign file.%c.var, %.loc6_18 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -322,12 +322,12 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: specific @impl(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T.patt => constants.%T -// CHECK:STDOUT: %C => constants.%C.df4 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.1c5 +// CHECK:STDOUT: %C => constants.%C.f2e +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.681 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.2f0 -// CHECK:STDOUT: %F => constants.%F.263 +// CHECK:STDOUT: %F.type => constants.%F.type.40c +// CHECK:STDOUT: %F => constants.%F.071 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(@impl.%T) {} @@ -339,12 +339,12 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: specific @impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T => constants.%empty_struct_type // CHECK:STDOUT: %T.patt => constants.%empty_struct_type -// CHECK:STDOUT: %C => constants.%C.a68 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.8a8 +// CHECK:STDOUT: %C => constants.%C.7a7 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.02b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type => constants.%F.type.50d -// CHECK:STDOUT: %F => constants.%F.91e +// CHECK:STDOUT: %F.type => constants.%F.type.4a4 +// CHECK:STDOUT: %F => constants.%F.9e6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%empty_struct_type) { diff --git a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon index 6ea294fe8b11..2ae3a37522f8 100644 --- a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon +++ b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon @@ -86,26 +86,26 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %Action.type.29c: type = generic_interface_type @Action [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %Action.generic: %Action.type.29c = struct_value () [template] -// CHECK:STDOUT: %Action.type.55b: type = facet_type <@Action, @Action(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Action.type.55b = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Op.type.7d8: type = fn_type @Op.1, @Action(%T) [symbolic] -// CHECK:STDOUT: %Op.eda: %Op.type.7d8 = struct_value () [symbolic] -// CHECK:STDOUT: %Op.assoc_type.e54: type = assoc_entity_type %Action.type.55b, %Op.type.7d8 [symbolic] -// CHECK:STDOUT: %assoc0.814: %Op.assoc_type.e54 = assoc_entity element0, @Action.%Op.decl [symbolic] +// CHECK:STDOUT: %Action.type.cca: type = facet_type <@Action, @Action(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Action.type.cca = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Op.type.036: type = fn_type @Op.1, @Action(%T) [symbolic] +// CHECK:STDOUT: %Op.6ed: %Op.type.036 = struct_value () [symbolic] +// CHECK:STDOUT: %Op.assoc_type.2ba: type = assoc_entity_type %Action.type.cca, %Op.type.036 [symbolic] +// CHECK:STDOUT: %assoc0.0aa: %Op.assoc_type.2ba = assoc_entity element0, @Action.%Op.decl [symbolic] // CHECK:STDOUT: %A: type = class_type @A [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %B: type = class_type @B [template] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %Action.type.2f8: type = facet_type <@Action, @Action(%B)> [template] -// CHECK:STDOUT: %Op.type.db2: type = fn_type @Op.1, @Action(%B) [template] -// CHECK:STDOUT: %Op.a26: %Op.type.db2 = struct_value () [template] -// CHECK:STDOUT: %Op.assoc_type.390: type = assoc_entity_type %Action.type.2f8, %Op.type.db2 [template] -// CHECK:STDOUT: %assoc0.257: %Op.assoc_type.390 = assoc_entity element0, @Action.%Op.decl [template] +// CHECK:STDOUT: %Action.type.cb0: type = facet_type <@Action, @Action(%B)> [template] +// CHECK:STDOUT: %Op.type.54d: type = fn_type @Op.1, @Action(%B) [template] +// CHECK:STDOUT: %Op.dba: %Op.type.54d = struct_value () [template] +// CHECK:STDOUT: %Op.assoc_type.e7a: type = assoc_entity_type %Action.type.cb0, %Op.type.54d [template] +// CHECK:STDOUT: %assoc0.64a: %Op.assoc_type.e7a = assoc_entity element0, @Action.%Op.decl [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.447: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.aa4: %Op.type.447 = struct_value () [template] -// CHECK:STDOUT: %Action.facet: %Action.type.55b = facet_value %A, %impl_witness [symbolic] +// CHECK:STDOUT: %Op.type.4b4: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.40d: %Op.type.4b4 = struct_value () [template] +// CHECK:STDOUT: %Action.facet: %Action.type.cca = facet_value %A, %impl_witness [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } @@ -132,7 +132,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %Action.ref: %Action.type.29c = name_ref Action, file.%Action.decl [template = constants.%Action.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [template = constants.%Action.type.2f8] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [template = constants.%Action.type.cb0] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Op.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { @@ -150,17 +150,17 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt.loc4_18.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_18.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T.loc4_18.2)> [symbolic = %Action.type (constants.%Action.type.55b)] -// CHECK:STDOUT: %Self.2: %Action.type.55b = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Op.type: type = fn_type @Op.1, @Action(%T.loc4_18.2) [symbolic = %Op.type (constants.%Op.type.7d8)] -// CHECK:STDOUT: %Op: @Action.%Op.type (%Op.type.7d8) = struct_value () [symbolic = %Op (constants.%Op.eda)] -// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type @Action.%Action.type (%Action.type.55b), @Action.%Op.type (%Op.type.7d8) [symbolic = %Op.assoc_type (constants.%Op.assoc_type.e54)] -// CHECK:STDOUT: %assoc0.loc5_10.2: @Action.%Op.assoc_type (%Op.assoc_type.e54) = assoc_entity element0, %Op.decl [symbolic = %assoc0.loc5_10.2 (constants.%assoc0.814)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T.loc4_18.2)> [symbolic = %Action.type (constants.%Action.type.cca)] +// CHECK:STDOUT: %Self.2: %Action.type.cca = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.1, @Action(%T.loc4_18.2) [symbolic = %Op.type (constants.%Op.type.036)] +// CHECK:STDOUT: %Op: @Action.%Op.type (%Op.type.036) = struct_value () [symbolic = %Op (constants.%Op.6ed)] +// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type @Action.%Action.type (%Action.type.cca), @Action.%Op.type (%Op.type.036) [symbolic = %Op.assoc_type (constants.%Op.assoc_type.2ba)] +// CHECK:STDOUT: %assoc0.loc5_10.2: @Action.%Op.assoc_type (%Op.assoc_type.2ba) = assoc_entity element0, %Op.decl [symbolic = %assoc0.loc5_10.2 (constants.%assoc0.0aa)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Action.%Action.type (%Action.type.55b) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Op.decl: @Action.%Op.type (%Op.type.7d8) = fn_decl @Op.1 [symbolic = @Action.%Op (constants.%Op.eda)] {} {} -// CHECK:STDOUT: %assoc0.loc5_10.1: @Action.%Op.assoc_type (%Op.assoc_type.e54) = assoc_entity element0, %Op.decl [symbolic = %assoc0.loc5_10.2 (constants.%assoc0.814)] +// CHECK:STDOUT: %Self.1: @Action.%Action.type (%Action.type.cca) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Op.decl: @Action.%Op.type (%Op.type.036) = fn_decl @Op.1 [symbolic = @Action.%Op (constants.%Op.6ed)] {} {} +// CHECK:STDOUT: %assoc0.loc5_10.1: @Action.%Op.assoc_type (%Op.assoc_type.2ba) = assoc_entity element0, %Op.decl [symbolic = %assoc0.loc5_10.2 (constants.%assoc0.0aa)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -170,7 +170,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %A.ref as %Action.type { -// CHECK:STDOUT: %Op.decl: %Op.type.447 = fn_decl @Op.2 [template = constants.%Op.aa4] {} {} +// CHECK:STDOUT: %Op.decl: %Op.type.4b4 = fn_decl @Op.2 [template = constants.%Op.40d] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Op = %Op.decl @@ -201,7 +201,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op.1(@Action.%T.loc4_18.1: type, @Action.%Self.1: @Action.%Action.type (%Action.type.55b)) { +// CHECK:STDOUT: generic fn @Op.1(@Action.%T.loc4_18.1: type, @Action.%Self.1: @Action.%Action.type (%Action.type.cca)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -216,10 +216,10 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %a.ref: %A = name_ref a, %a // CHECK:STDOUT: %Action.ref: %Action.type.29c = name_ref Action, file.%Action.decl [template = constants.%Action.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [template = constants.%Action.type.2f8] -// CHECK:STDOUT: %.loc16: %Op.assoc_type.390 = specific_constant @Action.%assoc0.loc5_10.1, @Action(constants.%B) [template = constants.%assoc0.257] -// CHECK:STDOUT: %Op.ref: %Op.assoc_type.390 = name_ref Op, %.loc16 [template = constants.%assoc0.257] -// CHECK:STDOUT: %impl.elem0: %Op.type.db2 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.aa4] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [template = constants.%Action.type.cb0] +// CHECK:STDOUT: %.loc16: %Op.assoc_type.e7a = specific_constant @Action.%assoc0.loc5_10.1, @Action(constants.%B) [template = constants.%assoc0.64a] +// CHECK:STDOUT: %Op.ref: %Op.assoc_type.e7a = name_ref Op, %.loc16 [template = constants.%assoc0.64a] +// CHECK:STDOUT: %impl.elem0: %Op.type.54d = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.40d] // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -238,12 +238,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt.loc4_18.2 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type => constants.%Action.type.2f8 +// CHECK:STDOUT: %Action.type => constants.%Action.type.cb0 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %Op.type => constants.%Op.type.db2 -// CHECK:STDOUT: %Op => constants.%Op.a26 -// CHECK:STDOUT: %Op.assoc_type => constants.%Op.assoc_type.390 -// CHECK:STDOUT: %assoc0.loc5_10.2 => constants.%assoc0.257 +// CHECK:STDOUT: %Op.type => constants.%Op.type.54d +// CHECK:STDOUT: %Op => constants.%Op.dba +// CHECK:STDOUT: %Op.assoc_type => constants.%Op.assoc_type.e7a +// CHECK:STDOUT: %assoc0.loc5_10.2 => constants.%assoc0.64a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.1(constants.%B, constants.%Action.facet) {} @@ -258,54 +258,54 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %Action.generic: %Action.type.29c = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %Action.type.a6c: type = facet_type <@Action, @Action(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Action.type.a6c = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Action.type.cca: type = facet_type <@Action, @Action(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Action.type.cca = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Action.type.6ea: type = facet_type <@Action, @Action(%B)> [template] +// CHECK:STDOUT: %Action.type.cb0: type = facet_type <@Action, @Action(%B)> [template] // CHECK:STDOUT: %A: type = class_type @A [template] -// CHECK:STDOUT: %Op.type.5ef: type = fn_type @Op.1, @Action(%T) [symbolic] -// CHECK:STDOUT: %Op.1d0: %Op.type.5ef = struct_value () [symbolic] -// CHECK:STDOUT: %Op.assoc_type.2ae: type = assoc_entity_type %Action.type.a6c, %Op.type.5ef [symbolic] -// CHECK:STDOUT: %assoc0.fd2454.1: %Op.assoc_type.2ae = assoc_entity element0, imports.%import_ref.341b2b.1 [symbolic] -// CHECK:STDOUT: %Op.type.217: type = fn_type @Op.1, @Action(%B) [template] -// CHECK:STDOUT: %Op.555: %Op.type.217 = struct_value () [template] -// CHECK:STDOUT: %Op.assoc_type.ef2: type = assoc_entity_type %Action.type.6ea, %Op.type.217 [template] -// CHECK:STDOUT: %assoc0.042: %Op.assoc_type.ef2 = assoc_entity element0, imports.%import_ref.341b2b.2 [template] +// CHECK:STDOUT: %Op.type.036: type = fn_type @Op.1, @Action(%T) [symbolic] +// CHECK:STDOUT: %Op.6ed: %Op.type.036 = struct_value () [symbolic] +// CHECK:STDOUT: %Op.assoc_type.2ba: type = assoc_entity_type %Action.type.cca, %Op.type.036 [symbolic] +// CHECK:STDOUT: %assoc0.9b9b19.1: %Op.assoc_type.2ba = assoc_entity element0, imports.%import_ref.0e3753.1 [symbolic] +// CHECK:STDOUT: %Op.type.54d: type = fn_type @Op.1, @Action(%B) [template] +// CHECK:STDOUT: %Op.dba: %Op.type.54d = struct_value () [template] +// CHECK:STDOUT: %Op.assoc_type.e7a: type = assoc_entity_type %Action.type.cb0, %Op.type.54d [template] +// CHECK:STDOUT: %assoc0.b39: %Op.assoc_type.e7a = assoc_entity element0, imports.%import_ref.0e3753.2 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %assoc0.fd2454.2: %Op.assoc_type.2ae = assoc_entity element0, imports.%import_ref.341b2b.3 [symbolic] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.e61) [template] -// CHECK:STDOUT: %Op.type.9b5: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.796: %Op.type.9b5 = struct_value () [template] +// CHECK:STDOUT: %assoc0.9b9b19.2: %Op.assoc_type.2ba = assoc_entity element0, imports.%import_ref.0e3753.3 [symbolic] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.d0b) [template] +// CHECK:STDOUT: %Op.type.4b4: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.40d: %Op.type.4b4 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.e3e: %Action.type.29c = import_ref Main//action, Action, loaded [template = constants.%Action.generic] -// CHECK:STDOUT: %import_ref.8a9: type = import_ref Main//action, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.ba0: type = import_ref Main//action, B, loaded [template = constants.%B] -// CHECK:STDOUT: %import_ref.85d = import_ref Main//action, C, unloaded -// CHECK:STDOUT: %import_ref.46e = import_ref Main//action, F, unloaded -// CHECK:STDOUT: %import_ref.a8a: = import_ref Main//action, loc12_21, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.10a: %Action.type.29c = import_ref Main//action, Action, loaded [template = constants.%Action.generic] +// CHECK:STDOUT: %import_ref.e62: type = import_ref Main//action, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.dd8: type = import_ref Main//action, B, loaded [template = constants.%B] +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//action, C, unloaded +// CHECK:STDOUT: %import_ref.bde = import_ref Main//action, F, unloaded +// CHECK:STDOUT: %import_ref.71c: = import_ref Main//action, loc12_21, loaded [template = constants.%impl_witness] // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//action, loc9_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.54a = import_ref Main//action, inst46 [no loc], unloaded -// CHECK:STDOUT: %import_ref.ac4 = import_ref Main//action, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.543: @Action.%Op.assoc_type (%Op.assoc_type.2ae) = import_ref Main//action, loc5_10, loaded [symbolic = @Action.%assoc0 (constants.%assoc0.fd2454.2)] -// CHECK:STDOUT: %import_ref.4d9 = import_ref Main//action, Op, unloaded +// CHECK:STDOUT: %import_ref.ddc = import_ref Main//action, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.f86: @Action.%Op.assoc_type (%Op.assoc_type.2ba) = import_ref Main//action, loc5_10, loaded [symbolic = @Action.%assoc0 (constants.%assoc0.9b9b19.2)] +// CHECK:STDOUT: %import_ref.ae2 = import_ref Main//action, Op, unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//action, loc8_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.da3 = import_ref Main//action, inst41 [no loc], unloaded -// CHECK:STDOUT: %import_ref.bb2: type = import_ref Main//action, loc12_6, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.2b5: type = import_ref Main//action, loc12_19, loaded [template = constants.%Action.type.6ea] -// CHECK:STDOUT: %import_ref.be6 = import_ref Main//action, loc13_11, unloaded -// CHECK:STDOUT: %import_ref.341b2b.1 = import_ref Main//action, loc5_10, unloaded +// CHECK:STDOUT: %import_ref.984: type = import_ref Main//action, loc12_6, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.bb2: type = import_ref Main//action, loc12_19, loaded [template = constants.%Action.type.cb0] +// CHECK:STDOUT: %import_ref.7b5 = import_ref Main//action, loc13_11, unloaded +// CHECK:STDOUT: %import_ref.0e3753.1 = import_ref Main//action, loc5_10, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Action = imports.%import_ref.e3e -// CHECK:STDOUT: .A = imports.%import_ref.8a9 -// CHECK:STDOUT: .B = imports.%import_ref.ba0 -// CHECK:STDOUT: .C = imports.%import_ref.85d -// CHECK:STDOUT: .F = imports.%import_ref.46e +// CHECK:STDOUT: .Action = imports.%import_ref.10a +// CHECK:STDOUT: .A = imports.%import_ref.e62 +// CHECK:STDOUT: .B = imports.%import_ref.dd8 +// CHECK:STDOUT: .C = imports.%import_ref.f42 +// CHECK:STDOUT: .F = imports.%import_ref.bde // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import @@ -315,7 +315,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %a.param_patt: %A = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %A = value_param runtime_param0 -// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.8a9 [template = constants.%A] +// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.e62 [template = constants.%A] // CHECK:STDOUT: %a: %A = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -325,25 +325,25 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.a6c)] -// CHECK:STDOUT: %Self: %Action.type.a6c = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Op.type: type = fn_type @Op.1, @Action(%T) [symbolic = %Op.type (constants.%Op.type.5ef)] -// CHECK:STDOUT: %Op: @Action.%Op.type (%Op.type.5ef) = struct_value () [symbolic = %Op (constants.%Op.1d0)] -// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type @Action.%Action.type (%Action.type.a6c), @Action.%Op.type (%Op.type.5ef) [symbolic = %Op.assoc_type (constants.%Op.assoc_type.2ae)] -// CHECK:STDOUT: %assoc0: @Action.%Op.assoc_type (%Op.assoc_type.2ae) = assoc_entity element0, imports.%import_ref.341b2b.1 [symbolic = %assoc0 (constants.%assoc0.fd2454.1)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.cca)] +// CHECK:STDOUT: %Self: %Action.type.cca = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.1, @Action(%T) [symbolic = %Op.type (constants.%Op.type.036)] +// CHECK:STDOUT: %Op: @Action.%Op.type (%Op.type.036) = struct_value () [symbolic = %Op (constants.%Op.6ed)] +// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type @Action.%Action.type (%Action.type.cca), @Action.%Op.type (%Op.type.036) [symbolic = %Op.assoc_type (constants.%Op.assoc_type.2ba)] +// CHECK:STDOUT: %assoc0: @Action.%Op.assoc_type (%Op.assoc_type.2ba) = assoc_entity element0, imports.%import_ref.0e3753.1 [symbolic = %assoc0 (constants.%assoc0.9b9b19.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.ac4 -// CHECK:STDOUT: .Op = imports.%import_ref.543 -// CHECK:STDOUT: witness = (imports.%import_ref.4d9) +// CHECK:STDOUT: .Self = imports.%import_ref.ddc +// CHECK:STDOUT: .Op = imports.%import_ref.f86 +// CHECK:STDOUT: witness = (imports.%import_ref.ae2) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.bb2 as imports.%import_ref.2b5 [from "action.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.984 as imports.%import_ref.bb2 [from "action.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Op = imports.%import_ref.be6 -// CHECK:STDOUT: witness = imports.%import_ref.a8a +// CHECK:STDOUT: .Op = imports.%import_ref.7b5 +// CHECK:STDOUT: witness = imports.%import_ref.71c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B [from "action.carbon"] { @@ -358,7 +358,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op.1(constants.%T: type, constants.%Self: %Action.type.a6c) [from "action.carbon"] { +// CHECK:STDOUT: generic fn @Op.1(constants.%T: type, constants.%Self: %Action.type.cca) [from "action.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -366,12 +366,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: fn @G(%a.param_patt: %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Action.ref: %Action.type.29c = name_ref Action, imports.%import_ref.e3e [template = constants.%Action.generic] -// CHECK:STDOUT: %B.ref: type = name_ref B, imports.%import_ref.ba0 [template = constants.%B] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [template = constants.%Action.type.6ea] -// CHECK:STDOUT: %.loc4: %Op.assoc_type.ef2 = specific_constant imports.%import_ref.543, @Action(constants.%B) [template = constants.%assoc0.042] -// CHECK:STDOUT: %Op.ref: %Op.assoc_type.ef2 = name_ref Op, %.loc4 [template = constants.%assoc0.042] -// CHECK:STDOUT: %impl.elem0: %Op.type.217 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.796] +// CHECK:STDOUT: %Action.ref: %Action.type.29c = name_ref Action, imports.%import_ref.10a [template = constants.%Action.generic] +// CHECK:STDOUT: %B.ref: type = name_ref B, imports.%import_ref.dd8 [template = constants.%B] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [template = constants.%Action.type.cb0] +// CHECK:STDOUT: %.loc4: %Op.assoc_type.e7a = specific_constant imports.%import_ref.f86, @Action(constants.%B) [template = constants.%assoc0.b39] +// CHECK:STDOUT: %Op.ref: %Op.assoc_type.e7a = name_ref Op, %.loc4 [template = constants.%assoc0.b39] +// CHECK:STDOUT: %impl.elem0: %Op.type.54d = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.40d] // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -388,12 +388,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type => constants.%Action.type.6ea +// CHECK:STDOUT: %Action.type => constants.%Action.type.cb0 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Op.type => constants.%Op.type.217 -// CHECK:STDOUT: %Op => constants.%Op.555 -// CHECK:STDOUT: %Op.assoc_type => constants.%Op.assoc_type.ef2 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.042 +// CHECK:STDOUT: %Op.type => constants.%Op.type.54d +// CHECK:STDOUT: %Op => constants.%Op.dba +// CHECK:STDOUT: %Op.assoc_type => constants.%Op.assoc_type.e7a +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(%T) {} @@ -409,59 +409,59 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %Action.type.29c: type = generic_interface_type @Action [template] // CHECK:STDOUT: %Action.generic: %Action.type.29c = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %Action.type.a6c: type = facet_type <@Action, @Action(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Action.type.a6c = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Action.type.cca: type = facet_type <@Action, @Action(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Action.type.cca = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Action.type.6ea: type = facet_type <@Action, @Action(%B)> [template] +// CHECK:STDOUT: %Action.type.cb0: type = facet_type <@Action, @Action(%B)> [template] // CHECK:STDOUT: %A: type = class_type @A [template] -// CHECK:STDOUT: %Op.type.5ef: type = fn_type @Op, @Action(%T) [symbolic] -// CHECK:STDOUT: %Op.1d0: %Op.type.5ef = struct_value () [symbolic] -// CHECK:STDOUT: %Op.assoc_type.2ae: type = assoc_entity_type %Action.type.a6c, %Op.type.5ef [symbolic] -// CHECK:STDOUT: %assoc0.fd2454.1: %Op.assoc_type.2ae = assoc_entity element0, imports.%import_ref.341b2b.1 [symbolic] -// CHECK:STDOUT: %Op.type.217: type = fn_type @Op, @Action(%B) [template] -// CHECK:STDOUT: %Op.555: %Op.type.217 = struct_value () [template] -// CHECK:STDOUT: %Op.assoc_type.ef2: type = assoc_entity_type %Action.type.6ea, %Op.type.217 [template] -// CHECK:STDOUT: %assoc0.042: %Op.assoc_type.ef2 = assoc_entity element0, imports.%import_ref.341b2b.2 [template] +// CHECK:STDOUT: %Op.type.036: type = fn_type @Op, @Action(%T) [symbolic] +// CHECK:STDOUT: %Op.6ed: %Op.type.036 = struct_value () [symbolic] +// CHECK:STDOUT: %Op.assoc_type.2ba: type = assoc_entity_type %Action.type.cca, %Op.type.036 [symbolic] +// CHECK:STDOUT: %assoc0.9b9b19.1: %Op.assoc_type.2ba = assoc_entity element0, imports.%import_ref.0e3753.1 [symbolic] +// CHECK:STDOUT: %Op.type.54d: type = fn_type @Op, @Action(%B) [template] +// CHECK:STDOUT: %Op.dba: %Op.type.54d = struct_value () [template] +// CHECK:STDOUT: %Op.assoc_type.e7a: type = assoc_entity_type %Action.type.cb0, %Op.type.54d [template] +// CHECK:STDOUT: %assoc0.b39: %Op.assoc_type.e7a = assoc_entity element0, imports.%import_ref.0e3753.2 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %Action.type.216: type = facet_type <@Action, @Action(%C)> [template] -// CHECK:STDOUT: %Op.type.ffb: type = fn_type @Op, @Action(%C) [template] -// CHECK:STDOUT: %Op.466: %Op.type.ffb = struct_value () [template] -// CHECK:STDOUT: %Op.assoc_type.fa3: type = assoc_entity_type %Action.type.216, %Op.type.ffb [template] -// CHECK:STDOUT: %assoc0.599: %Op.assoc_type.fa3 = assoc_entity element0, imports.%import_ref.341b2b.1 [template] -// CHECK:STDOUT: %assoc0.fd2454.2: %Op.assoc_type.2ae = assoc_entity element0, imports.%import_ref.341b2b.3 [symbolic] +// CHECK:STDOUT: %Action.type.e2b: type = facet_type <@Action, @Action(%C)> [template] +// CHECK:STDOUT: %Op.type.5ad: type = fn_type @Op, @Action(%C) [template] +// CHECK:STDOUT: %Op.b10: %Op.type.5ad = struct_value () [template] +// CHECK:STDOUT: %Op.assoc_type.17b: type = assoc_entity_type %Action.type.e2b, %Op.type.5ad [template] +// CHECK:STDOUT: %assoc0.ccd: %Op.assoc_type.17b = assoc_entity element0, imports.%import_ref.0e3753.1 [template] +// CHECK:STDOUT: %assoc0.9b9b19.2: %Op.assoc_type.2ba = assoc_entity element0, imports.%import_ref.0e3753.3 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.e3e: %Action.type.29c = import_ref Main//action, Action, loaded [template = constants.%Action.generic] -// CHECK:STDOUT: %import_ref.8a9: type = import_ref Main//action, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.874 = import_ref Main//action, B, unloaded -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//action, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.46e = import_ref Main//action, F, unloaded -// CHECK:STDOUT: %import_ref.440 = import_ref Main//action, loc12_21, unloaded +// CHECK:STDOUT: %import_ref.10a: %Action.type.29c = import_ref Main//action, Action, loaded [template = constants.%Action.generic] +// CHECK:STDOUT: %import_ref.e62: type = import_ref Main//action, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.81b = import_ref Main//action, B, unloaded +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//action, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.bde = import_ref Main//action, F, unloaded +// CHECK:STDOUT: %import_ref.7a1 = import_ref Main//action, loc12_21, unloaded // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//action, loc9_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.54a = import_ref Main//action, inst46 [no loc], unloaded -// CHECK:STDOUT: %import_ref.ac4 = import_ref Main//action, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.543: @Action.%Op.assoc_type (%Op.assoc_type.2ae) = import_ref Main//action, loc5_10, loaded [symbolic = @Action.%assoc0 (constants.%assoc0.fd2454.2)] -// CHECK:STDOUT: %import_ref.4d9 = import_ref Main//action, Op, unloaded +// CHECK:STDOUT: %import_ref.ddc = import_ref Main//action, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.f86: @Action.%Op.assoc_type (%Op.assoc_type.2ba) = import_ref Main//action, loc5_10, loaded [symbolic = @Action.%assoc0 (constants.%assoc0.9b9b19.2)] +// CHECK:STDOUT: %import_ref.ae2 = import_ref Main//action, Op, unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//action, loc8_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.da3 = import_ref Main//action, inst41 [no loc], unloaded -// CHECK:STDOUT: %import_ref.bb2: type = import_ref Main//action, loc12_6, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.2b5: type = import_ref Main//action, loc12_19, loaded [template = constants.%Action.type.6ea] -// CHECK:STDOUT: %import_ref.be6 = import_ref Main//action, loc13_11, unloaded -// CHECK:STDOUT: %import_ref.341b2b.1 = import_ref Main//action, loc5_10, unloaded +// CHECK:STDOUT: %import_ref.984: type = import_ref Main//action, loc12_6, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.bb2: type = import_ref Main//action, loc12_19, loaded [template = constants.%Action.type.cb0] +// CHECK:STDOUT: %import_ref.7b5 = import_ref Main//action, loc13_11, unloaded +// CHECK:STDOUT: %import_ref.0e3753.1 = import_ref Main//action, loc5_10, unloaded // CHECK:STDOUT: %import_ref.8f24d3.3: = import_ref Main//action, loc10_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//action, inst49 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Action = imports.%import_ref.e3e -// CHECK:STDOUT: .A = imports.%import_ref.8a9 -// CHECK:STDOUT: .B = imports.%import_ref.874 -// CHECK:STDOUT: .C = imports.%import_ref.0ac -// CHECK:STDOUT: .F = imports.%import_ref.46e +// CHECK:STDOUT: .Action = imports.%import_ref.10a +// CHECK:STDOUT: .A = imports.%import_ref.e62 +// CHECK:STDOUT: .B = imports.%import_ref.81b +// CHECK:STDOUT: .C = imports.%import_ref.3b0 +// CHECK:STDOUT: .F = imports.%import_ref.bde // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import @@ -471,7 +471,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %a.param_patt: %A = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %A = value_param runtime_param0 -// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.8a9 [template = constants.%A] +// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.e62 [template = constants.%A] // CHECK:STDOUT: %a: %A = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -481,25 +481,25 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.a6c)] -// CHECK:STDOUT: %Self: %Action.type.a6c = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Op.type: type = fn_type @Op, @Action(%T) [symbolic = %Op.type (constants.%Op.type.5ef)] -// CHECK:STDOUT: %Op: @Action.%Op.type (%Op.type.5ef) = struct_value () [symbolic = %Op (constants.%Op.1d0)] -// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type @Action.%Action.type (%Action.type.a6c), @Action.%Op.type (%Op.type.5ef) [symbolic = %Op.assoc_type (constants.%Op.assoc_type.2ae)] -// CHECK:STDOUT: %assoc0: @Action.%Op.assoc_type (%Op.assoc_type.2ae) = assoc_entity element0, imports.%import_ref.341b2b.1 [symbolic = %assoc0 (constants.%assoc0.fd2454.1)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.cca)] +// CHECK:STDOUT: %Self: %Action.type.cca = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op, @Action(%T) [symbolic = %Op.type (constants.%Op.type.036)] +// CHECK:STDOUT: %Op: @Action.%Op.type (%Op.type.036) = struct_value () [symbolic = %Op (constants.%Op.6ed)] +// CHECK:STDOUT: %Op.assoc_type: type = assoc_entity_type @Action.%Action.type (%Action.type.cca), @Action.%Op.type (%Op.type.036) [symbolic = %Op.assoc_type (constants.%Op.assoc_type.2ba)] +// CHECK:STDOUT: %assoc0: @Action.%Op.assoc_type (%Op.assoc_type.2ba) = assoc_entity element0, imports.%import_ref.0e3753.1 [symbolic = %assoc0 (constants.%assoc0.9b9b19.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.ac4 -// CHECK:STDOUT: .Op = imports.%import_ref.543 -// CHECK:STDOUT: witness = (imports.%import_ref.4d9) +// CHECK:STDOUT: .Self = imports.%import_ref.ddc +// CHECK:STDOUT: .Op = imports.%import_ref.f86 +// CHECK:STDOUT: witness = (imports.%import_ref.ae2) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.bb2 as imports.%import_ref.2b5 [from "action.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.984 as imports.%import_ref.bb2 [from "action.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Op = imports.%import_ref.be6 -// CHECK:STDOUT: witness = imports.%import_ref.440 +// CHECK:STDOUT: .Op = imports.%import_ref.7b5 +// CHECK:STDOUT: witness = imports.%import_ref.7a1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B [from "action.carbon"] { @@ -520,7 +520,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op(constants.%T: type, constants.%Self: %Action.type.a6c) [from "action.carbon"] { +// CHECK:STDOUT: generic fn @Op(constants.%T: type, constants.%Self: %Action.type.cca) [from "action.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -528,11 +528,11 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: fn @G(%a.param_patt: %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Action.ref: %Action.type.29c = name_ref Action, imports.%import_ref.e3e [template = constants.%Action.generic] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%C)> [template = constants.%Action.type.216] -// CHECK:STDOUT: %.loc8: %Op.assoc_type.fa3 = specific_constant imports.%import_ref.543, @Action(constants.%C) [template = constants.%assoc0.599] -// CHECK:STDOUT: %Op.ref: %Op.assoc_type.fa3 = name_ref Op, %.loc8 [template = constants.%assoc0.599] +// CHECK:STDOUT: %Action.ref: %Action.type.29c = name_ref Action, imports.%import_ref.10a [template = constants.%Action.generic] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%C)> [template = constants.%Action.type.e2b] +// CHECK:STDOUT: %.loc8: %Op.assoc_type.17b = specific_constant imports.%import_ref.f86, @Action(constants.%C) [template = constants.%assoc0.ccd] +// CHECK:STDOUT: %Op.ref: %Op.assoc_type.17b = name_ref Op, %.loc8 [template = constants.%assoc0.ccd] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -546,12 +546,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type => constants.%Action.type.6ea +// CHECK:STDOUT: %Action.type => constants.%Action.type.cb0 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Op.type => constants.%Op.type.217 -// CHECK:STDOUT: %Op => constants.%Op.555 -// CHECK:STDOUT: %Op.assoc_type => constants.%Op.assoc_type.ef2 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.042 +// CHECK:STDOUT: %Op.type => constants.%Op.type.54d +// CHECK:STDOUT: %Op => constants.%Op.dba +// CHECK:STDOUT: %Op.assoc_type => constants.%Op.assoc_type.e7a +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(%T) {} @@ -563,12 +563,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type => constants.%Action.type.216 +// CHECK:STDOUT: %Action.type => constants.%Action.type.e2b // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Op.type => constants.%Op.type.ffb -// CHECK:STDOUT: %Op => constants.%Op.466 -// CHECK:STDOUT: %Op.assoc_type => constants.%Op.assoc_type.fa3 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.599 +// CHECK:STDOUT: %Op.type => constants.%Op.type.5ad +// CHECK:STDOUT: %Op => constants.%Op.b10 +// CHECK:STDOUT: %Op.assoc_type => constants.%Op.assoc_type.17b +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ccd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- factory.carbon @@ -578,25 +578,25 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Factory.type.1a8: type = generic_interface_type @Factory [template] // CHECK:STDOUT: %Factory.generic: %Factory.type.1a8 = struct_value () [template] -// CHECK:STDOUT: %Factory.type.eb3: type = facet_type <@Factory, @Factory(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Factory.type.eb3 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Make.type.d00: type = fn_type @Make.1, @Factory(%T) [symbolic] -// CHECK:STDOUT: %Make.daa: %Make.type.d00 = struct_value () [symbolic] -// CHECK:STDOUT: %Make.assoc_type.45d: type = assoc_entity_type %Factory.type.eb3, %Make.type.d00 [symbolic] -// CHECK:STDOUT: %assoc0.462: %Make.assoc_type.45d = assoc_entity element0, @Factory.%Make.decl [symbolic] +// CHECK:STDOUT: %Factory.type.c96: type = facet_type <@Factory, @Factory(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Factory.type.c96 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Make.type.598: type = fn_type @Make.1, @Factory(%T) [symbolic] +// CHECK:STDOUT: %Make.737: %Make.type.598 = struct_value () [symbolic] +// CHECK:STDOUT: %Make.assoc_type.4d9: type = assoc_entity_type %Factory.type.c96, %Make.type.598 [symbolic] +// CHECK:STDOUT: %assoc0.a4a: %Make.assoc_type.4d9 = assoc_entity element0, @Factory.%Make.decl [symbolic] // CHECK:STDOUT: %A: type = class_type @A [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %B: type = class_type @B [template] -// CHECK:STDOUT: %Factory.type.4e9: type = facet_type <@Factory, @Factory(%B)> [template] -// CHECK:STDOUT: %Make.type.a70: type = fn_type @Make.1, @Factory(%B) [template] -// CHECK:STDOUT: %Make.643: %Make.type.a70 = struct_value () [template] -// CHECK:STDOUT: %Make.assoc_type.f8d: type = assoc_entity_type %Factory.type.4e9, %Make.type.a70 [template] -// CHECK:STDOUT: %assoc0.b99: %Make.assoc_type.f8d = assoc_entity element0, @Factory.%Make.decl [template] +// CHECK:STDOUT: %Factory.type.a5d: type = facet_type <@Factory, @Factory(%B)> [template] +// CHECK:STDOUT: %Make.type.c59: type = fn_type @Make.1, @Factory(%B) [template] +// CHECK:STDOUT: %Make.efe: %Make.type.c59 = struct_value () [template] +// CHECK:STDOUT: %Make.assoc_type.6c6: type = assoc_entity_type %Factory.type.a5d, %Make.type.c59 [template] +// CHECK:STDOUT: %assoc0.925: %Make.assoc_type.6c6 = assoc_entity element0, @Factory.%Make.decl [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Make.decl) [template] -// CHECK:STDOUT: %Make.type.882: type = fn_type @Make.2 [template] -// CHECK:STDOUT: %Make.e08: %Make.type.882 = struct_value () [template] -// CHECK:STDOUT: %Factory.facet: %Factory.type.eb3 = facet_value %A, %impl_witness [symbolic] +// CHECK:STDOUT: %Make.type.ec4: type = fn_type @Make.2 [template] +// CHECK:STDOUT: %Make.377: %Make.type.ec4 = struct_value () [template] +// CHECK:STDOUT: %Factory.facet: %Factory.type.c96 = facet_value %A, %impl_witness [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -618,7 +618,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %Factory.ref: %Factory.type.1a8 = name_ref Factory, file.%Factory.decl [template = constants.%Factory.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [template = constants.%Factory.type.4e9] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [template = constants.%Factory.type.a5d] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Make.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } @@ -628,16 +628,16 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt.loc4_19.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_19.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T.loc4_19.2)> [symbolic = %Factory.type (constants.%Factory.type.eb3)] -// CHECK:STDOUT: %Self.2: %Factory.type.eb3 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Make.type: type = fn_type @Make.1, @Factory(%T.loc4_19.2) [symbolic = %Make.type (constants.%Make.type.d00)] -// CHECK:STDOUT: %Make: @Factory.%Make.type (%Make.type.d00) = struct_value () [symbolic = %Make (constants.%Make.daa)] -// CHECK:STDOUT: %Make.assoc_type: type = assoc_entity_type @Factory.%Factory.type (%Factory.type.eb3), @Factory.%Make.type (%Make.type.d00) [symbolic = %Make.assoc_type (constants.%Make.assoc_type.45d)] -// CHECK:STDOUT: %assoc0.loc5_17.2: @Factory.%Make.assoc_type (%Make.assoc_type.45d) = assoc_entity element0, %Make.decl [symbolic = %assoc0.loc5_17.2 (constants.%assoc0.462)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T.loc4_19.2)> [symbolic = %Factory.type (constants.%Factory.type.c96)] +// CHECK:STDOUT: %Self.2: %Factory.type.c96 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make.1, @Factory(%T.loc4_19.2) [symbolic = %Make.type (constants.%Make.type.598)] +// CHECK:STDOUT: %Make: @Factory.%Make.type (%Make.type.598) = struct_value () [symbolic = %Make (constants.%Make.737)] +// CHECK:STDOUT: %Make.assoc_type: type = assoc_entity_type @Factory.%Factory.type (%Factory.type.c96), @Factory.%Make.type (%Make.type.598) [symbolic = %Make.assoc_type (constants.%Make.assoc_type.4d9)] +// CHECK:STDOUT: %assoc0.loc5_17.2: @Factory.%Make.assoc_type (%Make.assoc_type.4d9) = assoc_entity element0, %Make.decl [symbolic = %assoc0.loc5_17.2 (constants.%assoc0.a4a)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Factory.%Factory.type (%Factory.type.eb3) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Make.decl: @Factory.%Make.type (%Make.type.d00) = fn_decl @Make.1 [symbolic = @Factory.%Make (constants.%Make.daa)] { +// CHECK:STDOUT: %Self.1: @Factory.%Factory.type (%Factory.type.c96) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Make.decl: @Factory.%Make.type (%Make.type.598) = fn_decl @Make.1 [symbolic = @Factory.%Make (constants.%Make.737)] { // CHECK:STDOUT: %return.patt: @Make.1.%T (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @Make.1.%T (%T) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -645,7 +645,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %return.param: ref @Make.1.%T (%T) = out_param runtime_param0 // CHECK:STDOUT: %return: ref @Make.1.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc5_17.1: @Factory.%Make.assoc_type (%Make.assoc_type.45d) = assoc_entity element0, %Make.decl [symbolic = %assoc0.loc5_17.2 (constants.%assoc0.462)] +// CHECK:STDOUT: %assoc0.loc5_17.1: @Factory.%Make.assoc_type (%Make.assoc_type.4d9) = assoc_entity element0, %Make.decl [symbolic = %assoc0.loc5_17.2 (constants.%assoc0.a4a)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -655,7 +655,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %A.ref as %Factory.type { -// CHECK:STDOUT: %Make.decl: %Make.type.882 = fn_decl @Make.2 [template = constants.%Make.e08] { +// CHECK:STDOUT: %Make.decl: %Make.type.ec4 = fn_decl @Make.2 [template = constants.%Make.377] { // CHECK:STDOUT: %return.patt: %B = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %B = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -685,7 +685,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make.1(@Factory.%T.loc4_19.1: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.eb3)) { +// CHECK:STDOUT: generic fn @Make.1(@Factory.%T.loc4_19.1: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.c96)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @Make.1.%T (%T); @@ -709,12 +709,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt.loc4_19.2 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.4e9 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.a5d // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %Make.type => constants.%Make.type.a70 -// CHECK:STDOUT: %Make => constants.%Make.643 -// CHECK:STDOUT: %Make.assoc_type => constants.%Make.assoc_type.f8d -// CHECK:STDOUT: %assoc0.loc5_17.2 => constants.%assoc0.b99 +// CHECK:STDOUT: %Make.type => constants.%Make.type.c59 +// CHECK:STDOUT: %Make => constants.%Make.efe +// CHECK:STDOUT: %Make.assoc_type => constants.%Make.assoc_type.6c6 +// CHECK:STDOUT: %assoc0.loc5_17.2 => constants.%assoc0.925 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make.1(constants.%B, constants.%Factory.facet) { @@ -730,50 +730,50 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %Factory.type.1a8: type = generic_interface_type @Factory [template] // CHECK:STDOUT: %Factory.generic: %Factory.type.1a8 = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %Factory.type.d2d: type = facet_type <@Factory, @Factory(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Factory.type.d2d = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.type.c96: type = facet_type <@Factory, @Factory(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Factory.type.c96 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Factory.type.91a: type = facet_type <@Factory, @Factory(%B)> [template] +// CHECK:STDOUT: %Factory.type.a5d: type = facet_type <@Factory, @Factory(%B)> [template] // CHECK:STDOUT: %A: type = class_type @A [template] -// CHECK:STDOUT: %Make.type.a5c: type = fn_type @Make.1, @Factory(%T) [symbolic] -// CHECK:STDOUT: %Make.0f0: %Make.type.a5c = struct_value () [symbolic] -// CHECK:STDOUT: %Make.assoc_type.56f: type = assoc_entity_type %Factory.type.d2d, %Make.type.a5c [symbolic] -// CHECK:STDOUT: %assoc0.08b852.1: %Make.assoc_type.56f = assoc_entity element0, imports.%import_ref.930de4.1 [symbolic] -// CHECK:STDOUT: %Make.type.e84: type = fn_type @Make.1, @Factory(%B) [template] -// CHECK:STDOUT: %Make.ea4: %Make.type.e84 = struct_value () [template] -// CHECK:STDOUT: %Make.assoc_type.f24: type = assoc_entity_type %Factory.type.91a, %Make.type.e84 [template] -// CHECK:STDOUT: %assoc0.fe9: %Make.assoc_type.f24 = assoc_entity element0, imports.%import_ref.930de4.2 [template] +// CHECK:STDOUT: %Make.type.598: type = fn_type @Make.1, @Factory(%T) [symbolic] +// CHECK:STDOUT: %Make.737: %Make.type.598 = struct_value () [symbolic] +// CHECK:STDOUT: %Make.assoc_type.4d9: type = assoc_entity_type %Factory.type.c96, %Make.type.598 [symbolic] +// CHECK:STDOUT: %assoc0.9270f3.1: %Make.assoc_type.4d9 = assoc_entity element0, imports.%import_ref.21018a.1 [symbolic] +// CHECK:STDOUT: %Make.type.c59: type = fn_type @Make.1, @Factory(%B) [template] +// CHECK:STDOUT: %Make.efe: %Make.type.c59 = struct_value () [template] +// CHECK:STDOUT: %Make.assoc_type.6c6: type = assoc_entity_type %Factory.type.a5d, %Make.type.c59 [template] +// CHECK:STDOUT: %assoc0.c38: %Make.assoc_type.6c6 = assoc_entity element0, imports.%import_ref.21018a.2 [template] // CHECK:STDOUT: %MakeB.type: type = fn_type @MakeB [template] // CHECK:STDOUT: %MakeB: %MakeB.type = struct_value () [template] -// CHECK:STDOUT: %assoc0.08b852.2: %Make.assoc_type.56f = assoc_entity element0, imports.%import_ref.930de4.3 [symbolic] -// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.d29) [template] -// CHECK:STDOUT: %Make.type.4c5: type = fn_type @Make.2 [template] -// CHECK:STDOUT: %Make.287: %Make.type.4c5 = struct_value () [template] +// CHECK:STDOUT: %assoc0.9270f3.2: %Make.assoc_type.4d9 = assoc_entity element0, imports.%import_ref.21018a.3 [symbolic] +// CHECK:STDOUT: %impl_witness: = impl_witness (imports.%import_ref.9ec) [template] +// CHECK:STDOUT: %Make.type.ec4: type = fn_type @Make.2 [template] +// CHECK:STDOUT: %Make.377: %Make.type.ec4 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.10c: %Factory.type.1a8 = import_ref Main//factory, Factory, loaded [template = constants.%Factory.generic] -// CHECK:STDOUT: %import_ref.8a9: type = import_ref Main//factory, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.ba0: type = import_ref Main//factory, B, loaded [template = constants.%B] -// CHECK:STDOUT: %import_ref.8b9: = import_ref Main//factory, loc11_22, loaded [template = constants.%impl_witness] +// CHECK:STDOUT: %import_ref.e3d: %Factory.type.1a8 = import_ref Main//factory, Factory, loaded [template = constants.%Factory.generic] +// CHECK:STDOUT: %import_ref.e62: type = import_ref Main//factory, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.dd8: type = import_ref Main//factory, B, loaded [template = constants.%B] +// CHECK:STDOUT: %import_ref.72b: = import_ref Main//factory, loc11_22, loaded [template = constants.%impl_witness] // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//factory, loc9_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.54a = import_ref Main//factory, inst52 [no loc], unloaded -// CHECK:STDOUT: %import_ref.c9b = import_ref Main//factory, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.2a2: @Factory.%Make.assoc_type (%Make.assoc_type.56f) = import_ref Main//factory, loc5_17, loaded [symbolic = @Factory.%assoc0 (constants.%assoc0.08b852.2)] -// CHECK:STDOUT: %import_ref.133 = import_ref Main//factory, Make, unloaded +// CHECK:STDOUT: %import_ref.fbb = import_ref Main//factory, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b0a: @Factory.%Make.assoc_type (%Make.assoc_type.4d9) = import_ref Main//factory, loc5_17, loaded [symbolic = @Factory.%assoc0 (constants.%assoc0.9270f3.2)] +// CHECK:STDOUT: %import_ref.c20 = import_ref Main//factory, Make, unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//factory, loc8_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.da3 = import_ref Main//factory, inst47 [no loc], unloaded -// CHECK:STDOUT: %import_ref.bb2: type = import_ref Main//factory, loc11_6, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.5ef: type = import_ref Main//factory, loc11_20, loaded [template = constants.%Factory.type.91a] -// CHECK:STDOUT: %import_ref.044 = import_ref Main//factory, loc12_17, unloaded -// CHECK:STDOUT: %import_ref.930de4.1 = import_ref Main//factory, loc5_17, unloaded +// CHECK:STDOUT: %import_ref.984: type = import_ref Main//factory, loc11_6, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.bd2: type = import_ref Main//factory, loc11_20, loaded [template = constants.%Factory.type.a5d] +// CHECK:STDOUT: %import_ref.a27 = import_ref Main//factory, loc12_17, unloaded +// CHECK:STDOUT: %import_ref.21018a.1 = import_ref Main//factory, loc5_17, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Factory = imports.%import_ref.10c -// CHECK:STDOUT: .A = imports.%import_ref.8a9 -// CHECK:STDOUT: .B = imports.%import_ref.ba0 +// CHECK:STDOUT: .Factory = imports.%import_ref.e3d +// CHECK:STDOUT: .A = imports.%import_ref.e62 +// CHECK:STDOUT: .B = imports.%import_ref.dd8 // CHECK:STDOUT: .MakeB = %MakeB.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import @@ -784,9 +784,9 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %return.patt: %B = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %B = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %B.ref.loc4: type = name_ref B, imports.%import_ref.ba0 [template = constants.%B] +// CHECK:STDOUT: %B.ref.loc4: type = name_ref B, imports.%import_ref.dd8 [template = constants.%B] // CHECK:STDOUT: %a.param: %A = value_param runtime_param0 -// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.8a9 [template = constants.%A] +// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.e62 [template = constants.%A] // CHECK:STDOUT: %a: %A = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %B = out_param runtime_param1 // CHECK:STDOUT: %return: ref %B = return_slot %return.param @@ -798,25 +798,25 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.d2d)] -// CHECK:STDOUT: %Self: %Factory.type.d2d = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Make.type: type = fn_type @Make.1, @Factory(%T) [symbolic = %Make.type (constants.%Make.type.a5c)] -// CHECK:STDOUT: %Make: @Factory.%Make.type (%Make.type.a5c) = struct_value () [symbolic = %Make (constants.%Make.0f0)] -// CHECK:STDOUT: %Make.assoc_type: type = assoc_entity_type @Factory.%Factory.type (%Factory.type.d2d), @Factory.%Make.type (%Make.type.a5c) [symbolic = %Make.assoc_type (constants.%Make.assoc_type.56f)] -// CHECK:STDOUT: %assoc0: @Factory.%Make.assoc_type (%Make.assoc_type.56f) = assoc_entity element0, imports.%import_ref.930de4.1 [symbolic = %assoc0 (constants.%assoc0.08b852.1)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.c96)] +// CHECK:STDOUT: %Self: %Factory.type.c96 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make.1, @Factory(%T) [symbolic = %Make.type (constants.%Make.type.598)] +// CHECK:STDOUT: %Make: @Factory.%Make.type (%Make.type.598) = struct_value () [symbolic = %Make (constants.%Make.737)] +// CHECK:STDOUT: %Make.assoc_type: type = assoc_entity_type @Factory.%Factory.type (%Factory.type.c96), @Factory.%Make.type (%Make.type.598) [symbolic = %Make.assoc_type (constants.%Make.assoc_type.4d9)] +// CHECK:STDOUT: %assoc0: @Factory.%Make.assoc_type (%Make.assoc_type.4d9) = assoc_entity element0, imports.%import_ref.21018a.1 [symbolic = %assoc0 (constants.%assoc0.9270f3.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.c9b -// CHECK:STDOUT: .Make = imports.%import_ref.2a2 -// CHECK:STDOUT: witness = (imports.%import_ref.133) +// CHECK:STDOUT: .Self = imports.%import_ref.fbb +// CHECK:STDOUT: .Make = imports.%import_ref.b0a +// CHECK:STDOUT: witness = (imports.%import_ref.c20) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.bb2 as imports.%import_ref.5ef [from "factory.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.984 as imports.%import_ref.bd2 [from "factory.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Make = imports.%import_ref.044 -// CHECK:STDOUT: witness = imports.%import_ref.8b9 +// CHECK:STDOUT: .Make = imports.%import_ref.a27 +// CHECK:STDOUT: witness = imports.%import_ref.72b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B [from "factory.carbon"] { @@ -831,7 +831,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f24d3.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make.1(constants.%T: type, constants.%Self: %Factory.type.d2d) [from "factory.carbon"] { +// CHECK:STDOUT: generic fn @Make.1(constants.%T: type, constants.%Self: %Factory.type.c96) [from "factory.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @Make.1.%T (%T); @@ -840,12 +840,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: fn @MakeB(%a.param_patt: %A) -> %return.param_patt: %B { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Factory.ref: %Factory.type.1a8 = name_ref Factory, imports.%import_ref.10c [template = constants.%Factory.generic] -// CHECK:STDOUT: %B.ref.loc5: type = name_ref B, imports.%import_ref.ba0 [template = constants.%B] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [template = constants.%Factory.type.91a] -// CHECK:STDOUT: %.loc5: %Make.assoc_type.f24 = specific_constant imports.%import_ref.2a2, @Factory(constants.%B) [template = constants.%assoc0.fe9] -// CHECK:STDOUT: %Make.ref: %Make.assoc_type.f24 = name_ref Make, %.loc5 [template = constants.%assoc0.fe9] -// CHECK:STDOUT: %impl.elem0: %Make.type.e84 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Make.287] +// CHECK:STDOUT: %Factory.ref: %Factory.type.1a8 = name_ref Factory, imports.%import_ref.e3d [template = constants.%Factory.generic] +// CHECK:STDOUT: %B.ref.loc5: type = name_ref B, imports.%import_ref.dd8 [template = constants.%B] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [template = constants.%Factory.type.a5d] +// CHECK:STDOUT: %.loc5: %Make.assoc_type.6c6 = specific_constant imports.%import_ref.b0a, @Factory(constants.%B) [template = constants.%assoc0.c38] +// CHECK:STDOUT: %Make.ref: %Make.assoc_type.6c6 = name_ref Make, %.loc5 [template = constants.%assoc0.c38] +// CHECK:STDOUT: %impl.elem0: %Make.type.c59 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Make.377] // CHECK:STDOUT: %.loc4: ref %B = splice_block %return {} // CHECK:STDOUT: %Make.call: init %B = call %impl.elem0() to %.loc4 // CHECK:STDOUT: return %Make.call to %return @@ -863,12 +863,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.91a +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.a5d // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Make.type => constants.%Make.type.e84 -// CHECK:STDOUT: %Make => constants.%Make.ea4 -// CHECK:STDOUT: %Make.assoc_type => constants.%Make.assoc_type.f24 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fe9 +// CHECK:STDOUT: %Make.type => constants.%Make.type.c59 +// CHECK:STDOUT: %Make => constants.%Make.efe +// CHECK:STDOUT: %Make.assoc_type => constants.%Make.assoc_type.6c6 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory(%T) {} @@ -886,53 +886,53 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %Factory.type.1a8: type = generic_interface_type @Factory [template] // CHECK:STDOUT: %Factory.generic: %Factory.type.1a8 = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %Factory.type.d2d: type = facet_type <@Factory, @Factory(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Factory.type.d2d = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.type.c96: type = facet_type <@Factory, @Factory(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Factory.type.c96 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Factory.type.91a: type = facet_type <@Factory, @Factory(%B)> [template] +// CHECK:STDOUT: %Factory.type.a5d: type = facet_type <@Factory, @Factory(%B)> [template] // CHECK:STDOUT: %A: type = class_type @A [template] -// CHECK:STDOUT: %Make.type.a5c: type = fn_type @Make, @Factory(%T) [symbolic] -// CHECK:STDOUT: %Make.0f0: %Make.type.a5c = struct_value () [symbolic] -// CHECK:STDOUT: %Make.assoc_type.56f: type = assoc_entity_type %Factory.type.d2d, %Make.type.a5c [symbolic] -// CHECK:STDOUT: %assoc0.08b852.1: %Make.assoc_type.56f = assoc_entity element0, imports.%import_ref.930de4.1 [symbolic] -// CHECK:STDOUT: %Make.type.e84: type = fn_type @Make, @Factory(%B) [template] -// CHECK:STDOUT: %Make.ea4: %Make.type.e84 = struct_value () [template] -// CHECK:STDOUT: %Make.assoc_type.f24: type = assoc_entity_type %Factory.type.91a, %Make.type.e84 [template] -// CHECK:STDOUT: %assoc0.fe9: %Make.assoc_type.f24 = assoc_entity element0, imports.%import_ref.930de4.2 [template] +// CHECK:STDOUT: %Make.type.598: type = fn_type @Make, @Factory(%T) [symbolic] +// CHECK:STDOUT: %Make.737: %Make.type.598 = struct_value () [symbolic] +// CHECK:STDOUT: %Make.assoc_type.4d9: type = assoc_entity_type %Factory.type.c96, %Make.type.598 [symbolic] +// CHECK:STDOUT: %assoc0.9270f3.1: %Make.assoc_type.4d9 = assoc_entity element0, imports.%import_ref.21018a.1 [symbolic] +// CHECK:STDOUT: %Make.type.c59: type = fn_type @Make, @Factory(%B) [template] +// CHECK:STDOUT: %Make.efe: %Make.type.c59 = struct_value () [template] +// CHECK:STDOUT: %Make.assoc_type.6c6: type = assoc_entity_type %Factory.type.a5d, %Make.type.c59 [template] +// CHECK:STDOUT: %assoc0.c38: %Make.assoc_type.6c6 = assoc_entity element0, imports.%import_ref.21018a.2 [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %MakeC.type: type = fn_type @MakeC [template] // CHECK:STDOUT: %MakeC: %MakeC.type = struct_value () [template] -// CHECK:STDOUT: %Factory.type.f0b: type = facet_type <@Factory, @Factory(%C)> [template] -// CHECK:STDOUT: %Make.type.42c: type = fn_type @Make, @Factory(%C) [template] -// CHECK:STDOUT: %Make.29c: %Make.type.42c = struct_value () [template] -// CHECK:STDOUT: %Make.assoc_type.392: type = assoc_entity_type %Factory.type.f0b, %Make.type.42c [template] -// CHECK:STDOUT: %assoc0.3a7: %Make.assoc_type.392 = assoc_entity element0, imports.%import_ref.930de4.1 [template] -// CHECK:STDOUT: %assoc0.08b852.2: %Make.assoc_type.56f = assoc_entity element0, imports.%import_ref.930de4.3 [symbolic] +// CHECK:STDOUT: %Factory.type.5c5: type = facet_type <@Factory, @Factory(%C)> [template] +// CHECK:STDOUT: %Make.type.0de: type = fn_type @Make, @Factory(%C) [template] +// CHECK:STDOUT: %Make.8ba: %Make.type.0de = struct_value () [template] +// CHECK:STDOUT: %Make.assoc_type.2ea: type = assoc_entity_type %Factory.type.5c5, %Make.type.0de [template] +// CHECK:STDOUT: %assoc0.9a3: %Make.assoc_type.2ea = assoc_entity element0, imports.%import_ref.21018a.1 [template] +// CHECK:STDOUT: %assoc0.9270f3.2: %Make.assoc_type.4d9 = assoc_entity element0, imports.%import_ref.21018a.3 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.10c: %Factory.type.1a8 = import_ref Main//factory, Factory, loaded [template = constants.%Factory.generic] -// CHECK:STDOUT: %import_ref.8a9: type = import_ref Main//factory, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.874 = import_ref Main//factory, B, unloaded -// CHECK:STDOUT: %import_ref.826 = import_ref Main//factory, loc11_22, unloaded +// CHECK:STDOUT: %import_ref.e3d: %Factory.type.1a8 = import_ref Main//factory, Factory, loaded [template = constants.%Factory.generic] +// CHECK:STDOUT: %import_ref.e62: type = import_ref Main//factory, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.81b = import_ref Main//factory, B, unloaded +// CHECK:STDOUT: %import_ref.3e9 = import_ref Main//factory, loc11_22, unloaded // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//factory, loc9_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.54a = import_ref Main//factory, inst52 [no loc], unloaded -// CHECK:STDOUT: %import_ref.c9b = import_ref Main//factory, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.2a2: @Factory.%Make.assoc_type (%Make.assoc_type.56f) = import_ref Main//factory, loc5_17, loaded [symbolic = @Factory.%assoc0 (constants.%assoc0.08b852.2)] -// CHECK:STDOUT: %import_ref.133 = import_ref Main//factory, Make, unloaded +// CHECK:STDOUT: %import_ref.fbb = import_ref Main//factory, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b0a: @Factory.%Make.assoc_type (%Make.assoc_type.4d9) = import_ref Main//factory, loc5_17, loaded [symbolic = @Factory.%assoc0 (constants.%assoc0.9270f3.2)] +// CHECK:STDOUT: %import_ref.c20 = import_ref Main//factory, Make, unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//factory, loc8_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.da3 = import_ref Main//factory, inst47 [no loc], unloaded -// CHECK:STDOUT: %import_ref.bb2: type = import_ref Main//factory, loc11_6, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.5ef: type = import_ref Main//factory, loc11_20, loaded [template = constants.%Factory.type.91a] -// CHECK:STDOUT: %import_ref.044 = import_ref Main//factory, loc12_17, unloaded -// CHECK:STDOUT: %import_ref.930de4.1 = import_ref Main//factory, loc5_17, unloaded +// CHECK:STDOUT: %import_ref.984: type = import_ref Main//factory, loc11_6, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.bd2: type = import_ref Main//factory, loc11_20, loaded [template = constants.%Factory.type.a5d] +// CHECK:STDOUT: %import_ref.a27 = import_ref Main//factory, loc12_17, unloaded +// CHECK:STDOUT: %import_ref.21018a.1 = import_ref Main//factory, loc5_17, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Factory = imports.%import_ref.10c -// CHECK:STDOUT: .A = imports.%import_ref.8a9 -// CHECK:STDOUT: .B = imports.%import_ref.874 +// CHECK:STDOUT: .Factory = imports.%import_ref.e3d +// CHECK:STDOUT: .A = imports.%import_ref.e62 +// CHECK:STDOUT: .B = imports.%import_ref.81b // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .MakeC = %MakeC.decl // CHECK:STDOUT: } @@ -947,7 +947,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %A = value_param runtime_param0 -// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.8a9 [template = constants.%A] +// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.e62 [template = constants.%A] // CHECK:STDOUT: %a: %A = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %C = out_param runtime_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param @@ -959,25 +959,25 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.d2d)] -// CHECK:STDOUT: %Self: %Factory.type.d2d = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Factory(%T) [symbolic = %Make.type (constants.%Make.type.a5c)] -// CHECK:STDOUT: %Make: @Factory.%Make.type (%Make.type.a5c) = struct_value () [symbolic = %Make (constants.%Make.0f0)] -// CHECK:STDOUT: %Make.assoc_type: type = assoc_entity_type @Factory.%Factory.type (%Factory.type.d2d), @Factory.%Make.type (%Make.type.a5c) [symbolic = %Make.assoc_type (constants.%Make.assoc_type.56f)] -// CHECK:STDOUT: %assoc0: @Factory.%Make.assoc_type (%Make.assoc_type.56f) = assoc_entity element0, imports.%import_ref.930de4.1 [symbolic = %assoc0 (constants.%assoc0.08b852.1)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.c96)] +// CHECK:STDOUT: %Self: %Factory.type.c96 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Factory(%T) [symbolic = %Make.type (constants.%Make.type.598)] +// CHECK:STDOUT: %Make: @Factory.%Make.type (%Make.type.598) = struct_value () [symbolic = %Make (constants.%Make.737)] +// CHECK:STDOUT: %Make.assoc_type: type = assoc_entity_type @Factory.%Factory.type (%Factory.type.c96), @Factory.%Make.type (%Make.type.598) [symbolic = %Make.assoc_type (constants.%Make.assoc_type.4d9)] +// CHECK:STDOUT: %assoc0: @Factory.%Make.assoc_type (%Make.assoc_type.4d9) = assoc_entity element0, imports.%import_ref.21018a.1 [symbolic = %assoc0 (constants.%assoc0.9270f3.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.c9b -// CHECK:STDOUT: .Make = imports.%import_ref.2a2 -// CHECK:STDOUT: witness = (imports.%import_ref.133) +// CHECK:STDOUT: .Self = imports.%import_ref.fbb +// CHECK:STDOUT: .Make = imports.%import_ref.b0a +// CHECK:STDOUT: witness = (imports.%import_ref.c20) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.bb2 as imports.%import_ref.5ef [from "factory.carbon"] { +// CHECK:STDOUT: impl @impl: imports.%import_ref.984 as imports.%import_ref.bd2 [from "factory.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Make = imports.%import_ref.044 -// CHECK:STDOUT: witness = imports.%import_ref.826 +// CHECK:STDOUT: .Make = imports.%import_ref.a27 +// CHECK:STDOUT: witness = imports.%import_ref.3e9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B [from "factory.carbon"] { @@ -1000,7 +1000,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make(constants.%T: type, constants.%Self: %Factory.type.d2d) [from "factory.carbon"] { +// CHECK:STDOUT: generic fn @Make(constants.%T: type, constants.%Self: %Factory.type.c96) [from "factory.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @Make.%T (%T); @@ -1009,11 +1009,11 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: fn @MakeC(%a.param_patt: %A) -> %return.param_patt: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Factory.ref: %Factory.type.1a8 = name_ref Factory, imports.%import_ref.10c [template = constants.%Factory.generic] +// CHECK:STDOUT: %Factory.ref: %Factory.type.1a8 = name_ref Factory, imports.%import_ref.e3d [template = constants.%Factory.generic] // CHECK:STDOUT: %C.ref.loc10: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%C)> [template = constants.%Factory.type.f0b] -// CHECK:STDOUT: %.loc10: %Make.assoc_type.392 = specific_constant imports.%import_ref.2a2, @Factory(constants.%C) [template = constants.%assoc0.3a7] -// CHECK:STDOUT: %Make.ref: %Make.assoc_type.392 = name_ref Make, %.loc10 [template = constants.%assoc0.3a7] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%C)> [template = constants.%Factory.type.5c5] +// CHECK:STDOUT: %.loc10: %Make.assoc_type.2ea = specific_constant imports.%import_ref.b0a, @Factory(constants.%C) [template = constants.%assoc0.9a3] +// CHECK:STDOUT: %Make.ref: %Make.assoc_type.2ea = name_ref Make, %.loc10 [template = constants.%assoc0.9a3] // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1027,12 +1027,12 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.91a +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.a5d // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Make.type => constants.%Make.type.e84 -// CHECK:STDOUT: %Make => constants.%Make.ea4 -// CHECK:STDOUT: %Make.assoc_type => constants.%Make.assoc_type.f24 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fe9 +// CHECK:STDOUT: %Make.type => constants.%Make.type.c59 +// CHECK:STDOUT: %Make => constants.%Make.efe +// CHECK:STDOUT: %Make.assoc_type => constants.%Make.assoc_type.6c6 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory(%T) {} @@ -1046,11 +1046,11 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.f0b +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5c5 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Make.type => constants.%Make.type.42c -// CHECK:STDOUT: %Make => constants.%Make.29c -// CHECK:STDOUT: %Make.assoc_type => constants.%Make.assoc_type.392 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.3a7 +// CHECK:STDOUT: %Make.type => constants.%Make.type.0de +// CHECK:STDOUT: %Make => constants.%Make.8ba +// CHECK:STDOUT: %Make.assoc_type => constants.%Make.assoc_type.2ea +// CHECK:STDOUT: %assoc0 => constants.%assoc0.9a3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/no_definition_in_impl_file.carbon b/toolchain/check/testdata/impl/no_prelude/no_definition_in_impl_file.carbon index b85c7d85d845..25cdd3694c6d 100644 --- a/toolchain/check/testdata/impl/no_prelude/no_definition_in_impl_file.carbon +++ b/toolchain/check/testdata/impl/no_prelude/no_definition_in_impl_file.carbon @@ -140,39 +140,39 @@ impl () as D; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.68d: type = import_ref Main//decl_in_api_definition_in_impl, A, loaded [template = constants.%A.type] -// CHECK:STDOUT: %import_ref.b09 = import_ref Main//decl_in_api_definition_in_impl, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.14d: type = import_ref Main//decl_in_api_definition_in_impl, A, loaded [template = constants.%A.type] +// CHECK:STDOUT: %import_ref.b61 = import_ref Main//decl_in_api_definition_in_impl, inst15 [no loc], unloaded // CHECK:STDOUT: %import_ref.e5c: type = import_ref Main//decl_in_api_definition_in_impl, loc10_7, loaded [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %import_ref.1f0: type = import_ref Main//decl_in_api_definition_in_impl, loc10_12, loaded [template = constants.%A.type] +// CHECK:STDOUT: %import_ref.831: type = import_ref Main//decl_in_api_definition_in_impl, loc10_12, loaded [template = constants.%A.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.68d +// CHECK:STDOUT: .A = imports.%import_ref.14d // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %.loc8_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc8_7.2: type = converted %.loc8_7.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.68d [template = constants.%A.type] +// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.14d [template = constants.%A.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc8: = impl_witness () [template = constants.%impl_witness] // CHECK:STDOUT: impl_decl @impl.3 [template] {} { // CHECK:STDOUT: %.loc14_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc14_7.2: type = converted %.loc14_7.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.68d [template = constants.%A.type] +// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.14d [template = constants.%A.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc14: = impl_witness () [template = constants.%impl_witness] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A [from "fail_decl_in_api_definition_in_impl.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.b09 +// CHECK:STDOUT: .Self = imports.%import_ref.b61 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.1: imports.%import_ref.e5c as imports.%import_ref.1f0 [from "fail_decl_in_api_definition_in_impl.carbon"]; +// CHECK:STDOUT: impl @impl.1: imports.%import_ref.e5c as imports.%import_ref.831 [from "fail_decl_in_api_definition_in_impl.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %.loc8_7.2 as %A.ref; // CHECK:STDOUT: @@ -241,15 +241,15 @@ impl () as D; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.dcd = import_ref Main//decl_only_in_api, B, unloaded -// CHECK:STDOUT: %import_ref.a54 = import_ref Main//decl_only_in_api, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.8b9 = import_ref Main//decl_only_in_api, B, unloaded +// CHECK:STDOUT: %import_ref.420 = import_ref Main//decl_only_in_api, inst15 [no loc], unloaded // CHECK:STDOUT: %import_ref.e5c: type = import_ref Main//decl_only_in_api, loc10_7, loaded [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %import_ref.cc5: type = import_ref Main//decl_only_in_api, loc10_12, loaded [template = constants.%B.type] +// CHECK:STDOUT: %import_ref.171: type = import_ref Main//decl_only_in_api, loc10_12, loaded [template = constants.%B.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .B = imports.%import_ref.dcd +// CHECK:STDOUT: .B = imports.%import_ref.8b9 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import @@ -257,11 +257,11 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: interface @B [from "fail_decl_only_in_api.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.a54 +// CHECK:STDOUT: .Self = imports.%import_ref.420 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.e5c as imports.%import_ref.cc5 [from "fail_decl_only_in_api.carbon"]; +// CHECK:STDOUT: impl @impl: imports.%import_ref.e5c as imports.%import_ref.171 [from "fail_decl_only_in_api.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: --- fail_decl_in_api_decl_in_impl.carbon // CHECK:STDOUT: @@ -304,33 +304,33 @@ impl () as D; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.832: type = import_ref Main//decl_in_api_decl_in_impl, C, loaded [template = constants.%C.type] -// CHECK:STDOUT: %import_ref.c73 = import_ref Main//decl_in_api_decl_in_impl, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.6be: type = import_ref Main//decl_in_api_decl_in_impl, C, loaded [template = constants.%C.type] +// CHECK:STDOUT: %import_ref.721 = import_ref Main//decl_in_api_decl_in_impl, inst15 [no loc], unloaded // CHECK:STDOUT: %import_ref.e5c: type = import_ref Main//decl_in_api_decl_in_impl, loc10_7, loaded [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %import_ref.677: type = import_ref Main//decl_in_api_decl_in_impl, loc10_12, loaded [template = constants.%C.type] +// CHECK:STDOUT: %import_ref.653: type = import_ref Main//decl_in_api_decl_in_impl, loc10_12, loaded [template = constants.%C.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.832 +// CHECK:STDOUT: .C = imports.%import_ref.6be // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %.loc8_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc8_7.2: type = converted %.loc8_7.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.832 [template = constants.%C.type] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.6be [template = constants.%C.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness () [template = constants.%impl_witness] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @C [from "fail_decl_in_api_decl_in_impl.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.c73 +// CHECK:STDOUT: .Self = imports.%import_ref.721 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.1: imports.%import_ref.e5c as imports.%import_ref.677 [from "fail_decl_in_api_decl_in_impl.carbon"]; +// CHECK:STDOUT: impl @impl.1: imports.%import_ref.e5c as imports.%import_ref.653 [from "fail_decl_in_api_decl_in_impl.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %.loc8_7.2 as %C.ref; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon b/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon index f9ead42eb6d0..f7958d3c87f3 100644 --- a/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon +++ b/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon @@ -28,17 +28,17 @@ class A { // CHECK:STDOUT: %DefaultConstructible.type: type = facet_type <@DefaultConstructible> [template] // CHECK:STDOUT: %Self: %DefaultConstructible.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %Make.type.040: type = fn_type @Make.1 [template] -// CHECK:STDOUT: %Make.a8e: %Make.type.040 = struct_value () [template] -// CHECK:STDOUT: %Make.assoc_type: type = assoc_entity_type %DefaultConstructible.type, %Make.type.040 [template] +// CHECK:STDOUT: %Make.type.068: type = fn_type @Make.1 [template] +// CHECK:STDOUT: %Make.606: %Make.type.068 = struct_value () [template] +// CHECK:STDOUT: %Make.assoc_type: type = assoc_entity_type %DefaultConstructible.type, %Make.type.068 [template] // CHECK:STDOUT: %assoc0: %Make.assoc_type = assoc_entity element0, @DefaultConstructible.%Make.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %A: type = class_type @A [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Make.decl) [template] -// CHECK:STDOUT: %Make.type.db7: type = fn_type @Make.2 [template] -// CHECK:STDOUT: %Make.8a3: %Make.type.db7 = struct_value () [template] +// CHECK:STDOUT: %Make.type.351: type = fn_type @Make.2 [template] +// CHECK:STDOUT: %Make.b73: %Make.type.351 = struct_value () [template] // CHECK:STDOUT: %DefaultConstructible.facet: %DefaultConstructible.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: } @@ -56,7 +56,7 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: interface @DefaultConstructible { // CHECK:STDOUT: %Self: %DefaultConstructible.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %Make.decl: %Make.type.040 = fn_decl @Make.1 [template = constants.%Make.a8e] { +// CHECK:STDOUT: %Make.decl: %Make.type.068 = fn_decl @Make.1 [template = constants.%Make.606] { // CHECK:STDOUT: %return.patt: @Make.1.%Self.as_type.loc12_16.1 (%Self.as_type) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @Make.1.%Self.as_type.loc12_16.1 (%Self.as_type) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -75,7 +75,7 @@ class A { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref as %DefaultConstructible.ref { -// CHECK:STDOUT: %Make.decl: %Make.type.db7 = fn_decl @Make.2 [template = constants.%Make.8a3] { +// CHECK:STDOUT: %Make.decl: %Make.type.351 = fn_decl @Make.2 [template = constants.%Make.b73] { // CHECK:STDOUT: %return.patt: %C = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %C = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon b/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon index aaf43e7078f3..903d1215bc4f 100644 --- a/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon @@ -40,52 +40,52 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %UseSelf.type: type = facet_type <@UseSelf> [template] -// CHECK:STDOUT: %Self.aee: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.3e2: type = facet_access_type %Self.aee [symbolic] -// CHECK:STDOUT: %F.type.a69: type = fn_type @F.1 [template] +// CHECK:STDOUT: %Self.085: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.599: type = facet_access_type %Self.085 [symbolic] +// CHECK:STDOUT: %F.type.86a: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.e5a: %F.type.a69 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.c96: type = assoc_entity_type %UseSelf.type, %F.type.a69 [template] -// CHECK:STDOUT: %assoc0.8e9: %F.assoc_type.c96 = assoc_entity element0, @UseSelf.%F.decl [template] +// CHECK:STDOUT: %F.408: %F.type.86a = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.59c: type = assoc_entity_type %UseSelf.type, %F.type.86a [template] +// CHECK:STDOUT: %assoc0.86d: %F.assoc_type.59c = assoc_entity element0, @UseSelf.%F.decl [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %D: type = class_type @D [template] -// CHECK:STDOUT: %impl_witness.c6f: = impl_witness (@impl.1.%F.decl) [template] -// CHECK:STDOUT: %F.type.261: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.63a: %F.type.261 = struct_value () [template] -// CHECK:STDOUT: %UseSelf.facet.c5b: %UseSelf.type = facet_value %C, %impl_witness.c6f [template] +// CHECK:STDOUT: %impl_witness.9ff: = impl_witness (@impl.1.%F.decl) [template] +// CHECK:STDOUT: %F.type.fc6: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.5e2: %F.type.fc6 = struct_value () [template] +// CHECK:STDOUT: %UseSelf.facet.e62: %UseSelf.type = facet_value %C, %impl_witness.9ff [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] -// CHECK:STDOUT: %impl_witness.02b: = impl_witness (@impl.2.%F.decl) [template] -// CHECK:STDOUT: %F.type.5ab: type = fn_type @F.3 [template] -// CHECK:STDOUT: %F.d6a: %F.type.5ab = struct_value () [template] -// CHECK:STDOUT: %UseSelf.facet.af5: %UseSelf.type = facet_value %D, %impl_witness.02b [template] +// CHECK:STDOUT: %impl_witness.320: = impl_witness (@impl.2.%F.decl) [template] +// CHECK:STDOUT: %F.type.0aa: type = fn_type @F.3 [template] +// CHECK:STDOUT: %F.f71: %F.type.0aa = struct_value () [template] +// CHECK:STDOUT: %UseSelf.facet.848: %UseSelf.type = facet_value %D, %impl_witness.320 [template] // CHECK:STDOUT: %D.val: %D = struct_value () [template] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [template] -// CHECK:STDOUT: %Self.36c: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.966: type = facet_access_type %Self.36c [symbolic] -// CHECK:STDOUT: %ptr.af7: type = ptr_type %Self.as_type.966 [symbolic] -// CHECK:STDOUT: %struct_type.x.y.0dc: type = struct_type {.x: %Self.as_type.966, .y: %empty_tuple.type} [symbolic] +// CHECK:STDOUT: %Self.2ff: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.e1e: type = facet_access_type %Self.2ff [symbolic] +// CHECK:STDOUT: %ptr.e87: type = ptr_type %Self.as_type.e1e [symbolic] +// CHECK:STDOUT: %struct_type.x.y.270: type = struct_type {.x: %Self.as_type.e1e, .y: %empty_tuple.type} [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.7e5: type = tuple_type (%ptr.af7, %struct_type.x.y.0dc) [symbolic] -// CHECK:STDOUT: %F.type.f33: type = fn_type @F.4 [template] -// CHECK:STDOUT: %F.04f: %F.type.f33 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.c02: type = assoc_entity_type %SelfNested.type, %F.type.f33 [template] -// CHECK:STDOUT: %assoc0.982: %F.assoc_type.c02 = assoc_entity element0, @SelfNested.%F.decl [template] -// CHECK:STDOUT: %impl_witness.d90: = impl_witness (@impl.3.%F.decl) [template] +// CHECK:STDOUT: %tuple.type.46b: type = tuple_type (%ptr.e87, %struct_type.x.y.270) [symbolic] +// CHECK:STDOUT: %F.type.6ed: type = fn_type @F.4 [template] +// CHECK:STDOUT: %F.998: %F.type.6ed = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.4b1: type = assoc_entity_type %SelfNested.type, %F.type.6ed [template] +// CHECK:STDOUT: %assoc0.7e7: %F.assoc_type.4b1 = assoc_entity element0, @SelfNested.%F.decl [template] +// CHECK:STDOUT: %impl_witness.f4e: = impl_witness (@impl.3.%F.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] // CHECK:STDOUT: %struct_type.x.y.2f0: type = struct_type {.x: %C, .y: %empty_tuple.type} [template] // CHECK:STDOUT: %tuple.type.a17: type = tuple_type (%ptr.019, %struct_type.x.y.2f0) [template] -// CHECK:STDOUT: %F.type.9b5: type = fn_type @F.5 [template] -// CHECK:STDOUT: %F.c45: %F.type.9b5 = struct_value () [template] -// CHECK:STDOUT: %SelfNested.facet.d94: %SelfNested.type = facet_value %C, %impl_witness.d90 [template] -// CHECK:STDOUT: %impl_witness.55c: = impl_witness (@impl.4.%F.decl) [template] +// CHECK:STDOUT: %F.type.ef0: type = fn_type @F.5 [template] +// CHECK:STDOUT: %F.9a9: %F.type.ef0 = struct_value () [template] +// CHECK:STDOUT: %SelfNested.facet.f66: %SelfNested.type = facet_value %C, %impl_witness.f4e [template] +// CHECK:STDOUT: %impl_witness.4b5: = impl_witness (@impl.4.%F.decl) [template] // CHECK:STDOUT: %ptr.19c: type = ptr_type %D [template] // CHECK:STDOUT: %struct_type.x.y.527: type = struct_type {.x: %D, .y: %empty_tuple.type} [template] // CHECK:STDOUT: %tuple.type.a5f: type = tuple_type (%ptr.19c, %struct_type.x.y.527) [template] -// CHECK:STDOUT: %F.type.3cb: type = fn_type @F.6 [template] -// CHECK:STDOUT: %F.3b6: %F.type.3cb = struct_value () [template] -// CHECK:STDOUT: %SelfNested.facet.2f0: %SelfNested.type = facet_value %D, %impl_witness.55c [template] +// CHECK:STDOUT: %F.type.a9d: type = fn_type @F.6 [template] +// CHECK:STDOUT: %F.c41: %F.type.a9d = struct_value () [template] +// CHECK:STDOUT: %SelfNested.facet.2c0: %SelfNested.type = facet_value %D, %impl_witness.4b5 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -102,56 +102,56 @@ impl D as SelfNested { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %UseSelf.ref: type = name_ref UseSelf, file.%UseSelf.decl [template = constants.%UseSelf.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.1.%F.decl) [template = constants.%impl_witness.c6f] +// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.1.%F.decl) [template = constants.%impl_witness.9ff] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] // CHECK:STDOUT: %UseSelf.ref: type = name_ref UseSelf, file.%UseSelf.decl [template = constants.%UseSelf.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc23: = impl_witness (@impl.2.%F.decl) [template = constants.%impl_witness.02b] +// CHECK:STDOUT: %impl_witness.loc23: = impl_witness (@impl.2.%F.decl) [template = constants.%impl_witness.320] // CHECK:STDOUT: %SelfNested.decl: type = interface_decl @SelfNested [template = constants.%SelfNested.type] {} {} // CHECK:STDOUT: impl_decl @impl.3 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %SelfNested.ref: type = name_ref SelfNested, file.%SelfNested.decl [template = constants.%SelfNested.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc31: = impl_witness (@impl.3.%F.decl) [template = constants.%impl_witness.d90] +// CHECK:STDOUT: %impl_witness.loc31: = impl_witness (@impl.3.%F.decl) [template = constants.%impl_witness.f4e] // CHECK:STDOUT: impl_decl @impl.4 [template] {} { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] // CHECK:STDOUT: %SelfNested.ref: type = name_ref SelfNested, file.%SelfNested.decl [template = constants.%SelfNested.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc35: = impl_witness (@impl.4.%F.decl) [template = constants.%impl_witness.55c] +// CHECK:STDOUT: %impl_witness.loc35: = impl_witness (@impl.4.%F.decl) [template = constants.%impl_witness.4b5] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @UseSelf { -// CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.aee] -// CHECK:STDOUT: %F.decl: %F.type.a69 = fn_decl @F.1 [template = constants.%F.e5a] { -// CHECK:STDOUT: %self.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = value_param_pattern %self.patt, runtime_param0 -// CHECK:STDOUT: %x.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = value_param_pattern %x.patt, runtime_param1 -// CHECK:STDOUT: %return.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = out_param_pattern %return.patt, runtime_param2 +// CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.085] +// CHECK:STDOUT: %F.decl: %F.type.86a = fn_decl @F.1 [template = constants.%F.408] { +// CHECK:STDOUT: %self.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %x.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = value_param_pattern %x.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = out_param_pattern %return.patt, runtime_param2 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref.loc12_32: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.aee)] -// CHECK:STDOUT: %Self.as_type.loc12_32: type = facet_access_type %Self.ref.loc12_32 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] -// CHECK:STDOUT: %.loc12_32: type = converted %Self.ref.loc12_32, %Self.as_type.loc12_32 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] -// CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = value_param runtime_param0 -// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] { -// CHECK:STDOUT: %Self.ref.loc12_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.aee)] -// CHECK:STDOUT: %Self.as_type.loc12_14.2: type = facet_access_type %Self.ref.loc12_14 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] -// CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref.loc12_14, %Self.as_type.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] +// CHECK:STDOUT: %Self.ref.loc12_32: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.085)] +// CHECK:STDOUT: %Self.as_type.loc12_32: type = facet_access_type %Self.ref.loc12_32 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %.loc12_32: type = converted %Self.ref.loc12_32, %Self.as_type.loc12_32 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = value_param runtime_param0 +// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] { +// CHECK:STDOUT: %Self.ref.loc12_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.085)] +// CHECK:STDOUT: %Self.as_type.loc12_14.2: type = facet_access_type %Self.ref.loc12_14 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref.loc12_14, %Self.as_type.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = bind_name self, %self.param -// CHECK:STDOUT: %x.param: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = value_param runtime_param1 -// CHECK:STDOUT: %.loc12_23.1: type = splice_block %.loc12_23.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] { -// CHECK:STDOUT: %Self.ref.loc12_23: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.aee)] -// CHECK:STDOUT: %Self.as_type.loc12_23: type = facet_access_type %Self.ref.loc12_23 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] -// CHECK:STDOUT: %.loc12_23.2: type = converted %Self.ref.loc12_23, %Self.as_type.loc12_23 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] +// CHECK:STDOUT: %self: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = bind_name self, %self.param +// CHECK:STDOUT: %x.param: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = value_param runtime_param1 +// CHECK:STDOUT: %.loc12_23.1: type = splice_block %.loc12_23.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] { +// CHECK:STDOUT: %Self.ref.loc12_23: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.085)] +// CHECK:STDOUT: %Self.as_type.loc12_23: type = facet_access_type %Self.ref.loc12_23 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %.loc12_23.2: type = converted %Self.ref.loc12_23, %Self.as_type.loc12_23 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = out_param runtime_param2 -// CHECK:STDOUT: %return: ref @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2) = return_slot %return.param +// CHECK:STDOUT: %x: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = out_param runtime_param2 +// CHECK:STDOUT: %return: ref @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %F.assoc_type.c96 = assoc_entity element0, %F.decl [template = constants.%assoc0.8e9] +// CHECK:STDOUT: %assoc0: %F.assoc_type.59c = assoc_entity element0, %F.decl [template = constants.%assoc0.86d] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -160,29 +160,29 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @SelfNested { -// CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.36c] -// CHECK:STDOUT: %F.decl: %F.type.f33 = fn_decl @F.4 [template = constants.%F.04f] { -// CHECK:STDOUT: %x.patt: @F.4.%tuple.type (%tuple.type.7e5) = binding_pattern x -// CHECK:STDOUT: %x.param_patt: @F.4.%tuple.type (%tuple.type.7e5) = value_param_pattern %x.patt, runtime_param0 +// CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.2ff] +// CHECK:STDOUT: %F.decl: %F.type.6ed = fn_decl @F.4 [template = constants.%F.998] { +// CHECK:STDOUT: %x.patt: @F.4.%tuple.type (%tuple.type.46b) = binding_pattern x +// CHECK:STDOUT: %x.param_patt: @F.4.%tuple.type (%tuple.type.46b) = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: @F.4.%tuple.type (%tuple.type.7e5) = value_param runtime_param0 -// CHECK:STDOUT: %.loc28_37.1: type = splice_block %.loc28_37.3 [symbolic = %tuple.type (constants.%tuple.type.7e5)] { -// CHECK:STDOUT: %Self.ref.loc28_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.36c)] -// CHECK:STDOUT: %Self.as_type.loc28_16.2: type = facet_access_type %Self.ref.loc28_12 [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.966)] -// CHECK:STDOUT: %.loc28_16: type = converted %Self.ref.loc28_12, %Self.as_type.loc28_16.2 [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.966)] -// CHECK:STDOUT: %ptr.loc28_16.2: type = ptr_type %Self.as_type.966 [symbolic = %ptr.loc28_16.1 (constants.%ptr.af7)] -// CHECK:STDOUT: %Self.ref.loc28_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.36c)] -// CHECK:STDOUT: %Self.as_type.loc28_24: type = facet_access_type %Self.ref.loc28_24 [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.966)] -// CHECK:STDOUT: %.loc28_24: type = converted %Self.ref.loc28_24, %Self.as_type.loc28_24 [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.966)] +// CHECK:STDOUT: %x.param: @F.4.%tuple.type (%tuple.type.46b) = value_param runtime_param0 +// CHECK:STDOUT: %.loc28_37.1: type = splice_block %.loc28_37.3 [symbolic = %tuple.type (constants.%tuple.type.46b)] { +// CHECK:STDOUT: %Self.ref.loc28_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] +// CHECK:STDOUT: %Self.as_type.loc28_16.2: type = facet_access_type %Self.ref.loc28_12 [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %.loc28_16: type = converted %Self.ref.loc28_12, %Self.as_type.loc28_16.2 [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %ptr.loc28_16.2: type = ptr_type %Self.as_type.e1e [symbolic = %ptr.loc28_16.1 (constants.%ptr.e87)] +// CHECK:STDOUT: %Self.ref.loc28_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] +// CHECK:STDOUT: %Self.as_type.loc28_24: type = facet_access_type %Self.ref.loc28_24 [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %.loc28_24: type = converted %Self.ref.loc28_24, %Self.as_type.loc28_24 [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.e1e)] // CHECK:STDOUT: %.loc28_35.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc28_35.2: type = converted %.loc28_35.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %struct_type.x.y.loc28_36.2: type = struct_type {.x: %Self.as_type.966, .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc28_36.1 (constants.%struct_type.x.y.0dc)] +// CHECK:STDOUT: %struct_type.x.y.loc28_36.2: type = struct_type {.x: %Self.as_type.e1e, .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc28_36.1 (constants.%struct_type.x.y.270)] // CHECK:STDOUT: %.loc28_37.2: %tuple.type.24b = tuple_literal (%ptr.loc28_16.2, %struct_type.x.y.loc28_36.2) -// CHECK:STDOUT: %.loc28_37.3: type = converted %.loc28_37.2, constants.%tuple.type.7e5 [symbolic = %tuple.type (constants.%tuple.type.7e5)] +// CHECK:STDOUT: %.loc28_37.3: type = converted %.loc28_37.2, constants.%tuple.type.46b [symbolic = %tuple.type (constants.%tuple.type.46b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.4.%tuple.type (%tuple.type.7e5) = bind_name x, %x.param +// CHECK:STDOUT: %x: @F.4.%tuple.type (%tuple.type.46b) = bind_name x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %F.assoc_type.c02 = assoc_entity element0, %F.decl [template = constants.%assoc0.982] +// CHECK:STDOUT: %assoc0: %F.assoc_type.4b1 = assoc_entity element0, %F.decl [template = constants.%assoc0.7e7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -191,7 +191,7 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %UseSelf.ref { -// CHECK:STDOUT: %F.decl: %F.type.261 = fn_decl @F.2 [template = constants.%F.63a] { +// CHECK:STDOUT: %F.decl: %F.type.fc6 = fn_decl @F.2 [template = constants.%F.5e2] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %x.patt: %C = binding_pattern x @@ -216,7 +216,7 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %D.ref as %UseSelf.ref { -// CHECK:STDOUT: %F.decl: %F.type.5ab = fn_decl @F.3 [template = constants.%F.d6a] { +// CHECK:STDOUT: %F.decl: %F.type.0aa = fn_decl @F.3 [template = constants.%F.f71] { // CHECK:STDOUT: %self.patt: %D = binding_pattern self // CHECK:STDOUT: %self.param_patt: %D = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %x.patt: %D = binding_pattern x @@ -241,7 +241,7 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.3: %C.ref as %SelfNested.ref { -// CHECK:STDOUT: %F.decl: %F.type.9b5 = fn_decl @F.5 [template = constants.%F.c45] { +// CHECK:STDOUT: %F.decl: %F.type.ef0 = fn_decl @F.5 [template = constants.%F.9a9] { // CHECK:STDOUT: %x.patt: %tuple.type.a17 = binding_pattern x // CHECK:STDOUT: %x.param_patt: %tuple.type.a17 = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { @@ -265,7 +265,7 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.4: %D.ref as %SelfNested.ref { -// CHECK:STDOUT: %F.decl: %F.type.3cb = fn_decl @F.6 [template = constants.%F.3b6] { +// CHECK:STDOUT: %F.decl: %F.type.a9d = fn_decl @F.6 [template = constants.%F.c41] { // CHECK:STDOUT: %x.patt: %tuple.type.a5f = binding_pattern x // CHECK:STDOUT: %x.param_patt: %tuple.type.a5f = value_param_pattern %x.patt, runtime_param0 // CHECK:STDOUT: } { @@ -305,10 +305,10 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@UseSelf.%Self: %UseSelf.type) { -// CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.aee)] -// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.3e2)] +// CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.085)] +// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type.599)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2)](%x.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2)) -> @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.3e2); +// CHECK:STDOUT: fn[%self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599)](%x.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599)) -> @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.599); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.2[%self.param_patt: %C](%x.param_patt: %C) -> %return.param_patt: %C { @@ -328,52 +328,52 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.4(@SelfNested.%Self: %SelfNested.type) { -// CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.36c)] -// CHECK:STDOUT: %Self.as_type.loc28_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.966)] -// CHECK:STDOUT: %ptr.loc28_16.1: type = ptr_type @F.4.%Self.as_type.loc28_16.1 (%Self.as_type.966) [symbolic = %ptr.loc28_16.1 (constants.%ptr.af7)] -// CHECK:STDOUT: %struct_type.x.y.loc28_36.1: type = struct_type {.x: @F.4.%Self.as_type.loc28_16.1 (%Self.as_type.966), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc28_36.1 (constants.%struct_type.x.y.0dc)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.4.%ptr.loc28_16.1 (%ptr.af7), @F.4.%struct_type.x.y.loc28_36.1 (%struct_type.x.y.0dc)) [symbolic = %tuple.type (constants.%tuple.type.7e5)] +// CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2ff)] +// CHECK:STDOUT: %Self.as_type.loc28_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc28_16.1 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %ptr.loc28_16.1: type = ptr_type @F.4.%Self.as_type.loc28_16.1 (%Self.as_type.e1e) [symbolic = %ptr.loc28_16.1 (constants.%ptr.e87)] +// CHECK:STDOUT: %struct_type.x.y.loc28_36.1: type = struct_type {.x: @F.4.%Self.as_type.loc28_16.1 (%Self.as_type.e1e), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc28_36.1 (constants.%struct_type.x.y.270)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (@F.4.%ptr.loc28_16.1 (%ptr.e87), @F.4.%struct_type.x.y.loc28_36.1 (%struct_type.x.y.270)) [symbolic = %tuple.type (constants.%tuple.type.46b)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param_patt: @F.4.%tuple.type (%tuple.type.7e5)); +// CHECK:STDOUT: fn(%x.param_patt: @F.4.%tuple.type (%tuple.type.46b)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.5(%x.param_patt: %tuple.type.a17); // CHECK:STDOUT: // CHECK:STDOUT: fn @F.6(%x.param_patt: %tuple.type.a5f); // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.aee) { -// CHECK:STDOUT: %Self => constants.%Self.aee -// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type.3e2 +// CHECK:STDOUT: specific @F.1(constants.%Self.085) { +// CHECK:STDOUT: %Self => constants.%Self.085 +// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type.599 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%UseSelf.facet.c5b) { -// CHECK:STDOUT: %Self => constants.%UseSelf.facet.c5b +// CHECK:STDOUT: specific @F.1(constants.%UseSelf.facet.e62) { +// CHECK:STDOUT: %Self => constants.%UseSelf.facet.e62 // CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%UseSelf.facet.af5) { -// CHECK:STDOUT: %Self => constants.%UseSelf.facet.af5 +// CHECK:STDOUT: specific @F.1(constants.%UseSelf.facet.848) { +// CHECK:STDOUT: %Self => constants.%UseSelf.facet.848 // CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.4(constants.%Self.36c) { -// CHECK:STDOUT: %Self => constants.%Self.36c -// CHECK:STDOUT: %Self.as_type.loc28_16.1 => constants.%Self.as_type.966 -// CHECK:STDOUT: %ptr.loc28_16.1 => constants.%ptr.af7 -// CHECK:STDOUT: %struct_type.x.y.loc28_36.1 => constants.%struct_type.x.y.0dc -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.7e5 +// CHECK:STDOUT: specific @F.4(constants.%Self.2ff) { +// CHECK:STDOUT: %Self => constants.%Self.2ff +// CHECK:STDOUT: %Self.as_type.loc28_16.1 => constants.%Self.as_type.e1e +// CHECK:STDOUT: %ptr.loc28_16.1 => constants.%ptr.e87 +// CHECK:STDOUT: %struct_type.x.y.loc28_36.1 => constants.%struct_type.x.y.270 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.46b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.4(constants.%SelfNested.facet.d94) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.d94 +// CHECK:STDOUT: specific @F.4(constants.%SelfNested.facet.f66) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.f66 // CHECK:STDOUT: %Self.as_type.loc28_16.1 => constants.%C // CHECK:STDOUT: %ptr.loc28_16.1 => constants.%ptr.019 // CHECK:STDOUT: %struct_type.x.y.loc28_36.1 => constants.%struct_type.x.y.2f0 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.4(constants.%SelfNested.facet.2f0) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.2f0 +// CHECK:STDOUT: specific @F.4(constants.%SelfNested.facet.2c0) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.2c0 // CHECK:STDOUT: %Self.as_type.loc28_16.1 => constants.%D // CHECK:STDOUT: %ptr.loc28_16.1 => constants.%ptr.19c // CHECK:STDOUT: %struct_type.x.y.loc28_36.1 => constants.%struct_type.x.y.527 diff --git a/toolchain/check/testdata/impl/redeclaration.carbon b/toolchain/check/testdata/impl/redeclaration.carbon index 38f883fd50b8..0481f03a8b47 100644 --- a/toolchain/check/testdata/impl/redeclaration.carbon +++ b/toolchain/check/testdata/impl/redeclaration.carbon @@ -33,7 +33,7 @@ impl i32 as I {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/array_element_access.carbon b/toolchain/check/testdata/index/array_element_access.carbon index 1650c40d89ba..42be8c4608de 100644 --- a/toolchain/check/testdata/index/array_element_access.carbon +++ b/toolchain/check/testdata/index/array_element_access.carbon @@ -24,30 +24,30 @@ var d: i32 = a[b]; // CHECK:STDOUT: %int_24.e3c: Core.IntLiteral = int_value 24 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.c54: = bound_method %int_24.e3c, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.4df: = specific_function %Convert.bound.c54, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_24.6ea: %i32 = int_value 24 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.43d, %int_24.6ea) [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.bound.ef4: = bound_method %int_24.e3c, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.c4e: = specific_function %Convert.bound.ef4, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_24.365: %i32 = int_value 24 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.1e1, %int_24.365) [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -77,42 +77,42 @@ var d: i32 = a[b]; // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %int_24: Core.IntLiteral = int_value 24 [template = constants.%int_24.e3c] // CHECK:STDOUT: %.loc11_26.1: %tuple.type = tuple_literal (%int_12, %int_24) -// CHECK:STDOUT: %impl.elem0.loc11_26.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_26.1: = bound_method %int_12, %impl.elem0.loc11_26.1 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11_26.1: = specific_function %Convert.bound.loc11_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11_26.1: init %i32 = call %Convert.specific_fn.loc11_26.1(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_26.2: init %i32 = converted %int_12, %int.convert_checked.loc11_26.1 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc11_26.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_26.1: = bound_method %int_12, %impl.elem0.loc11_26.1 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11_26.1: = specific_function %Convert.bound.loc11_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11_26.1: init %i32 = call %Convert.specific_fn.loc11_26.1(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_26.2: init %i32 = converted %int_12, %int.convert_checked.loc11_26.1 [template = constants.%int_12.1e1] // CHECK:STDOUT: %int_0.loc11: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc11_26.3: ref %i32 = array_index file.%a.var, %int_0.loc11 -// CHECK:STDOUT: %.loc11_26.4: init %i32 = initialize_from %.loc11_26.2 to %.loc11_26.3 [template = constants.%int_12.43d] -// CHECK:STDOUT: %impl.elem0.loc11_26.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_26.2: = bound_method %int_24, %impl.elem0.loc11_26.2 [template = constants.%Convert.bound.c54] -// CHECK:STDOUT: %Convert.specific_fn.loc11_26.2: = specific_function %Convert.bound.loc11_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.4df] -// CHECK:STDOUT: %int.convert_checked.loc11_26.2: init %i32 = call %Convert.specific_fn.loc11_26.2(%int_24) [template = constants.%int_24.6ea] -// CHECK:STDOUT: %.loc11_26.5: init %i32 = converted %int_24, %int.convert_checked.loc11_26.2 [template = constants.%int_24.6ea] +// CHECK:STDOUT: %.loc11_26.4: init %i32 = initialize_from %.loc11_26.2 to %.loc11_26.3 [template = constants.%int_12.1e1] +// CHECK:STDOUT: %impl.elem0.loc11_26.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_26.2: = bound_method %int_24, %impl.elem0.loc11_26.2 [template = constants.%Convert.bound.ef4] +// CHECK:STDOUT: %Convert.specific_fn.loc11_26.2: = specific_function %Convert.bound.loc11_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c4e] +// CHECK:STDOUT: %int.convert_checked.loc11_26.2: init %i32 = call %Convert.specific_fn.loc11_26.2(%int_24) [template = constants.%int_24.365] +// CHECK:STDOUT: %.loc11_26.5: init %i32 = converted %int_24, %int.convert_checked.loc11_26.2 [template = constants.%int_24.365] // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_26.6: ref %i32 = array_index file.%a.var, %int_1.loc11 -// CHECK:STDOUT: %.loc11_26.7: init %i32 = initialize_from %.loc11_26.5 to %.loc11_26.6 [template = constants.%int_24.6ea] +// CHECK:STDOUT: %.loc11_26.7: init %i32 = initialize_from %.loc11_26.5 to %.loc11_26.6 [template = constants.%int_24.365] // CHECK:STDOUT: %.loc11_26.8: init %array_type = array_init (%.loc11_26.4, %.loc11_26.7) to file.%a.var [template = constants.%array] // CHECK:STDOUT: %.loc11_27: init %array_type = converted %.loc11_26.1, %.loc11_26.8 [template = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc11_27 // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_1.loc12, %impl.elem0.loc12 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_1.loc12) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_1.loc12, %int.convert_checked.loc12 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_1.loc12, %impl.elem0.loc12 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_1.loc12) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_1.loc12, %int.convert_checked.loc12 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign file.%b.var, %.loc12 // CHECK:STDOUT: %a.ref.loc13: ref %array_type = name_ref a, file.%a // CHECK:STDOUT: %int_0.loc13: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_0.loc13, %impl.elem0.loc13 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_0.loc13) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc13_16.1: %i32 = value_of_initializer %int.convert_checked.loc13 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc13_16.2: %i32 = converted %int_0.loc13, %.loc13_16.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_0.loc13, %impl.elem0.loc13 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_0.loc13) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc13_16.1: %i32 = value_of_initializer %int.convert_checked.loc13 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc13_16.2: %i32 = converted %int_0.loc13, %.loc13_16.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc13_17.1: ref %i32 = array_index %a.ref.loc13, %.loc13_16.2 // CHECK:STDOUT: %.loc13_17.2: %i32 = bind_value %.loc13_17.1 // CHECK:STDOUT: assign file.%c.var, %.loc13_17.2 diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index c5342d66f6c1..4a632186a547 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -43,36 +43,36 @@ fn ValueBinding(b: [i32; 3]) { // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] // CHECK:STDOUT: %ValueBinding.type: type = fn_type @ValueBinding [template] // CHECK:STDOUT: %ValueBinding: %ValueBinding.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -135,65 +135,65 @@ fn ValueBinding(b: [i32; 3]) { // CHECK:STDOUT: %int_2.loc14_25: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc14: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc14_29.1: %tuple.type = tuple_literal (%int_1.loc14_22, %int_2.loc14_25, %int_3.loc14) -// CHECK:STDOUT: %impl.elem0.loc14_29.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_29.1: = bound_method %int_1.loc14_22, %impl.elem0.loc14_29.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc14_29.1: = specific_function %Convert.bound.loc14_29.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc14_29.1: init %i32 = call %Convert.specific_fn.loc14_29.1(%int_1.loc14_22) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_29.2: init %i32 = converted %int_1.loc14_22, %int.convert_checked.loc14_29.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc14_29.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_29.1: = bound_method %int_1.loc14_22, %impl.elem0.loc14_29.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc14_29.1: = specific_function %Convert.bound.loc14_29.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc14_29.1: init %i32 = call %Convert.specific_fn.loc14_29.1(%int_1.loc14_22) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_29.2: init %i32 = converted %int_1.loc14_22, %int.convert_checked.loc14_29.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0.loc14: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc14_29.3: ref %i32 = array_index %a.var, %int_0.loc14 -// CHECK:STDOUT: %.loc14_29.4: init %i32 = initialize_from %.loc14_29.2 to %.loc14_29.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc14_29.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_29.2: = bound_method %int_2.loc14_25, %impl.elem0.loc14_29.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc14_29.2: = specific_function %Convert.bound.loc14_29.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc14_29.2: init %i32 = call %Convert.specific_fn.loc14_29.2(%int_2.loc14_25) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_29.5: init %i32 = converted %int_2.loc14_25, %int.convert_checked.loc14_29.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc14_29.4: init %i32 = initialize_from %.loc14_29.2 to %.loc14_29.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc14_29.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_29.2: = bound_method %int_2.loc14_25, %impl.elem0.loc14_29.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc14_29.2: = specific_function %Convert.bound.loc14_29.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc14_29.2: init %i32 = call %Convert.specific_fn.loc14_29.2(%int_2.loc14_25) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_29.5: init %i32 = converted %int_2.loc14_25, %int.convert_checked.loc14_29.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %int_1.loc14_29: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_29.6: ref %i32 = array_index %a.var, %int_1.loc14_29 -// CHECK:STDOUT: %.loc14_29.7: init %i32 = initialize_from %.loc14_29.5 to %.loc14_29.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc14_29.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_29.3: = bound_method %int_3.loc14, %impl.elem0.loc14_29.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc14_29.3: = specific_function %Convert.bound.loc14_29.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc14_29.3: init %i32 = call %Convert.specific_fn.loc14_29.3(%int_3.loc14) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc14_29.8: init %i32 = converted %int_3.loc14, %int.convert_checked.loc14_29.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc14_29.7: init %i32 = initialize_from %.loc14_29.5 to %.loc14_29.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc14_29.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_29.3: = bound_method %int_3.loc14, %impl.elem0.loc14_29.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc14_29.3: = specific_function %Convert.bound.loc14_29.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc14_29.3: init %i32 = call %Convert.specific_fn.loc14_29.3(%int_3.loc14) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc14_29.8: init %i32 = converted %int_3.loc14, %int.convert_checked.loc14_29.3 [template = constants.%int_3.822] // CHECK:STDOUT: %int_2.loc14_29: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc14_29.9: ref %i32 = array_index %a.var, %int_2.loc14_29 -// CHECK:STDOUT: %.loc14_29.10: init %i32 = initialize_from %.loc14_29.8 to %.loc14_29.9 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc14_29.10: init %i32 = initialize_from %.loc14_29.8 to %.loc14_29.9 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc14_29.11: init %array_type = array_init (%.loc14_29.4, %.loc14_29.7, %.loc14_29.10) to %a.var [template = constants.%array] // CHECK:STDOUT: %.loc14_30: init %array_type = converted %.loc14_29.1, %.loc14_29.11 [template = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc14_30 -// CHECK:STDOUT: %pa.var: ref %ptr.dc3 = var pa -// CHECK:STDOUT: %pa: ref %ptr.dc3 = bind_name pa, %pa.var +// CHECK:STDOUT: %pa.var: ref %ptr.235 = var pa +// CHECK:STDOUT: %pa: ref %ptr.235 = bind_name pa, %pa.var // CHECK:STDOUT: %a.ref.loc17: ref %array_type = name_ref a, %a // CHECK:STDOUT: %int_0.loc17: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc17: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc17: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_0.loc17, %impl.elem0.loc17 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_0.loc17) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc17_21.1: %i32 = value_of_initializer %int.convert_checked.loc17 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc17_21.2: %i32 = converted %int_0.loc17, %.loc17_21.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_0.loc17, %impl.elem0.loc17 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_0.loc17) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc17_21.1: %i32 = value_of_initializer %int.convert_checked.loc17 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc17_21.2: %i32 = converted %int_0.loc17, %.loc17_21.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc17_22: ref %i32 = array_index %a.ref.loc17, %.loc17_21.2 -// CHECK:STDOUT: %addr: %ptr.dc3 = addr_of %.loc17_22 +// CHECK:STDOUT: %addr: %ptr.235 = addr_of %.loc17_22 // CHECK:STDOUT: assign %pa.var, %addr // CHECK:STDOUT: %a.ref.loc18: ref %array_type = name_ref a, %a // CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc18: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc18: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc18_5: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18_5: = bound_method %int_0.loc18, %impl.elem0.loc18_5 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc18_5: = specific_function %Convert.bound.loc18_5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc18_5: init %i32 = call %Convert.specific_fn.loc18_5(%int_0.loc18) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc18_5.1: %i32 = value_of_initializer %int.convert_checked.loc18_5 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc18_5.2: %i32 = converted %int_0.loc18, %.loc18_5.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc18_5: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18_5: = bound_method %int_0.loc18, %impl.elem0.loc18_5 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc18_5: = specific_function %Convert.bound.loc18_5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc18_5: init %i32 = call %Convert.specific_fn.loc18_5(%int_0.loc18) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc18_5.1: %i32 = value_of_initializer %int.convert_checked.loc18_5 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc18_5.2: %i32 = converted %int_0.loc18, %.loc18_5.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc18_6: ref %i32 = array_index %a.ref.loc18, %.loc18_5.2 // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc18_8: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18_8: = bound_method %int_4, %impl.elem0.loc18_8 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc18_8: = specific_function %Convert.bound.loc18_8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc18_8: init %i32 = call %Convert.specific_fn.loc18_8(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc18_8: init %i32 = converted %int_4, %int.convert_checked.loc18_8 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc18_8: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18_8: = bound_method %int_4, %impl.elem0.loc18_8 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc18_8: = specific_function %Convert.bound.loc18_8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc18_8: init %i32 = call %Convert.specific_fn.loc18_8(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc18_8: init %i32 = converted %int_4, %int.convert_checked.loc18_8 [template = constants.%int_4.940] // CHECK:STDOUT: assign %.loc18_6, %.loc18_8 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -206,30 +206,30 @@ fn ValueBinding(b: [i32; 3]) { // CHECK:STDOUT: %int_2.loc22_25: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc22: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc22_29.1: %tuple.type = tuple_literal (%int_1.loc22_22, %int_2.loc22_25, %int_3.loc22) -// CHECK:STDOUT: %impl.elem0.loc22_29.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc22_29.1: = bound_method %int_1.loc22_22, %impl.elem0.loc22_29.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc22_29.1: = specific_function %Convert.bound.loc22_29.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc22_29.1: init %i32 = call %Convert.specific_fn.loc22_29.1(%int_1.loc22_22) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc22_29.2: init %i32 = converted %int_1.loc22_22, %int.convert_checked.loc22_29.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc22_29.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc22_29.1: = bound_method %int_1.loc22_22, %impl.elem0.loc22_29.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc22_29.1: = specific_function %Convert.bound.loc22_29.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc22_29.1: init %i32 = call %Convert.specific_fn.loc22_29.1(%int_1.loc22_22) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc22_29.2: init %i32 = converted %int_1.loc22_22, %int.convert_checked.loc22_29.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_0.loc22: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc22_29.3: ref %i32 = array_index %a.var, %int_0.loc22 -// CHECK:STDOUT: %.loc22_29.4: init %i32 = initialize_from %.loc22_29.2 to %.loc22_29.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc22_29.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc22_29.2: = bound_method %int_2.loc22_25, %impl.elem0.loc22_29.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc22_29.2: = specific_function %Convert.bound.loc22_29.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc22_29.2: init %i32 = call %Convert.specific_fn.loc22_29.2(%int_2.loc22_25) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc22_29.5: init %i32 = converted %int_2.loc22_25, %int.convert_checked.loc22_29.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc22_29.4: init %i32 = initialize_from %.loc22_29.2 to %.loc22_29.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc22_29.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc22_29.2: = bound_method %int_2.loc22_25, %impl.elem0.loc22_29.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc22_29.2: = specific_function %Convert.bound.loc22_29.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc22_29.2: init %i32 = call %Convert.specific_fn.loc22_29.2(%int_2.loc22_25) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc22_29.5: init %i32 = converted %int_2.loc22_25, %int.convert_checked.loc22_29.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %int_1.loc22_29: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc22_29.6: ref %i32 = array_index %a.var, %int_1.loc22_29 -// CHECK:STDOUT: %.loc22_29.7: init %i32 = initialize_from %.loc22_29.5 to %.loc22_29.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc22_29.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc22_29.3: = bound_method %int_3.loc22, %impl.elem0.loc22_29.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc22_29.3: = specific_function %Convert.bound.loc22_29.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc22_29.3: init %i32 = call %Convert.specific_fn.loc22_29.3(%int_3.loc22) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc22_29.8: init %i32 = converted %int_3.loc22, %int.convert_checked.loc22_29.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc22_29.7: init %i32 = initialize_from %.loc22_29.5 to %.loc22_29.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc22_29.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc22_29.3: = bound_method %int_3.loc22, %impl.elem0.loc22_29.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc22_29.3: = specific_function %Convert.bound.loc22_29.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc22_29.3: init %i32 = call %Convert.specific_fn.loc22_29.3(%int_3.loc22) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc22_29.8: init %i32 = converted %int_3.loc22, %int.convert_checked.loc22_29.3 [template = constants.%int_3.822] // CHECK:STDOUT: %int_2.loc22_29: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc22_29.9: ref %i32 = array_index %a.var, %int_2.loc22_29 -// CHECK:STDOUT: %.loc22_29.10: init %i32 = initialize_from %.loc22_29.8 to %.loc22_29.9 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc22_29.10: init %i32 = initialize_from %.loc22_29.8 to %.loc22_29.9 [template = constants.%int_3.822] // CHECK:STDOUT: %.loc22_29.11: init %array_type = array_init (%.loc22_29.4, %.loc22_29.7, %.loc22_29.10) to %a.var [template = constants.%array] // CHECK:STDOUT: %.loc22_30: init %array_type = converted %.loc22_29.1, %.loc22_29.11 [template = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc22_30 @@ -237,23 +237,23 @@ fn ValueBinding(b: [i32; 3]) { // CHECK:STDOUT: %int_0.loc26: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc26: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc26: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc26: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc26: = bound_method %int_0.loc26, %impl.elem0.loc26 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc26: = specific_function %Convert.bound.loc26, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc26: init %i32 = call %Convert.specific_fn.loc26(%int_0.loc26) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc26_5.1: %i32 = value_of_initializer %int.convert_checked.loc26 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc26_5.2: %i32 = converted %int_0.loc26, %.loc26_5.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc26: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc26: = bound_method %int_0.loc26, %impl.elem0.loc26 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc26: = specific_function %Convert.bound.loc26, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc26: init %i32 = call %Convert.specific_fn.loc26(%int_0.loc26) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc26_5.1: %i32 = value_of_initializer %int.convert_checked.loc26 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc26_5.2: %i32 = converted %int_0.loc26, %.loc26_5.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc26_6: ref %i32 = array_index %a.ref, %.loc26_5.2 // CHECK:STDOUT: %b.ref: %array_type = name_ref b, %b // CHECK:STDOUT: %int_0.loc27: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc27: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc27: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc27: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc27: = bound_method %int_0.loc27, %impl.elem0.loc27 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc27: = specific_function %Convert.bound.loc27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %Convert.specific_fn.loc27(%int_0.loc27) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc27_5.1: %i32 = value_of_initializer %int.convert_checked.loc27 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc27_5.2: %i32 = converted %int_0.loc27, %.loc27_5.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc27: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc27: = bound_method %int_0.loc27, %impl.elem0.loc27 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc27: = specific_function %Convert.bound.loc27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %Convert.specific_fn.loc27(%int_0.loc27) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc27_5.1: %i32 = value_of_initializer %int.convert_checked.loc27 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc27_5.2: %i32 = converted %int_0.loc27, %.loc27_5.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc27_6.1: ref %array_type = value_as_ref %b.ref // CHECK:STDOUT: %.loc27_6.2: ref %i32 = array_index %.loc27_6.1, %.loc27_5.2 // CHECK:STDOUT: %.loc27_6.3: %i32 = bind_value %.loc27_6.2 @@ -264,12 +264,12 @@ fn ValueBinding(b: [i32; 3]) { // CHECK:STDOUT: %.loc28_5.2: ref %array_type = temporary %.loc28_5.1, %F.call // CHECK:STDOUT: %int_32.loc28: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc28: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc28: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc28: = bound_method %int_0.loc28, %impl.elem0.loc28 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc28: = specific_function %Convert.bound.loc28, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc28: init %i32 = call %Convert.specific_fn.loc28(%int_0.loc28) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc28_7.1: %i32 = value_of_initializer %int.convert_checked.loc28 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc28_7.2: %i32 = converted %int_0.loc28, %.loc28_7.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc28: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc28: = bound_method %int_0.loc28, %impl.elem0.loc28 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc28: = specific_function %Convert.bound.loc28, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc28: init %i32 = call %Convert.specific_fn.loc28(%int_0.loc28) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc28_7.1: %i32 = value_of_initializer %int.convert_checked.loc28 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc28_7.2: %i32 = converted %int_0.loc28, %.loc28_7.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc28_8.1: ref %i32 = array_index %.loc28_5.2, %.loc28_7.2 // CHECK:STDOUT: %.loc28_8.2: %i32 = bind_value %.loc28_8.1 // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/index/fail_array_large_index.carbon b/toolchain/check/testdata/index/fail_array_large_index.carbon index 73e439a2e3a1..18f4324de0e4 100644 --- a/toolchain/check/testdata/index/fail_array_large_index.carbon +++ b/toolchain/check/testdata/index/fail_array_large_index.carbon @@ -31,27 +31,27 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.43d) [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.1e1) [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_2147483647.d89: Core.IntLiteral = int_value 2147483647 [template] -// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2147483647.d89, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.a96: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2147483647.2ba: %i32 = int_value 2147483647 [template] +// CHECK:STDOUT: %Convert.bound.f38: = bound_method %int_2147483647.d89, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.221: = specific_function %Convert.bound.f38, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2147483647.a74: %i32 = int_value 2147483647 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -77,14 +77,14 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_23.1: %tuple.type = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0.loc11: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_12, %impl.elem0.loc11 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_23.2: init %i32 = converted %int_12, %int.convert_checked.loc11 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc11: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_12, %impl.elem0.loc11 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_23.2: init %i32 = converted %int_12, %int.convert_checked.loc11 [template = constants.%int_12.1e1] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc11_23.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc11_23.4: init %i32 = initialize_from %.loc11_23.2 to %.loc11_23.3 [template = constants.%int_12.43d] +// CHECK:STDOUT: %.loc11_23.4: init %i32 = initialize_from %.loc11_23.2 to %.loc11_23.3 [template = constants.%int_12.1e1] // CHECK:STDOUT: %.loc11_23.5: init %array_type = array_init (%.loc11_23.4) to file.%a.var [template = constants.%array] // CHECK:STDOUT: %.loc11_24: init %array_type = converted %.loc11_23.1, %.loc11_23.5 [template = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc11_24 @@ -92,12 +92,12 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc17: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc17: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_1, %impl.elem0.loc17 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc17_16.1: %i32 = value_of_initializer %int.convert_checked.loc17 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc17_16.2: %i32 = converted %int_1, %.loc17_16.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_1, %impl.elem0.loc17 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc17_16.1: %i32 = value_of_initializer %int.convert_checked.loc17 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc17_16.2: %i32 = converted %int_1, %.loc17_16.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc17_17.1: ref %i32 = array_index %a.ref.loc17, %.loc17_16.2 [template = ] // CHECK:STDOUT: %.loc17_17.2: %i32 = bind_value %.loc17_17.1 // CHECK:STDOUT: assign file.%b.var, %.loc17_17.2 @@ -105,12 +105,12 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: %int_2147483647: Core.IntLiteral = int_value 2147483647 [template = constants.%int_2147483647.d89] // CHECK:STDOUT: %int_32.loc22: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc22: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc22: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc22: = bound_method %int_2147483647, %impl.elem0.loc22 [template = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %Convert.specific_fn.loc22: = specific_function %Convert.bound.loc22, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.a96] -// CHECK:STDOUT: %int.convert_checked.loc22: init %i32 = call %Convert.specific_fn.loc22(%int_2147483647) [template = constants.%int_2147483647.2ba] -// CHECK:STDOUT: %.loc22_16.1: %i32 = value_of_initializer %int.convert_checked.loc22 [template = constants.%int_2147483647.2ba] -// CHECK:STDOUT: %.loc22_16.2: %i32 = converted %int_2147483647, %.loc22_16.1 [template = constants.%int_2147483647.2ba] +// CHECK:STDOUT: %impl.elem0.loc22: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc22: = bound_method %int_2147483647, %impl.elem0.loc22 [template = constants.%Convert.bound.f38] +// CHECK:STDOUT: %Convert.specific_fn.loc22: = specific_function %Convert.bound.loc22, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.221] +// CHECK:STDOUT: %int.convert_checked.loc22: init %i32 = call %Convert.specific_fn.loc22(%int_2147483647) [template = constants.%int_2147483647.a74] +// CHECK:STDOUT: %.loc22_16.1: %i32 = value_of_initializer %int.convert_checked.loc22 [template = constants.%int_2147483647.a74] +// CHECK:STDOUT: %.loc22_16.2: %i32 = converted %int_2147483647, %.loc22_16.1 [template = constants.%int_2147483647.a74] // CHECK:STDOUT: %.loc22_27.1: ref %i32 = array_index %a.ref.loc22, %.loc22_16.2 [template = ] // CHECK:STDOUT: %.loc22_27.2: %i32 = bind_value %.loc22_27.1 // CHECK:STDOUT: assign file.%c.var, %.loc22_27.2 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 57e6e847f278..f0723579d0a0 100644 --- a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon +++ b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon @@ -27,21 +27,21 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.43d) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.1e1) [template] // CHECK:STDOUT: %float: f64 = float_literal 2.6000000000000001 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -64,14 +64,14 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_23.1: %tuple.type = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_12, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_23.2: init %i32 = converted %int_12, %int.convert_checked [template = constants.%int_12.43d] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_23.2: init %i32 = converted %int_12, %int.convert_checked [template = constants.%int_12.1e1] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc11_23.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc11_23.4: init %i32 = initialize_from %.loc11_23.2 to %.loc11_23.3 [template = constants.%int_12.43d] +// CHECK:STDOUT: %.loc11_23.4: init %i32 = initialize_from %.loc11_23.2 to %.loc11_23.3 [template = constants.%int_12.1e1] // CHECK:STDOUT: %.loc11_23.5: init %array_type = array_init (%.loc11_23.4) to file.%a.var [template = constants.%array] // CHECK:STDOUT: %.loc11_24: init %array_type = converted %.loc11_23.1, %.loc11_23.5 [template = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc11_24 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 ae21736113f7..64270ca8a645 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 @@ -24,23 +24,23 @@ var b: i32 = a[1]; // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.43d) [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.1e1) [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -63,14 +63,14 @@ var b: i32 = a[1]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_23.1: %tuple.type = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0.loc11: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_12, %impl.elem0.loc11 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_23.2: init %i32 = converted %int_12, %int.convert_checked.loc11 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc11: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_12, %impl.elem0.loc11 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_23.2: init %i32 = converted %int_12, %int.convert_checked.loc11 [template = constants.%int_12.1e1] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc11_23.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc11_23.4: init %i32 = initialize_from %.loc11_23.2 to %.loc11_23.3 [template = constants.%int_12.43d] +// CHECK:STDOUT: %.loc11_23.4: init %i32 = initialize_from %.loc11_23.2 to %.loc11_23.3 [template = constants.%int_12.1e1] // CHECK:STDOUT: %.loc11_23.5: init %array_type = array_init (%.loc11_23.4) to file.%a.var [template = constants.%array] // CHECK:STDOUT: %.loc11_24: init %array_type = converted %.loc11_23.1, %.loc11_23.5 [template = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc11_24 @@ -78,12 +78,12 @@ var b: i32 = a[1]; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_1, %impl.elem0.loc15 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_16.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_16.2: %i32 = converted %int_1, %.loc15_16.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_1, %impl.elem0.loc15 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_16.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_16.2: %i32 = converted %int_1, %.loc15_16.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc15_17.1: ref %i32 = array_index %a.ref, %.loc15_16.2 [template = ] // CHECK:STDOUT: %.loc15_17.2: %i32 = bind_value %.loc15_17.1 // CHECK:STDOUT: assign file.%b.var, %.loc15_17.2 diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index bc235c73b989..047f32ce5406 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -47,25 +47,25 @@ fn G(b: [i32; 3]) { // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -108,45 +108,45 @@ fn G(b: [i32; 3]) { // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%b.param_patt: %array_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %pb.var: ref %ptr.dc3 = var pb -// CHECK:STDOUT: %pb: ref %ptr.dc3 = bind_name pb, %pb.var +// CHECK:STDOUT: %pb.var: ref %ptr.235 = var pb +// CHECK:STDOUT: %pb: ref %ptr.235 = bind_name pb, %pb.var // CHECK:STDOUT: %b.ref.loc19: %array_type = name_ref b, %b // CHECK:STDOUT: %int_0.loc19: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc19: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc19: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc19: = bound_method %int_0.loc19, %impl.elem0.loc19 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc19: = specific_function %Convert.bound.loc19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %Convert.specific_fn.loc19(%int_0.loc19) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc19_21.1: %i32 = value_of_initializer %int.convert_checked.loc19 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc19_21.2: %i32 = converted %int_0.loc19, %.loc19_21.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc19: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc19: = bound_method %int_0.loc19, %impl.elem0.loc19 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc19: = specific_function %Convert.bound.loc19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %Convert.specific_fn.loc19(%int_0.loc19) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc19_21.1: %i32 = value_of_initializer %int.convert_checked.loc19 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc19_21.2: %i32 = converted %int_0.loc19, %.loc19_21.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc19_22.1: ref %array_type = value_as_ref %b.ref.loc19 // CHECK:STDOUT: %.loc19_22.2: ref %i32 = array_index %.loc19_22.1, %.loc19_21.2 // CHECK:STDOUT: %.loc19_22.3: %i32 = bind_value %.loc19_22.2 -// CHECK:STDOUT: %addr.loc19: %ptr.dc3 = addr_of [template = ] +// CHECK:STDOUT: %addr.loc19: %ptr.235 = addr_of [template = ] // CHECK:STDOUT: assign %pb.var, %addr.loc19 // CHECK:STDOUT: %b.ref.loc24: %array_type = name_ref b, %b // CHECK:STDOUT: %int_0.loc24: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc24: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc24: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc24_5: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc24_5: = bound_method %int_0.loc24, %impl.elem0.loc24_5 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc24_5: = specific_function %Convert.bound.loc24_5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc24_5: init %i32 = call %Convert.specific_fn.loc24_5(%int_0.loc24) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc24_5.1: %i32 = value_of_initializer %int.convert_checked.loc24_5 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc24_5.2: %i32 = converted %int_0.loc24, %.loc24_5.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc24_5: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc24_5: = bound_method %int_0.loc24, %impl.elem0.loc24_5 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc24_5: = specific_function %Convert.bound.loc24_5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc24_5: init %i32 = call %Convert.specific_fn.loc24_5(%int_0.loc24) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc24_5.1: %i32 = value_of_initializer %int.convert_checked.loc24_5 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc24_5.2: %i32 = converted %int_0.loc24, %.loc24_5.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc24_6.1: ref %array_type = value_as_ref %b.ref.loc24 // CHECK:STDOUT: %.loc24_6.2: ref %i32 = array_index %.loc24_6.1, %.loc24_5.2 // CHECK:STDOUT: %.loc24_6.3: %i32 = bind_value %.loc24_6.2 // CHECK:STDOUT: %int_4.loc24: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc24_8: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc24_8: = bound_method %int_4.loc24, %impl.elem0.loc24_8 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc24_8: = specific_function %Convert.bound.loc24_8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc24_8: init %i32 = call %Convert.specific_fn.loc24_8(%int_4.loc24) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc24_8: init %i32 = converted %int_4.loc24, %int.convert_checked.loc24_8 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc24_8: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc24_8: = bound_method %int_4.loc24, %impl.elem0.loc24_8 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc24_8: = specific_function %Convert.bound.loc24_8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc24_8: init %i32 = call %Convert.specific_fn.loc24_8(%int_4.loc24) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc24_8: init %i32 = converted %int_4.loc24, %int.convert_checked.loc24_8 [template = constants.%int_4.940] // CHECK:STDOUT: assign %.loc24_6.3, %.loc24_8 -// CHECK:STDOUT: %pf.var: ref %ptr.dc3 = var pf -// CHECK:STDOUT: %pf: ref %ptr.dc3 = bind_name pf, %pf.var +// CHECK:STDOUT: %pf.var: ref %ptr.235 = var pf +// CHECK:STDOUT: %pf: ref %ptr.235 = bind_name pf, %pf.var // CHECK:STDOUT: %F.ref.loc32: %F.type = name_ref F, file.%F.decl [template = constants.%F] // CHECK:STDOUT: %.loc32_21.1: ref %array_type = temporary_storage // CHECK:STDOUT: %F.call.loc32: init %array_type = call %F.ref.loc32() to %.loc32_21.1 @@ -154,15 +154,15 @@ fn G(b: [i32; 3]) { // CHECK:STDOUT: %.loc32_21.2: ref %array_type = temporary %.loc32_21.1, %F.call.loc32 // CHECK:STDOUT: %int_32.loc32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc32: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc32: = bound_method %int_0.loc32, %impl.elem0.loc32 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc32: = specific_function %Convert.bound.loc32, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc32: init %i32 = call %Convert.specific_fn.loc32(%int_0.loc32) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc32_23.1: %i32 = value_of_initializer %int.convert_checked.loc32 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc32_23.2: %i32 = converted %int_0.loc32, %.loc32_23.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc32: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc32: = bound_method %int_0.loc32, %impl.elem0.loc32 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc32: = specific_function %Convert.bound.loc32, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc32: init %i32 = call %Convert.specific_fn.loc32(%int_0.loc32) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc32_23.1: %i32 = value_of_initializer %int.convert_checked.loc32 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc32_23.2: %i32 = converted %int_0.loc32, %.loc32_23.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc32_24.1: ref %i32 = array_index %.loc32_21.2, %.loc32_23.2 // CHECK:STDOUT: %.loc32_24.2: %i32 = bind_value %.loc32_24.1 -// CHECK:STDOUT: %addr.loc32: %ptr.dc3 = addr_of [template = ] +// CHECK:STDOUT: %addr.loc32: %ptr.235 = addr_of [template = ] // CHECK:STDOUT: assign %pf.var, %addr.loc32 // CHECK:STDOUT: %F.ref.loc36: %F.type = name_ref F, file.%F.decl [template = constants.%F] // CHECK:STDOUT: %.loc36_5.1: ref %array_type = temporary_storage @@ -171,20 +171,20 @@ fn G(b: [i32; 3]) { // CHECK:STDOUT: %.loc36_5.2: ref %array_type = temporary %.loc36_5.1, %F.call.loc36 // CHECK:STDOUT: %int_32.loc36: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc36: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc36_7: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc36_7: = bound_method %int_0.loc36, %impl.elem0.loc36_7 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc36_7: = specific_function %Convert.bound.loc36_7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc36_7: init %i32 = call %Convert.specific_fn.loc36_7(%int_0.loc36) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc36_7.1: %i32 = value_of_initializer %int.convert_checked.loc36_7 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc36_7.2: %i32 = converted %int_0.loc36, %.loc36_7.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc36_7: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc36_7: = bound_method %int_0.loc36, %impl.elem0.loc36_7 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc36_7: = specific_function %Convert.bound.loc36_7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc36_7: init %i32 = call %Convert.specific_fn.loc36_7(%int_0.loc36) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc36_7.1: %i32 = value_of_initializer %int.convert_checked.loc36_7 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc36_7.2: %i32 = converted %int_0.loc36, %.loc36_7.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc36_8.1: ref %i32 = array_index %.loc36_5.2, %.loc36_7.2 // CHECK:STDOUT: %.loc36_8.2: %i32 = bind_value %.loc36_8.1 // CHECK:STDOUT: %int_4.loc36: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc36_10: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc36_10: = bound_method %int_4.loc36, %impl.elem0.loc36_10 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc36_10: = specific_function %Convert.bound.loc36_10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc36_10: init %i32 = call %Convert.specific_fn.loc36_10(%int_4.loc36) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc36_10: init %i32 = converted %int_4.loc36, %int.convert_checked.loc36_10 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc36_10: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc36_10: = bound_method %int_4.loc36, %impl.elem0.loc36_10 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc36_10: = specific_function %Convert.bound.loc36_10, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc36_10: init %i32 = call %Convert.specific_fn.loc36_10(%int_4.loc36) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc36_10: init %i32 = converted %int_4.loc36, %int.convert_checked.loc36_10 [template = constants.%int_4.940] // CHECK:STDOUT: assign %.loc36_8.2, %.loc36_10 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/fail_invalid_base.carbon b/toolchain/check/testdata/index/fail_invalid_base.carbon index 7fb1414553d3..32b9b3839b7f 100644 --- a/toolchain/check/testdata/index/fail_invalid_base.carbon +++ b/toolchain/check/testdata/index/fail_invalid_base.carbon @@ -45,13 +45,13 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] // CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1, %int_2) [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .IndexWith = %import_ref.76d +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .IndexWith = %import_ref.671 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -101,7 +101,7 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %i32.loc34_19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc34_28: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc34_28: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b.3de] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b.501] // CHECK:STDOUT: %int_0.loc34: Core.IntLiteral = int_value 0 [template = 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 f82c13586df3..91da6b8a04e5 100644 --- a/toolchain/check/testdata/index/fail_name_not_found.carbon +++ b/toolchain/check/testdata/index/fail_name_not_found.carbon @@ -27,7 +27,7 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/fail_negative_indexing.carbon b/toolchain/check/testdata/index/fail_negative_indexing.carbon index 6fcf4d3f39f1..26754bab164a 100644 --- a/toolchain/check/testdata/index/fail_negative_indexing.carbon +++ b/toolchain/check/testdata/index/fail_negative_indexing.carbon @@ -25,32 +25,32 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.dab: = bound_method %int_42.20e, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.876: = specific_function %Convert.bound.dab, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_42.b93: %i32 = int_value 42 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.132: = bound_method %int_42.20e, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.2f6: = specific_function %Convert.bound.132, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_42.c68: %i32 = int_value 42 [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_42.b93, %int_42.b93) [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_42.c68, %int_42.c68) [template] // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [template] -// CHECK:STDOUT: %Op.type.4d0: type = fn_type @Op.13 [template] -// CHECK:STDOUT: %impl_witness.6d9: = impl_witness (imports.%import_ref.aaf) [template] -// CHECK:STDOUT: %Op.type.9fe: type = fn_type @Op.14 [template] -// CHECK:STDOUT: %Op.b5b: %Op.type.9fe = struct_value () [template] -// CHECK:STDOUT: %Op.bound: = bound_method %int_10, %Op.b5b [template] +// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.13 [template] +// CHECK:STDOUT: %impl_witness.0f6: = impl_witness (imports.%import_ref.c15) [template] +// CHECK:STDOUT: %Op.type.1be: type = fn_type @Op.14 [template] +// CHECK:STDOUT: %Op.bba: %Op.type.1be = struct_value () [template] +// CHECK:STDOUT: %Op.bound: = bound_method %int_10, %Op.bba [template] // CHECK:STDOUT: %int_-10.06d: Core.IntLiteral = int_value -10 [template] -// CHECK:STDOUT: %Convert.bound.337: = bound_method %int_-10.06d, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.8f6: = specific_function %Convert.bound.337, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_-10.b8a: %i32 = int_value -10 [template] +// CHECK:STDOUT: %Convert.bound.1ca: = bound_method %int_-10.06d, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.4be: = specific_function %Convert.bound.1ca, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_-10.c17: %i32 = int_value -10 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Negate = %import_ref.a96 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Negate = %import_ref.6e9 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -74,40 +74,40 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %int_42.loc11_20: Core.IntLiteral = int_value 42 [template = constants.%int_42.20e] // CHECK:STDOUT: %int_42.loc11_24: Core.IntLiteral = int_value 42 [template = constants.%int_42.20e] // CHECK:STDOUT: %.loc11_26.1: %tuple.type = tuple_literal (%int_42.loc11_20, %int_42.loc11_24) -// CHECK:STDOUT: %impl.elem0.loc11_26.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_26.1: = bound_method %int_42.loc11_20, %impl.elem0.loc11_26.1 [template = constants.%Convert.bound.dab] -// CHECK:STDOUT: %Convert.specific_fn.loc11_26.1: = specific_function %Convert.bound.loc11_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.876] -// CHECK:STDOUT: %int.convert_checked.loc11_26.1: init %i32 = call %Convert.specific_fn.loc11_26.1(%int_42.loc11_20) [template = constants.%int_42.b93] -// CHECK:STDOUT: %.loc11_26.2: init %i32 = converted %int_42.loc11_20, %int.convert_checked.loc11_26.1 [template = constants.%int_42.b93] +// CHECK:STDOUT: %impl.elem0.loc11_26.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_26.1: = bound_method %int_42.loc11_20, %impl.elem0.loc11_26.1 [template = constants.%Convert.bound.132] +// CHECK:STDOUT: %Convert.specific_fn.loc11_26.1: = specific_function %Convert.bound.loc11_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2f6] +// CHECK:STDOUT: %int.convert_checked.loc11_26.1: init %i32 = call %Convert.specific_fn.loc11_26.1(%int_42.loc11_20) [template = constants.%int_42.c68] +// CHECK:STDOUT: %.loc11_26.2: init %i32 = converted %int_42.loc11_20, %int.convert_checked.loc11_26.1 [template = constants.%int_42.c68] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc11_26.3: ref %i32 = array_index file.%c.var, %int_0 -// CHECK:STDOUT: %.loc11_26.4: init %i32 = initialize_from %.loc11_26.2 to %.loc11_26.3 [template = constants.%int_42.b93] -// CHECK:STDOUT: %impl.elem0.loc11_26.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_26.2: = bound_method %int_42.loc11_24, %impl.elem0.loc11_26.2 [template = constants.%Convert.bound.dab] -// CHECK:STDOUT: %Convert.specific_fn.loc11_26.2: = specific_function %Convert.bound.loc11_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.876] -// CHECK:STDOUT: %int.convert_checked.loc11_26.2: init %i32 = call %Convert.specific_fn.loc11_26.2(%int_42.loc11_24) [template = constants.%int_42.b93] -// CHECK:STDOUT: %.loc11_26.5: init %i32 = converted %int_42.loc11_24, %int.convert_checked.loc11_26.2 [template = constants.%int_42.b93] +// CHECK:STDOUT: %.loc11_26.4: init %i32 = initialize_from %.loc11_26.2 to %.loc11_26.3 [template = constants.%int_42.c68] +// CHECK:STDOUT: %impl.elem0.loc11_26.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_26.2: = bound_method %int_42.loc11_24, %impl.elem0.loc11_26.2 [template = constants.%Convert.bound.132] +// CHECK:STDOUT: %Convert.specific_fn.loc11_26.2: = specific_function %Convert.bound.loc11_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2f6] +// CHECK:STDOUT: %int.convert_checked.loc11_26.2: init %i32 = call %Convert.specific_fn.loc11_26.2(%int_42.loc11_24) [template = constants.%int_42.c68] +// CHECK:STDOUT: %.loc11_26.5: init %i32 = converted %int_42.loc11_24, %int.convert_checked.loc11_26.2 [template = constants.%int_42.c68] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1] // CHECK:STDOUT: %.loc11_26.6: ref %i32 = array_index file.%c.var, %int_1 -// CHECK:STDOUT: %.loc11_26.7: init %i32 = initialize_from %.loc11_26.5 to %.loc11_26.6 [template = constants.%int_42.b93] +// CHECK:STDOUT: %.loc11_26.7: init %i32 = initialize_from %.loc11_26.5 to %.loc11_26.6 [template = constants.%int_42.c68] // CHECK:STDOUT: %.loc11_26.8: init %array_type = array_init (%.loc11_26.4, %.loc11_26.7) to file.%c.var [template = constants.%array] // CHECK:STDOUT: %.loc11_27: init %array_type = converted %.loc11_26.1, %.loc11_26.8 [template = constants.%array] // CHECK:STDOUT: assign file.%c.var, %.loc11_27 // CHECK:STDOUT: %c.ref: ref %array_type = name_ref c, file.%c // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [template = constants.%int_10] -// CHECK:STDOUT: %impl.elem0.loc15_16.1: %Op.type.4d0 = impl_witness_access constants.%impl_witness.6d9, element0 [template = constants.%Op.b5b] +// CHECK:STDOUT: %impl.elem0.loc15_16.1: %Op.type.e42 = impl_witness_access constants.%impl_witness.0f6, element0 [template = constants.%Op.bba] // CHECK:STDOUT: %Op.bound: = bound_method %int_10, %impl.elem0.loc15_16.1 [template = constants.%Op.bound] // CHECK:STDOUT: %int.snegate: init Core.IntLiteral = call %Op.bound(%int_10) [template = constants.%int_-10.06d] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc15_16.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int.snegate, %impl.elem0.loc15_16.2 [template = constants.%Convert.bound.337] -// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.8f6] +// CHECK:STDOUT: %impl.elem0.loc15_16.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int.snegate, %impl.elem0.loc15_16.2 [template = constants.%Convert.bound.1ca] +// CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.4be] // CHECK:STDOUT: %.loc15_16.1: Core.IntLiteral = value_of_initializer %int.snegate [template = constants.%int_-10.06d] // CHECK:STDOUT: %.loc15_16.2: Core.IntLiteral = converted %int.snegate, %.loc15_16.1 [template = constants.%int_-10.06d] -// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%.loc15_16.2) [template = constants.%int_-10.b8a] -// CHECK:STDOUT: %.loc15_16.3: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_-10.b8a] -// CHECK:STDOUT: %.loc15_16.4: %i32 = converted %int.snegate, %.loc15_16.3 [template = constants.%int_-10.b8a] +// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%.loc15_16.2) [template = constants.%int_-10.c17] +// CHECK:STDOUT: %.loc15_16.3: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_-10.c17] +// CHECK:STDOUT: %.loc15_16.4: %i32 = converted %int.snegate, %.loc15_16.3 [template = constants.%int_-10.c17] // CHECK:STDOUT: %.loc15_19.1: ref %i32 = array_index %c.ref, %.loc15_16.4 [template = ] // CHECK:STDOUT: %.loc15_19.2: %i32 = bind_value %.loc15_19.1 // CHECK:STDOUT: assign file.%d.var, %.loc15_19.2 diff --git a/toolchain/check/testdata/index/fail_non_tuple_access.carbon b/toolchain/check/testdata/index/fail_non_tuple_access.carbon index 47e4699c6106..03f502c7f074 100644 --- a/toolchain/check/testdata/index/fail_non_tuple_access.carbon +++ b/toolchain/check/testdata/index/fail_non_tuple_access.carbon @@ -26,7 +26,7 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IndexWith = %import_ref.76d +// CHECK:STDOUT: .IndexWith = %import_ref.671 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/assoc_const.carbon b/toolchain/check/testdata/interface/assoc_const.carbon index 4a2dc66974d4..36f86c5a8b67 100644 --- a/toolchain/check/testdata/interface/assoc_const.carbon +++ b/toolchain/check/testdata/interface/assoc_const.carbon @@ -22,13 +22,13 @@ interface I { // CHECK:STDOUT: %assoc0: %assoc_type.579 = assoc_entity element0, @I.%T [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %assoc_type.b2b: type = assoc_entity_type %I.type, %i32 [template] -// CHECK:STDOUT: %assoc1: %assoc_type.b2b = assoc_entity element1, @I.%N [template] +// CHECK:STDOUT: %assoc_type.4fb: type = assoc_entity_type %I.type, %i32 [template] +// CHECK:STDOUT: %assoc1: %assoc_type.4fb = assoc_entity element1, @I.%N [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -48,7 +48,7 @@ interface I { // CHECK:STDOUT: %T: type = assoc_const_decl T [template] // CHECK:STDOUT: %assoc0: %assoc_type.579 = assoc_entity element0, %T [template = constants.%assoc0] // CHECK:STDOUT: %N: %i32 = assoc_const_decl N [template] -// CHECK:STDOUT: %assoc1: %assoc_type.b2b = assoc_entity element1, %N [template = constants.%assoc1] +// CHECK:STDOUT: %assoc1: %assoc_type.4fb = assoc_entity element1, %N [template = constants.%assoc1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self 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 7cfb3d9d633e..e060586e23d3 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_bad_default.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_bad_default.carbon @@ -22,7 +22,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [template] // CHECK:STDOUT: %assoc_type: type = assoc_entity_type %I.type, type [template] // CHECK:STDOUT: %assoc0.790: %assoc_type = assoc_entity element0, @I.%T [template] @@ -30,7 +30,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -46,7 +46,7 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [template = constants.%int_42] // CHECK:STDOUT: %.loc18: type = converted %int_42, [template = ] // CHECK:STDOUT: %T: type = assoc_const_decl T [template] 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 d1dcbec98efb..b84ac4975708 100644 --- a/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon +++ b/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon @@ -24,29 +24,29 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %assoc_type.579: type = assoc_entity_type %I.type, type [template] // CHECK:STDOUT: %assoc0.790: %assoc_type.579 = assoc_entity element0, @I.%T [template] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_42.b93: %i32 = int_value 42 [template] -// CHECK:STDOUT: %assoc_type.b2b: type = assoc_entity_type %I.type, %i32 [template] -// CHECK:STDOUT: %assoc1: %assoc_type.b2b = assoc_entity element1, @I.%N [template] +// CHECK:STDOUT: %int_42.c68: %i32 = int_value 42 [template] +// CHECK:STDOUT: %assoc_type.4fb: type = assoc_entity_type %I.type, %i32 [template] +// CHECK:STDOUT: %assoc1: %assoc_type.4fb = assoc_entity element1, @I.%N [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -62,24 +62,24 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: %int_32.loc16_27: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc16_27: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc16_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc16_32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc16_35: %tuple.type.24b = tuple_literal (%i32.loc16_27, %i32.loc16_32) -// CHECK:STDOUT: %.loc16_36: type = converted %.loc16_35, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc16_36: type = converted %.loc16_35, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: %T: type = assoc_const_decl T [template] // CHECK:STDOUT: %assoc0: %assoc_type.579 = assoc_entity element0, %T [template = constants.%assoc0.790] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [template = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_42, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_42) [template = constants.%int_42.b93] -// CHECK:STDOUT: %.loc20_27.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_42.b93] -// CHECK:STDOUT: %.loc20_27.2: %i32 = converted %int_42, %.loc20_27.1 [template = constants.%int_42.b93] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_42) [template = constants.%int_42.c68] +// CHECK:STDOUT: %.loc20_27.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_42.c68] +// CHECK:STDOUT: %.loc20_27.2: %i32 = converted %int_42, %.loc20_27.1 [template = constants.%int_42.c68] // CHECK:STDOUT: %N: %i32 = assoc_const_decl N [template] -// CHECK:STDOUT: %assoc1: %assoc_type.b2b = assoc_entity element1, %N [template = constants.%assoc1] +// CHECK:STDOUT: %assoc1: %assoc_type.4fb = assoc_entity element1, %N [template = constants.%assoc1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self 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 53463074f605..c491ec7ad4db 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 @@ -40,7 +40,7 @@ interface Interface { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } 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 5b39e2c2953f..d9152bd2be7c 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 @@ -78,15 +78,15 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %Interface.type, %G.type [template] // CHECK:STDOUT: %assoc1: %G.assoc_type = assoc_entity element1, @Interface.%G.decl [template] -// CHECK:STDOUT: %.type.067ccc.1: type = fn_type @.1 [template] -// CHECK:STDOUT: %.c3ab6d.1: %.type.067ccc.1 = struct_value () [template] -// CHECK:STDOUT: %.type.067ccc.2: type = fn_type @.2 [template] -// CHECK:STDOUT: %.c3ab6d.2: %.type.067ccc.2 = struct_value () [template] +// CHECK:STDOUT: %.type.136624.1: type = fn_type @.1 [template] +// CHECK:STDOUT: %.563abc.1: %.type.136624.1 = struct_value () [template] +// CHECK:STDOUT: %.type.136624.2: type = fn_type @.2 [template] +// CHECK:STDOUT: %.563abc.2: %.type.136624.2 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -99,8 +99,8 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [template = constants.%Interface.type] {} {} -// CHECK:STDOUT: %.decl.loc23: %.type.067ccc.1 = fn_decl @.1 [template = constants.%.c3ab6d.1] {} {} -// CHECK:STDOUT: %.decl.loc31: %.type.067ccc.2 = fn_decl @.2 [template = constants.%.c3ab6d.2] { +// CHECK:STDOUT: %.decl.loc23: %.type.136624.1 = fn_decl @.1 [template = constants.%.563abc.1] {} {} +// CHECK:STDOUT: %.decl.loc31: %.type.136624.2 = fn_decl @.2 [template = constants.%.563abc.2] { // CHECK:STDOUT: %a.patt: %i32 = binding_pattern a // CHECK:STDOUT: %a.param_patt: %i32 = value_param_pattern %a.patt, runtime_param0 // CHECK:STDOUT: %b.patt: %i32 = binding_pattern b @@ -203,16 +203,16 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [template] // CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %C.541: type = class_type @C [template] -// CHECK:STDOUT: %C.f73: type = class_type @C, @C(%Self) [symbolic] +// CHECK:STDOUT: %C.1ea: type = class_type @C [template] +// CHECK:STDOUT: %C.7e5: type = class_type @C, @C(%Self) [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F, @C(%Self) [symbolic] // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %require_complete.427: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %require_complete.bb9: = require_complete_type %C.f73 [symbolic] +// CHECK:STDOUT: %require_complete.b54: = require_complete_type %U [symbolic] +// CHECK:STDOUT: %require_complete.e44: = require_complete_type %C.7e5 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -230,8 +230,8 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [template = constants.%Interface.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [symbolic = constants.%F] { -// CHECK:STDOUT: %self.patt: %C.f73 = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.f73 = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %self.patt: %C.7e5 = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.7e5 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %U.patt.loc20: type = symbolic_binding_pattern U, 1 [symbolic = constants.%U.patt] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc20, runtime_param [symbolic = constants.%U.patt] // CHECK:STDOUT: %u.patt: %U = binding_pattern u @@ -240,12 +240,12 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %return.param_patt: %U = out_param_pattern %return.patt, runtime_param2 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc20_49: type = name_ref U, %U.loc20 [symbolic = constants.%U] -// CHECK:STDOUT: %self.param.loc20: %C.f73 = value_param runtime_param0 -// CHECK:STDOUT: %.loc20_24.1: type = splice_block %Self.ref.loc20 [symbolic = constants.%C.f73] { -// CHECK:STDOUT: %.loc20_24.2: type = specific_constant constants.%C.f73, @C(constants.%Self) [symbolic = constants.%C.f73] -// CHECK:STDOUT: %Self.ref.loc20: type = name_ref Self, %.loc20_24.2 [symbolic = constants.%C.f73] +// CHECK:STDOUT: %self.param.loc20: %C.7e5 = value_param runtime_param0 +// CHECK:STDOUT: %.loc20_24.1: type = splice_block %Self.ref.loc20 [symbolic = constants.%C.7e5] { +// CHECK:STDOUT: %.loc20_24.2: type = specific_constant constants.%C.7e5, @C(constants.%Self) [symbolic = constants.%C.7e5] +// CHECK:STDOUT: %Self.ref.loc20: type = name_ref Self, %.loc20_24.2 [symbolic = constants.%C.7e5] // CHECK:STDOUT: } -// CHECK:STDOUT: %self.loc20: %C.f73 = bind_name self, %self.param.loc20 +// CHECK:STDOUT: %self.loc20: %C.7e5 = bind_name self, %self.param.loc20 // CHECK:STDOUT: %U.param.loc20: type = value_param runtime_param // CHECK:STDOUT: %U.loc20: type = bind_symbolic_name U, 1, %U.param.loc20 [symbolic = constants.%U] // CHECK:STDOUT: %u.param.loc20: %U = value_param runtime_param1 @@ -258,7 +258,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { // CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C.541] {} {} +// CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C.1ea] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -274,8 +274,8 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @C.%F.type (%F.type) = fn_decl @F [symbolic = @C.%F (constants.%F)] { -// CHECK:STDOUT: %self.patt: %C.f73 = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.f73 = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %self.patt: %C.7e5 = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.7e5 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %U.patt.loc20: type = symbolic_binding_pattern U, 1 [symbolic = constants.%U.patt] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc20, runtime_param [symbolic = constants.%U.patt] // CHECK:STDOUT: %u.patt: %U = binding_pattern u @@ -284,12 +284,12 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %return.param_patt: %U = out_param_pattern %return.patt, runtime_param2 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc14_41: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)] -// CHECK:STDOUT: %self.param.loc14: @F.%C (%C.f73) = value_param runtime_param0 -// CHECK:STDOUT: %.loc14_16.1: type = splice_block %Self.ref.loc14 [symbolic = %C (constants.%C.f73)] { -// CHECK:STDOUT: %.loc14_16.2: type = specific_constant constants.%C.f73, @C(constants.%Self) [symbolic = %C (constants.%C.f73)] -// CHECK:STDOUT: %Self.ref.loc14: type = name_ref Self, %.loc14_16.2 [symbolic = %C (constants.%C.f73)] +// CHECK:STDOUT: %self.param.loc14: @F.%C (%C.7e5) = value_param runtime_param0 +// CHECK:STDOUT: %.loc14_16.1: type = splice_block %Self.ref.loc14 [symbolic = %C (constants.%C.7e5)] { +// CHECK:STDOUT: %.loc14_16.2: type = specific_constant constants.%C.7e5, @C(constants.%Self) [symbolic = %C (constants.%C.7e5)] +// CHECK:STDOUT: %Self.ref.loc14: type = name_ref Self, %.loc14_16.2 [symbolic = %C (constants.%C.7e5)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self.loc14: @F.%C (%C.f73) = bind_name self, %self.param.loc14 +// CHECK:STDOUT: %self.loc14: @F.%C (%C.7e5) = bind_name self, %self.param.loc14 // CHECK:STDOUT: %U.param.loc14: type = value_param runtime_param // CHECK:STDOUT: %U.loc14_22.2: type = bind_symbolic_name U, 1, %U.param.loc14 [symbolic = %U.loc14_22.1 (constants.%U)] // CHECK:STDOUT: %u.param.loc14: @F.%U.loc14_22.1 (%U) = value_param runtime_param1 @@ -301,7 +301,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.f73 +// CHECK:STDOUT: .Self = constants.%C.7e5 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } @@ -309,15 +309,15 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@Interface.%Self: %Interface.type, %U.loc14_22.2: type) { // CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%Self) [symbolic = %C (constants.%C.f73)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%Self) [symbolic = %C (constants.%C.7e5)] // CHECK:STDOUT: %U.loc14_22.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc14_22.1 (constants.%U)] // CHECK:STDOUT: %U.patt.loc14: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc14 (constants.%U.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc20_46: = require_complete_type @F.%U.loc14_22.1 (%U) [symbolic = %require_complete.loc20_46 (constants.%require_complete.427)] -// CHECK:STDOUT: %require_complete.loc20_22: = require_complete_type @F.%C (%C.f73) [symbolic = %require_complete.loc20_22 (constants.%require_complete.bb9)] +// CHECK:STDOUT: %require_complete.loc20_46: = require_complete_type @F.%U.loc14_22.1 (%U) [symbolic = %require_complete.loc20_46 (constants.%require_complete.b54)] +// CHECK:STDOUT: %require_complete.loc20_22: = require_complete_type @F.%C (%C.7e5) [symbolic = %require_complete.loc20_22 (constants.%require_complete.e44)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: %C.f73](%U.param_patt: type, %u.param_patt: %U) -> %U { +// CHECK:STDOUT: fn[%self.param_patt: %C.7e5](%U.param_patt: type, %u.param_patt: %U) -> %U { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: @F.%U.loc14_22.1 (%U) = name_ref u, %u.loc20 // CHECK:STDOUT: return %u.ref @@ -333,7 +333,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self, constants.%U) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %C => constants.%C.f73 +// CHECK:STDOUT: %C => constants.%C.7e5 // CHECK:STDOUT: %U.loc14_22.1 => constants.%U // CHECK:STDOUT: %U.patt.loc14 => constants.%U // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/member_lookup.carbon b/toolchain/check/testdata/interface/member_lookup.carbon index f8a36889dfc9..a239317c1eb4 100644 --- a/toolchain/check/testdata/interface/member_lookup.carbon +++ b/toolchain/check/testdata/interface/member_lookup.carbon @@ -54,36 +54,36 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Interface.type.e32: type = generic_interface_type @Interface [template] // CHECK:STDOUT: %Interface.generic: %Interface.type.e32 = struct_value () [template] -// CHECK:STDOUT: %Interface.type.090: type = facet_type <@Interface, @Interface(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Interface.type.090 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %assoc_type.d1a: type = assoc_entity_type %Interface.type.090, %T [symbolic] -// CHECK:STDOUT: %assoc0.04b: %assoc_type.d1a = assoc_entity element0, @Interface.%X [symbolic] -// CHECK:STDOUT: %I.b5f: %Interface.type.090 = bind_symbolic_name I, 1 [symbolic] -// CHECK:STDOUT: %I.patt.630: %Interface.type.090 = symbolic_binding_pattern I, 1 [symbolic] +// CHECK:STDOUT: %Interface.type.d32: type = facet_type <@Interface, @Interface(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Interface.type.d32 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %assoc_type.376: type = assoc_entity_type %Interface.type.d32, %T [symbolic] +// CHECK:STDOUT: %assoc0.fa3: %assoc_type.376 = assoc_entity element0, @Interface.%X [symbolic] +// CHECK:STDOUT: %I.a5f: %Interface.type.d32 = bind_symbolic_name I, 1 [symbolic] +// CHECK:STDOUT: %I.patt.47c: %Interface.type.d32 = symbolic_binding_pattern I, 1 [symbolic] // CHECK:STDOUT: %AccessGeneric.type: type = fn_type @AccessGeneric [template] // CHECK:STDOUT: %AccessGeneric: %AccessGeneric.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.ac4: = require_complete_type %Interface.type.090 [symbolic] -// CHECK:STDOUT: %I.as_wit.37f: = facet_access_witness %I.b5f [symbolic] -// CHECK:STDOUT: %impl.elem0.754: %T = impl_witness_access %I.as_wit.37f, element0 [symbolic] +// CHECK:STDOUT: %require_complete.6f3: = require_complete_type %Interface.type.d32 [symbolic] +// CHECK:STDOUT: %I.as_wit.9f4: = facet_access_witness %I.a5f [symbolic] +// CHECK:STDOUT: %impl.elem0.68a: %T = impl_witness_access %I.as_wit.9f4, element0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Interface.type.697: type = facet_type <@Interface, @Interface(%i32)> [template] -// CHECK:STDOUT: %I.abe: %Interface.type.697 = bind_symbolic_name I, 0 [symbolic] -// CHECK:STDOUT: %I.patt.94b: %Interface.type.697 = symbolic_binding_pattern I, 0 [symbolic] +// CHECK:STDOUT: %Interface.type.981: type = facet_type <@Interface, @Interface(%i32)> [template] +// CHECK:STDOUT: %I.d08: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic] +// CHECK:STDOUT: %I.patt.1f8: %Interface.type.981 = symbolic_binding_pattern I, 0 [symbolic] // CHECK:STDOUT: %AccessConcrete.type: type = fn_type @AccessConcrete [template] // CHECK:STDOUT: %AccessConcrete: %AccessConcrete.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %assoc_type.4df: type = assoc_entity_type %Interface.type.697, %i32 [template] -// CHECK:STDOUT: %assoc0.b47: %assoc_type.4df = assoc_entity element0, @Interface.%X [template] -// CHECK:STDOUT: %I.as_wit.e95: = facet_access_witness %I.abe [symbolic] -// CHECK:STDOUT: %impl.elem0.c5b: %i32 = impl_witness_access %I.as_wit.e95, element0 [symbolic] +// CHECK:STDOUT: %assoc_type.5f0: type = assoc_entity_type %Interface.type.981, %i32 [template] +// CHECK:STDOUT: %assoc0.ed2: %assoc_type.5f0 = assoc_entity element0, @Interface.%X [template] +// CHECK:STDOUT: %I.as_wit.156: = facet_access_witness %I.d08 [symbolic] +// CHECK:STDOUT: %impl.elem0.b00: %i32 = impl_witness_access %I.as_wit.156, element0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -107,40 +107,40 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %AccessGeneric.decl: %AccessGeneric.type = fn_decl @AccessGeneric [template = constants.%AccessGeneric] { // CHECK:STDOUT: %T.patt.loc8_18.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_18.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc8_18.1, runtime_param [symbolic = %T.patt.loc8_18.2 (constants.%T.patt)] -// CHECK:STDOUT: %I.patt.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090) = symbolic_binding_pattern I, 1 [symbolic = %I.patt.loc8_28.2 (constants.%I.patt.630)] -// CHECK:STDOUT: %I.param_patt: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090) = value_param_pattern %I.patt.loc8_28.1, runtime_param [symbolic = %I.patt.loc8_28.2 (constants.%I.patt.630)] +// CHECK:STDOUT: %I.patt.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) = symbolic_binding_pattern I, 1 [symbolic = %I.patt.loc8_28.2 (constants.%I.patt.47c)] +// CHECK:STDOUT: %I.param_patt: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) = value_param_pattern %I.patt.loc8_28.1, runtime_param [symbolic = %I.patt.loc8_28.2 (constants.%I.patt.47c)] // CHECK:STDOUT: %return.patt: @AccessGeneric.%T.loc8_18.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @AccessGeneric.%T.loc8_18.2 (%T) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc8_49: type = name_ref T, %T.loc8_18.1 [symbolic = %T.loc8_18.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_18.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_18.2 (constants.%T)] -// CHECK:STDOUT: %I.param: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090) = value_param runtime_param -// CHECK:STDOUT: %.loc8: type = splice_block %Interface.type.loc8_43.1 [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.090)] { +// CHECK:STDOUT: %I.param: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) = value_param runtime_param +// CHECK:STDOUT: %.loc8: type = splice_block %Interface.type.loc8_43.1 [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.d32)] { // CHECK:STDOUT: %Interface.ref: %Interface.type.e32 = name_ref Interface, file.%Interface.decl [template = constants.%Interface.generic] // CHECK:STDOUT: %T.ref.loc8_42: type = name_ref T, %T.loc8_18.1 [symbolic = %T.loc8_18.2 (constants.%T)] -// CHECK:STDOUT: %Interface.type.loc8_43.1: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.090)] +// CHECK:STDOUT: %Interface.type.loc8_43.1: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.d32)] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090) = bind_symbolic_name I, 1, %I.param [symbolic = %I.loc8_28.2 (constants.%I.b5f)] +// CHECK:STDOUT: %I.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) = bind_symbolic_name I, 1, %I.param [symbolic = %I.loc8_28.2 (constants.%I.a5f)] // CHECK:STDOUT: %return.param: ref @AccessGeneric.%T.loc8_18.2 (%T) = out_param runtime_param0 // CHECK:STDOUT: %return: ref @AccessGeneric.%T.loc8_18.2 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessConcrete.decl: %AccessConcrete.type = fn_decl @AccessConcrete [template = constants.%AccessConcrete] { -// CHECK:STDOUT: %I.patt.loc12_19.1: %Interface.type.697 = symbolic_binding_pattern I, 0 [symbolic = %I.patt.loc12_19.2 (constants.%I.patt.94b)] -// CHECK:STDOUT: %I.param_patt: %Interface.type.697 = value_param_pattern %I.patt.loc12_19.1, runtime_param [symbolic = %I.patt.loc12_19.2 (constants.%I.patt.94b)] +// CHECK:STDOUT: %I.patt.loc12_19.1: %Interface.type.981 = symbolic_binding_pattern I, 0 [symbolic = %I.patt.loc12_19.2 (constants.%I.patt.1f8)] +// CHECK:STDOUT: %I.param_patt: %Interface.type.981 = value_param_pattern %I.patt.loc12_19.1, runtime_param [symbolic = %I.patt.loc12_19.2 (constants.%I.patt.1f8)] // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc12_42: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_42: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %I.param: %Interface.type.697 = value_param runtime_param -// CHECK:STDOUT: %.loc12: type = splice_block %Interface.type [template = constants.%Interface.type.697] { +// CHECK:STDOUT: %I.param: %Interface.type.981 = value_param runtime_param +// CHECK:STDOUT: %.loc12: type = splice_block %Interface.type [template = constants.%Interface.type.981] { // CHECK:STDOUT: %Interface.ref: %Interface.type.e32 = name_ref Interface, file.%Interface.decl [template = constants.%Interface.generic] // CHECK:STDOUT: %int_32.loc12_33: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_33: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [template = constants.%Interface.type.697] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [template = constants.%Interface.type.981] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc12_19.1: %Interface.type.697 = bind_symbolic_name I, 0, %I.param [symbolic = %I.loc12_19.2 (constants.%I.abe)] +// CHECK:STDOUT: %I.loc12_19.1: %Interface.type.981 = bind_symbolic_name I, 0, %I.param [symbolic = %I.loc12_19.2 (constants.%I.d08)] // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -151,16 +151,16 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_21.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_21.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.2)> [symbolic = %Interface.type (constants.%Interface.type.090)] -// CHECK:STDOUT: %Self.2: %Interface.type.090 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %require_complete: = require_complete_type @Interface.%T.loc4_21.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @Interface.%Interface.type (%Interface.type.090), @Interface.%T.loc4_21.2 (%T) [symbolic = %assoc_type (constants.%assoc_type.d1a)] -// CHECK:STDOUT: %assoc0.loc5_12.2: @Interface.%assoc_type (%assoc_type.d1a) = assoc_entity element0, %X [symbolic = %assoc0.loc5_12.2 (constants.%assoc0.04b)] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.2)> [symbolic = %Interface.type (constants.%Interface.type.d32)] +// CHECK:STDOUT: %Self.2: %Interface.type.d32 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Interface.%T.loc4_21.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @Interface.%Interface.type (%Interface.type.d32), @Interface.%T.loc4_21.2 (%T) [symbolic = %assoc_type (constants.%assoc_type.376)] +// CHECK:STDOUT: %assoc0.loc5_12.2: @Interface.%assoc_type (%assoc_type.376) = assoc_entity element0, %X [symbolic = %assoc0.loc5_12.2 (constants.%assoc0.fa3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Interface.%Interface.type (%Interface.type.090) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Interface.%Interface.type (%Interface.type.d32) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %X: @Interface.%T.loc4_21.2 (%T) = assoc_const_decl X [template] -// CHECK:STDOUT: %assoc0.loc5_12.1: @Interface.%assoc_type (%assoc_type.d1a) = assoc_entity element0, %X [symbolic = %assoc0.loc5_12.2 (constants.%assoc0.04b)] +// CHECK:STDOUT: %assoc0.loc5_12.1: @Interface.%assoc_type (%assoc_type.376) = assoc_entity element0, %X [symbolic = %assoc0.loc5_12.2 (constants.%assoc0.fa3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -169,47 +169,47 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessGeneric(%T.loc8_18.1: type, %I.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090)) { +// CHECK:STDOUT: generic fn @AccessGeneric(%T.loc8_18.1: type, %I.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32)) { // CHECK:STDOUT: %T.loc8_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_18.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_18.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_18.2 (constants.%T.patt)] -// CHECK:STDOUT: %Interface.type.loc8_43.2: type = facet_type <@Interface, @Interface(%T.loc8_18.2)> [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.090)] -// CHECK:STDOUT: %I.loc8_28.2: %Interface.type.090 = bind_symbolic_name I, 1 [symbolic = %I.loc8_28.2 (constants.%I.b5f)] -// CHECK:STDOUT: %I.patt.loc8_28.2: %Interface.type.090 = symbolic_binding_pattern I, 1 [symbolic = %I.patt.loc8_28.2 (constants.%I.patt.630)] +// CHECK:STDOUT: %Interface.type.loc8_43.2: type = facet_type <@Interface, @Interface(%T.loc8_18.2)> [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.d32)] +// CHECK:STDOUT: %I.loc8_28.2: %Interface.type.d32 = bind_symbolic_name I, 1 [symbolic = %I.loc8_28.2 (constants.%I.a5f)] +// CHECK:STDOUT: %I.patt.loc8_28.2: %Interface.type.d32 = symbolic_binding_pattern I, 1 [symbolic = %I.patt.loc8_28.2 (constants.%I.patt.47c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_10: = require_complete_type @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090) [symbolic = %require_complete.loc9_10 (constants.%require_complete.ac4)] -// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090), @AccessGeneric.%T.loc8_18.2 (%T) [symbolic = %assoc_type (constants.%assoc_type.d1a)] -// CHECK:STDOUT: %assoc0: @AccessGeneric.%assoc_type (%assoc_type.d1a) = assoc_entity element0, @Interface.%X [symbolic = %assoc0 (constants.%assoc0.04b)] -// CHECK:STDOUT: %I.as_wit.loc9_11.2: = facet_access_witness %I.loc8_28.2 [symbolic = %I.as_wit.loc9_11.2 (constants.%I.as_wit.37f)] -// CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %I.as_wit.loc9_11.2, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.754)] -// CHECK:STDOUT: %require_complete.loc9_13: = require_complete_type @AccessGeneric.%T.loc8_18.2 (%T) [symbolic = %require_complete.loc9_13 (constants.%require_complete.db1)] +// CHECK:STDOUT: %require_complete.loc9_10: = require_complete_type @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) [symbolic = %require_complete.loc9_10 (constants.%require_complete.6f3)] +// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32), @AccessGeneric.%T.loc8_18.2 (%T) [symbolic = %assoc_type (constants.%assoc_type.376)] +// CHECK:STDOUT: %assoc0: @AccessGeneric.%assoc_type (%assoc_type.376) = assoc_entity element0, @Interface.%X [symbolic = %assoc0 (constants.%assoc0.fa3)] +// CHECK:STDOUT: %I.as_wit.loc9_11.2: = facet_access_witness %I.loc8_28.2 [symbolic = %I.as_wit.loc9_11.2 (constants.%I.as_wit.9f4)] +// CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %I.as_wit.loc9_11.2, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.68a)] +// CHECK:STDOUT: %require_complete.loc9_13: = require_complete_type @AccessGeneric.%T.loc8_18.2 (%T) [symbolic = %require_complete.loc9_13 (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%I.param_patt: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090)) -> @AccessGeneric.%T.loc8_18.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%I.param_patt: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32)) -> @AccessGeneric.%T.loc8_18.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.090) = name_ref I, %I.loc8_28.1 [symbolic = %I.loc8_28.2 (constants.%I.b5f)] -// CHECK:STDOUT: %.loc9: @AccessGeneric.%assoc_type (%assoc_type.d1a) = specific_constant @Interface.%assoc0.loc5_12.1, @Interface(constants.%T) [symbolic = %assoc0 (constants.%assoc0.04b)] -// CHECK:STDOUT: %X.ref: @AccessGeneric.%assoc_type (%assoc_type.d1a) = name_ref X, %.loc9 [symbolic = %assoc0 (constants.%assoc0.04b)] -// CHECK:STDOUT: %I.as_wit.loc9_11.1: = facet_access_witness %I.ref [symbolic = %I.as_wit.loc9_11.2 (constants.%I.as_wit.37f)] -// CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %I.as_wit.loc9_11.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.754)] +// CHECK:STDOUT: %I.ref: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) = name_ref I, %I.loc8_28.1 [symbolic = %I.loc8_28.2 (constants.%I.a5f)] +// CHECK:STDOUT: %.loc9: @AccessGeneric.%assoc_type (%assoc_type.376) = specific_constant @Interface.%assoc0.loc5_12.1, @Interface(constants.%T) [symbolic = %assoc0 (constants.%assoc0.fa3)] +// CHECK:STDOUT: %X.ref: @AccessGeneric.%assoc_type (%assoc_type.376) = name_ref X, %.loc9 [symbolic = %assoc0 (constants.%assoc0.fa3)] +// CHECK:STDOUT: %I.as_wit.loc9_11.1: = facet_access_witness %I.ref [symbolic = %I.as_wit.loc9_11.2 (constants.%I.as_wit.9f4)] +// CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %I.as_wit.loc9_11.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.68a)] // CHECK:STDOUT: return %impl.elem0.loc9_11.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessConcrete(%I.loc12_19.1: %Interface.type.697) { -// CHECK:STDOUT: %I.loc12_19.2: %Interface.type.697 = bind_symbolic_name I, 0 [symbolic = %I.loc12_19.2 (constants.%I.abe)] -// CHECK:STDOUT: %I.patt.loc12_19.2: %Interface.type.697 = symbolic_binding_pattern I, 0 [symbolic = %I.patt.loc12_19.2 (constants.%I.patt.94b)] +// CHECK:STDOUT: generic fn @AccessConcrete(%I.loc12_19.1: %Interface.type.981) { +// CHECK:STDOUT: %I.loc12_19.2: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc12_19.2 (constants.%I.d08)] +// CHECK:STDOUT: %I.patt.loc12_19.2: %Interface.type.981 = symbolic_binding_pattern I, 0 [symbolic = %I.patt.loc12_19.2 (constants.%I.patt.1f8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.as_wit.loc13_11.2: = facet_access_witness %I.loc12_19.2 [symbolic = %I.as_wit.loc13_11.2 (constants.%I.as_wit.e95)] -// CHECK:STDOUT: %impl.elem0.loc13_11.2: %i32 = impl_witness_access %I.as_wit.loc13_11.2, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.c5b)] +// CHECK:STDOUT: %I.as_wit.loc13_11.2: = facet_access_witness %I.loc12_19.2 [symbolic = %I.as_wit.loc13_11.2 (constants.%I.as_wit.156)] +// CHECK:STDOUT: %impl.elem0.loc13_11.2: %i32 = impl_witness_access %I.as_wit.loc13_11.2, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.b00)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%I.param_patt: %Interface.type.697) -> %i32 { +// CHECK:STDOUT: fn(%I.param_patt: %Interface.type.981) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: %Interface.type.697 = name_ref I, %I.loc12_19.1 [symbolic = %I.loc12_19.2 (constants.%I.abe)] -// CHECK:STDOUT: %.loc13: %assoc_type.4df = specific_constant @Interface.%assoc0.loc5_12.1, @Interface(constants.%i32) [template = constants.%assoc0.b47] -// CHECK:STDOUT: %X.ref: %assoc_type.4df = name_ref X, %.loc13 [template = constants.%assoc0.b47] -// CHECK:STDOUT: %I.as_wit.loc13_11.1: = facet_access_witness %I.ref [symbolic = %I.as_wit.loc13_11.2 (constants.%I.as_wit.e95)] -// CHECK:STDOUT: %impl.elem0.loc13_11.1: %i32 = impl_witness_access %I.as_wit.loc13_11.1, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.c5b)] +// CHECK:STDOUT: %I.ref: %Interface.type.981 = name_ref I, %I.loc12_19.1 [symbolic = %I.loc12_19.2 (constants.%I.d08)] +// CHECK:STDOUT: %.loc13: %assoc_type.5f0 = specific_constant @Interface.%assoc0.loc5_12.1, @Interface(constants.%i32) [template = constants.%assoc0.ed2] +// CHECK:STDOUT: %X.ref: %assoc_type.5f0 = name_ref X, %.loc13 [template = constants.%assoc0.ed2] +// CHECK:STDOUT: %I.as_wit.loc13_11.1: = facet_access_witness %I.ref [symbolic = %I.as_wit.loc13_11.2 (constants.%I.as_wit.156)] +// CHECK:STDOUT: %impl.elem0.loc13_11.1: %i32 = impl_witness_access %I.as_wit.loc13_11.1, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.b00)] // CHECK:STDOUT: return %impl.elem0.loc13_11.1 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -219,21 +219,21 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_21.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type => constants.%Interface.type.090 +// CHECK:STDOUT: %Interface.type => constants.%Interface.type.d32 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %assoc_type => constants.%assoc_type.d1a -// CHECK:STDOUT: %assoc0.loc5_12.2 => constants.%assoc0.04b +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %assoc_type => constants.%assoc_type.376 +// CHECK:STDOUT: %assoc0.loc5_12.2 => constants.%assoc0.fa3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(%T.loc4_21.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessGeneric(constants.%T, constants.%I.b5f) { +// CHECK:STDOUT: specific @AccessGeneric(constants.%T, constants.%I.a5f) { // CHECK:STDOUT: %T.loc8_18.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_18.2 => constants.%T -// CHECK:STDOUT: %Interface.type.loc8_43.2 => constants.%Interface.type.090 -// CHECK:STDOUT: %I.loc8_28.2 => constants.%I.b5f -// CHECK:STDOUT: %I.patt.loc8_28.2 => constants.%I.b5f +// CHECK:STDOUT: %Interface.type.loc8_43.2 => constants.%Interface.type.d32 +// CHECK:STDOUT: %I.loc8_28.2 => constants.%I.a5f +// CHECK:STDOUT: %I.patt.loc8_28.2 => constants.%I.a5f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(@AccessGeneric.%T.loc8_18.2) {} @@ -243,16 +243,16 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_21.2 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type => constants.%Interface.type.697 +// CHECK:STDOUT: %Interface.type => constants.%Interface.type.981 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %assoc_type => constants.%assoc_type.4df -// CHECK:STDOUT: %assoc0.loc5_12.2 => constants.%assoc0.b47 +// CHECK:STDOUT: %assoc_type => constants.%assoc_type.5f0 +// CHECK:STDOUT: %assoc0.loc5_12.2 => constants.%assoc0.ed2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessConcrete(constants.%I.abe) { -// CHECK:STDOUT: %I.loc12_19.2 => constants.%I.abe -// CHECK:STDOUT: %I.patt.loc12_19.2 => constants.%I.abe +// CHECK:STDOUT: specific @AccessConcrete(constants.%I.d08) { +// CHECK:STDOUT: %I.loc12_19.2 => constants.%I.d08 +// CHECK:STDOUT: %I.patt.loc12_19.2 => constants.%I.d08 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_no_member.carbon @@ -262,32 +262,32 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Interface.type.e32: type = generic_interface_type @Interface [template] // CHECK:STDOUT: %Interface.generic: %Interface.type.e32 = struct_value () [template] -// CHECK:STDOUT: %Interface.type.090: type = facet_type <@Interface, @Interface(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Interface.type.090 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %assoc_type.d1a: type = assoc_entity_type %Interface.type.090, %T [symbolic] -// CHECK:STDOUT: %assoc0.04b: %assoc_type.d1a = assoc_entity element0, @Interface.%X [symbolic] -// CHECK:STDOUT: %I.b5f: %Interface.type.090 = bind_symbolic_name I, 1 [symbolic] -// CHECK:STDOUT: %I.patt.630: %Interface.type.090 = symbolic_binding_pattern I, 1 [symbolic] +// CHECK:STDOUT: %Interface.type.d32: type = facet_type <@Interface, @Interface(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Interface.type.d32 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %assoc_type.376: type = assoc_entity_type %Interface.type.d32, %T [symbolic] +// CHECK:STDOUT: %assoc0.fa3: %assoc_type.376 = assoc_entity element0, @Interface.%X [symbolic] +// CHECK:STDOUT: %I.a5f: %Interface.type.d32 = bind_symbolic_name I, 1 [symbolic] +// CHECK:STDOUT: %I.patt.47c: %Interface.type.d32 = symbolic_binding_pattern I, 1 [symbolic] // CHECK:STDOUT: %AccessMissingGeneric.type: type = fn_type @AccessMissingGeneric [template] // CHECK:STDOUT: %AccessMissingGeneric: %AccessMissingGeneric.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.ac4: = require_complete_type %Interface.type.090 [symbolic] +// CHECK:STDOUT: %require_complete.6f3: = require_complete_type %Interface.type.d32 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Interface.type.697: type = facet_type <@Interface, @Interface(%i32)> [template] -// CHECK:STDOUT: %I.abe: %Interface.type.697 = bind_symbolic_name I, 0 [symbolic] -// CHECK:STDOUT: %I.patt.94b: %Interface.type.697 = symbolic_binding_pattern I, 0 [symbolic] +// CHECK:STDOUT: %Interface.type.981: type = facet_type <@Interface, @Interface(%i32)> [template] +// CHECK:STDOUT: %I.d08: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic] +// CHECK:STDOUT: %I.patt.1f8: %Interface.type.981 = symbolic_binding_pattern I, 0 [symbolic] // CHECK:STDOUT: %AccessMissingConcrete.type: type = fn_type @AccessMissingConcrete [template] // CHECK:STDOUT: %AccessMissingConcrete: %AccessMissingConcrete.type = struct_value () [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] -// CHECK:STDOUT: %assoc_type.4df: type = assoc_entity_type %Interface.type.697, %i32 [template] -// CHECK:STDOUT: %assoc0.b47: %assoc_type.4df = assoc_entity element0, @Interface.%X [template] +// CHECK:STDOUT: %assoc_type.5f0: type = assoc_entity_type %Interface.type.981, %i32 [template] +// CHECK:STDOUT: %assoc0.ed2: %assoc_type.5f0 = assoc_entity element0, @Interface.%X [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -311,40 +311,40 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %AccessMissingGeneric.decl: %AccessMissingGeneric.type = fn_decl @AccessMissingGeneric [template = constants.%AccessMissingGeneric] { // CHECK:STDOUT: %T.patt.loc8_25.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_25.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc8_25.1, runtime_param [symbolic = %T.patt.loc8_25.2 (constants.%T.patt)] -// CHECK:STDOUT: %I.patt.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.090) = symbolic_binding_pattern I, 1 [symbolic = %I.patt.loc8_35.2 (constants.%I.patt.630)] -// CHECK:STDOUT: %I.param_patt: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.090) = value_param_pattern %I.patt.loc8_35.1, runtime_param [symbolic = %I.patt.loc8_35.2 (constants.%I.patt.630)] +// CHECK:STDOUT: %I.patt.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) = symbolic_binding_pattern I, 1 [symbolic = %I.patt.loc8_35.2 (constants.%I.patt.47c)] +// CHECK:STDOUT: %I.param_patt: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) = value_param_pattern %I.patt.loc8_35.1, runtime_param [symbolic = %I.patt.loc8_35.2 (constants.%I.patt.47c)] // CHECK:STDOUT: %return.patt: @AccessMissingGeneric.%T.loc8_25.2 (%T) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @AccessMissingGeneric.%T.loc8_25.2 (%T) = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc8_56: type = name_ref T, %T.loc8_25.1 [symbolic = %T.loc8_25.2 (constants.%T)] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc8_25.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_25.2 (constants.%T)] -// CHECK:STDOUT: %I.param: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.090) = value_param runtime_param -// CHECK:STDOUT: %.loc8: type = splice_block %Interface.type.loc8_50.1 [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.090)] { +// CHECK:STDOUT: %I.param: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) = value_param runtime_param +// CHECK:STDOUT: %.loc8: type = splice_block %Interface.type.loc8_50.1 [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.d32)] { // CHECK:STDOUT: %Interface.ref: %Interface.type.e32 = name_ref Interface, file.%Interface.decl [template = constants.%Interface.generic] // CHECK:STDOUT: %T.ref.loc8_49: type = name_ref T, %T.loc8_25.1 [symbolic = %T.loc8_25.2 (constants.%T)] -// CHECK:STDOUT: %Interface.type.loc8_50.1: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.090)] +// CHECK:STDOUT: %Interface.type.loc8_50.1: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.d32)] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.090) = bind_symbolic_name I, 1, %I.param [symbolic = %I.loc8_35.2 (constants.%I.b5f)] +// CHECK:STDOUT: %I.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) = bind_symbolic_name I, 1, %I.param [symbolic = %I.loc8_35.2 (constants.%I.a5f)] // CHECK:STDOUT: %return.param: ref @AccessMissingGeneric.%T.loc8_25.2 (%T) = out_param runtime_param0 // CHECK:STDOUT: %return: ref @AccessMissingGeneric.%T.loc8_25.2 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingConcrete.decl: %AccessMissingConcrete.type = fn_decl @AccessMissingConcrete [template = constants.%AccessMissingConcrete] { -// CHECK:STDOUT: %I.patt.loc16_26.1: %Interface.type.697 = symbolic_binding_pattern I, 0 [symbolic = %I.patt.loc16_26.2 (constants.%I.patt.94b)] -// CHECK:STDOUT: %I.param_patt: %Interface.type.697 = value_param_pattern %I.patt.loc16_26.1, runtime_param [symbolic = %I.patt.loc16_26.2 (constants.%I.patt.94b)] +// CHECK:STDOUT: %I.patt.loc16_26.1: %Interface.type.981 = symbolic_binding_pattern I, 0 [symbolic = %I.patt.loc16_26.2 (constants.%I.patt.1f8)] +// CHECK:STDOUT: %I.param_patt: %Interface.type.981 = value_param_pattern %I.patt.loc16_26.1, runtime_param [symbolic = %I.patt.loc16_26.2 (constants.%I.patt.1f8)] // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc16_49: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc16_49: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %I.param: %Interface.type.697 = value_param runtime_param -// CHECK:STDOUT: %.loc16: type = splice_block %Interface.type [template = constants.%Interface.type.697] { +// CHECK:STDOUT: %I.param: %Interface.type.981 = value_param runtime_param +// CHECK:STDOUT: %.loc16: type = splice_block %Interface.type [template = constants.%Interface.type.981] { // CHECK:STDOUT: %Interface.ref: %Interface.type.e32 = name_ref Interface, file.%Interface.decl [template = constants.%Interface.generic] // CHECK:STDOUT: %int_32.loc16_40: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc16_40: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [template = constants.%Interface.type.697] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [template = constants.%Interface.type.981] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc16_26.1: %Interface.type.697 = bind_symbolic_name I, 0, %I.param [symbolic = %I.loc16_26.2 (constants.%I.abe)] +// CHECK:STDOUT: %I.loc16_26.1: %Interface.type.981 = bind_symbolic_name I, 0, %I.param [symbolic = %I.loc16_26.2 (constants.%I.d08)] // CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -355,16 +355,16 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_21.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_21.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.2)> [symbolic = %Interface.type (constants.%Interface.type.090)] -// CHECK:STDOUT: %Self.2: %Interface.type.090 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %require_complete: = require_complete_type @Interface.%T.loc4_21.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @Interface.%Interface.type (%Interface.type.090), @Interface.%T.loc4_21.2 (%T) [symbolic = %assoc_type (constants.%assoc_type.d1a)] -// CHECK:STDOUT: %assoc0.loc5_12.2: @Interface.%assoc_type (%assoc_type.d1a) = assoc_entity element0, %X [symbolic = %assoc0.loc5_12.2 (constants.%assoc0.04b)] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.2)> [symbolic = %Interface.type (constants.%Interface.type.d32)] +// CHECK:STDOUT: %Self.2: %Interface.type.d32 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Interface.%T.loc4_21.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @Interface.%Interface.type (%Interface.type.d32), @Interface.%T.loc4_21.2 (%T) [symbolic = %assoc_type (constants.%assoc_type.376)] +// CHECK:STDOUT: %assoc0.loc5_12.2: @Interface.%assoc_type (%assoc_type.376) = assoc_entity element0, %X [symbolic = %assoc0.loc5_12.2 (constants.%assoc0.fa3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Interface.%Interface.type (%Interface.type.090) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Interface.%Interface.type (%Interface.type.d32) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %X: @Interface.%T.loc4_21.2 (%T) = assoc_const_decl X [template] -// CHECK:STDOUT: %assoc0.loc5_12.1: @Interface.%assoc_type (%assoc_type.d1a) = assoc_entity element0, %X [symbolic = %assoc0.loc5_12.2 (constants.%assoc0.04b)] +// CHECK:STDOUT: %assoc0.loc5_12.1: @Interface.%assoc_type (%assoc_type.376) = assoc_entity element0, %X [symbolic = %assoc0.loc5_12.2 (constants.%assoc0.fa3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -373,33 +373,33 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessMissingGeneric(%T.loc8_25.1: type, %I.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.090)) { +// CHECK:STDOUT: generic fn @AccessMissingGeneric(%T.loc8_25.1: type, %I.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32)) { // CHECK:STDOUT: %T.loc8_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_25.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_25.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_25.2 (constants.%T.patt)] -// CHECK:STDOUT: %Interface.type.loc8_50.2: type = facet_type <@Interface, @Interface(%T.loc8_25.2)> [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.090)] -// CHECK:STDOUT: %I.loc8_35.2: %Interface.type.090 = bind_symbolic_name I, 1 [symbolic = %I.loc8_35.2 (constants.%I.b5f)] -// CHECK:STDOUT: %I.patt.loc8_35.2: %Interface.type.090 = symbolic_binding_pattern I, 1 [symbolic = %I.patt.loc8_35.2 (constants.%I.patt.630)] +// CHECK:STDOUT: %Interface.type.loc8_50.2: type = facet_type <@Interface, @Interface(%T.loc8_25.2)> [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.d32)] +// CHECK:STDOUT: %I.loc8_35.2: %Interface.type.d32 = bind_symbolic_name I, 1 [symbolic = %I.loc8_35.2 (constants.%I.a5f)] +// CHECK:STDOUT: %I.patt.loc8_35.2: %Interface.type.d32 = symbolic_binding_pattern I, 1 [symbolic = %I.patt.loc8_35.2 (constants.%I.patt.47c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.090) [symbolic = %require_complete (constants.%require_complete.ac4)] +// CHECK:STDOUT: %require_complete: = require_complete_type @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) [symbolic = %require_complete (constants.%require_complete.6f3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.param_patt: type](%I.param_patt: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.090)) -> @AccessMissingGeneric.%T.loc8_25.2 (%T) { +// CHECK:STDOUT: fn[%T.param_patt: type](%I.param_patt: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32)) -> @AccessMissingGeneric.%T.loc8_25.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.090) = name_ref I, %I.loc8_35.1 [symbolic = %I.loc8_35.2 (constants.%I.b5f)] +// CHECK:STDOUT: %I.ref: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) = name_ref I, %I.loc8_35.1 [symbolic = %I.loc8_35.2 (constants.%I.a5f)] // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessMissingConcrete(%I.loc16_26.1: %Interface.type.697) { -// CHECK:STDOUT: %I.loc16_26.2: %Interface.type.697 = bind_symbolic_name I, 0 [symbolic = %I.loc16_26.2 (constants.%I.abe)] -// CHECK:STDOUT: %I.patt.loc16_26.2: %Interface.type.697 = symbolic_binding_pattern I, 0 [symbolic = %I.patt.loc16_26.2 (constants.%I.patt.94b)] +// CHECK:STDOUT: generic fn @AccessMissingConcrete(%I.loc16_26.1: %Interface.type.981) { +// CHECK:STDOUT: %I.loc16_26.2: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc16_26.2 (constants.%I.d08)] +// CHECK:STDOUT: %I.patt.loc16_26.2: %Interface.type.981 = symbolic_binding_pattern I, 0 [symbolic = %I.patt.loc16_26.2 (constants.%I.patt.1f8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%I.param_patt: %Interface.type.697) -> %i32 { +// CHECK:STDOUT: fn(%I.param_patt: %Interface.type.981) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: %Interface.type.697 = name_ref I, %I.loc16_26.1 [symbolic = %I.loc16_26.2 (constants.%I.abe)] +// CHECK:STDOUT: %I.ref: %Interface.type.981 = name_ref I, %I.loc16_26.1 [symbolic = %I.loc16_26.2 (constants.%I.d08)] // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -410,21 +410,21 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_21.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type => constants.%Interface.type.090 +// CHECK:STDOUT: %Interface.type => constants.%Interface.type.d32 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %assoc_type => constants.%assoc_type.d1a -// CHECK:STDOUT: %assoc0.loc5_12.2 => constants.%assoc0.04b +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %assoc_type => constants.%assoc_type.376 +// CHECK:STDOUT: %assoc0.loc5_12.2 => constants.%assoc0.fa3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(%T.loc4_21.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessMissingGeneric(constants.%T, constants.%I.b5f) { +// CHECK:STDOUT: specific @AccessMissingGeneric(constants.%T, constants.%I.a5f) { // CHECK:STDOUT: %T.loc8_25.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_25.2 => constants.%T -// CHECK:STDOUT: %Interface.type.loc8_50.2 => constants.%Interface.type.090 -// CHECK:STDOUT: %I.loc8_35.2 => constants.%I.b5f -// CHECK:STDOUT: %I.patt.loc8_35.2 => constants.%I.b5f +// CHECK:STDOUT: %Interface.type.loc8_50.2 => constants.%Interface.type.d32 +// CHECK:STDOUT: %I.loc8_35.2 => constants.%I.a5f +// CHECK:STDOUT: %I.patt.loc8_35.2 => constants.%I.a5f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(@AccessMissingGeneric.%T.loc8_25.2) {} @@ -434,15 +434,15 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.patt.loc4_21.2 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type => constants.%Interface.type.697 +// CHECK:STDOUT: %Interface.type => constants.%Interface.type.981 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %assoc_type => constants.%assoc_type.4df -// CHECK:STDOUT: %assoc0.loc5_12.2 => constants.%assoc0.b47 +// CHECK:STDOUT: %assoc_type => constants.%assoc_type.5f0 +// CHECK:STDOUT: %assoc0.loc5_12.2 => constants.%assoc0.ed2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessMissingConcrete(constants.%I.abe) { -// CHECK:STDOUT: %I.loc16_26.2 => constants.%I.abe -// CHECK:STDOUT: %I.patt.loc16_26.2 => constants.%I.abe +// CHECK:STDOUT: specific @AccessMissingConcrete(constants.%I.d08) { +// CHECK:STDOUT: %I.loc16_26.2 => constants.%I.d08 +// CHECK:STDOUT: %I.patt.loc16_26.2 => constants.%I.d08 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/assoc_const_in_generic.carbon b/toolchain/check/testdata/interface/no_prelude/assoc_const_in_generic.carbon index 361b21641077..74bd9e37076d 100644 --- a/toolchain/check/testdata/interface/no_prelude/assoc_const_in_generic.carbon +++ b/toolchain/check/testdata/interface/no_prelude/assoc_const_in_generic.carbon @@ -31,28 +31,28 @@ fn H() { // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.bc4: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 2 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 2 [symbolic] -// CHECK:STDOUT: %F.type.c41: type = fn_type @F, @I(%T) [symbolic] -// CHECK:STDOUT: %F: %F.type.c41 = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.b9c: type = assoc_entity_type %I.type.bc4, %F.type.c41 [symbolic] -// CHECK:STDOUT: %assoc0.8ee: %F.assoc_type.b9c = assoc_entity element0, @I.%F.decl [symbolic] +// CHECK:STDOUT: %F.type.2ae: type = fn_type @F, @I(%T) [symbolic] +// CHECK:STDOUT: %F: %F.type.2ae = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.003: type = assoc_entity_type %I.type.325, %F.type.2ae [symbolic] +// CHECK:STDOUT: %assoc0.819: %F.assoc_type.003 = assoc_entity element0, @I.%F.decl [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.ffb: = require_complete_type %I.type.bc4 [symbolic] -// CHECK:STDOUT: %require_complete.d07: = require_complete_type %F.assoc_type.b9c [symbolic] +// CHECK:STDOUT: %require_complete.cfe: = require_complete_type %I.type.325 [symbolic] +// CHECK:STDOUT: %require_complete.ba5: = require_complete_type %F.assoc_type.003 [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%empty_struct_type) [template] -// CHECK:STDOUT: %I.type.06d: type = facet_type <@I, @I(%empty_struct_type)> [template] -// CHECK:STDOUT: %complete_type.453: = complete_type_witness %I.type.06d [template] -// CHECK:STDOUT: %F.type.15a: type = fn_type @F, @I(%empty_struct_type) [template] -// CHECK:STDOUT: %F.assoc_type.6b9: type = assoc_entity_type %I.type.06d, %F.type.15a [template] -// CHECK:STDOUT: %assoc0.006: %F.assoc_type.6b9 = assoc_entity element0, @I.%F.decl [template] -// CHECK:STDOUT: %complete_type.66e: = complete_type_witness %F.assoc_type.6b9 [template] +// CHECK:STDOUT: %I.type.885: type = facet_type <@I, @I(%empty_struct_type)> [template] +// CHECK:STDOUT: %complete_type.788: = complete_type_witness %I.type.885 [template] +// CHECK:STDOUT: %F.type.684: type = fn_type @F, @I(%empty_struct_type) [template] +// CHECK:STDOUT: %F.assoc_type.6a8: type = assoc_entity_type %I.type.885, %F.type.684 [template] +// CHECK:STDOUT: %assoc0.d32: %F.assoc_type.6a8 = assoc_entity element0, @I.%F.decl [template] +// CHECK:STDOUT: %complete_type.678: = complete_type_witness %F.assoc_type.6a8 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -83,16 +83,16 @@ fn H() { // CHECK:STDOUT: %T.patt.loc11_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc11_13.2)> [symbolic = %I.type (constants.%I.type.bc4)] -// CHECK:STDOUT: %Self.2: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type.c41)] -// CHECK:STDOUT: %F: @I.%F.type (%F.type.c41) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.bc4), @I.%F.type (%F.type.c41) [symbolic = %F.assoc_type (constants.%F.assoc_type.b9c)] -// CHECK:STDOUT: %assoc0.loc12_22.2: @I.%F.assoc_type (%F.assoc_type.b9c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc12_22.2 (constants.%assoc0.8ee)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc11_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self.2: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type.2ae)] +// CHECK:STDOUT: %F: @I.%F.type (%F.type.2ae) = struct_value () [symbolic = %F (constants.%F)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325), @I.%F.type (%F.type.2ae) [symbolic = %F.assoc_type (constants.%F.assoc_type.003)] +// CHECK:STDOUT: %assoc0.loc12_22.2: @I.%F.assoc_type (%F.assoc_type.003) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc12_22.2 (constants.%assoc0.819)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.bc4) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.c41) = fn_decl @F [symbolic = @I.%F (constants.%F)] { +// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.2ae) = fn_decl @F [symbolic = @I.%F (constants.%F)] { // CHECK:STDOUT: %U.patt.loc12_8.2: type = symbolic_binding_pattern U, 2 [symbolic = %U.patt.loc12_8.1 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc12_8.2, runtime_param [symbolic = %U.patt.loc12_8.1 (constants.%U.patt)] // CHECK:STDOUT: %return.patt: @F.%U.loc12_8.1 (%U) = return_slot_pattern @@ -104,7 +104,7 @@ fn H() { // CHECK:STDOUT: %return.param: ref @F.%U.loc12_8.1 (%U) = out_param runtime_param0 // CHECK:STDOUT: %return: ref @F.%U.loc12_8.1 (%U) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc12_22.1: @I.%F.assoc_type (%F.assoc_type.b9c) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc12_22.2 (constants.%assoc0.8ee)] +// CHECK:STDOUT: %assoc0.loc12_22.1: @I.%F.assoc_type (%F.assoc_type.003) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc12_22.2 (constants.%assoc0.819)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -113,7 +113,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%T.loc11_13.1: type, @I.%Self.1: @I.%I.type (%I.type.bc4), %U.loc12_8.2: type) { +// CHECK:STDOUT: generic fn @F(@I.%T.loc11_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325), %U.loc12_8.2: type) { // CHECK:STDOUT: %U.loc12_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc12_8.1 (constants.%U)] // CHECK:STDOUT: %U.patt.loc12_8.1: type = symbolic_binding_pattern U, 2 [symbolic = %U.patt.loc12_8.1 (constants.%U.patt)] // CHECK:STDOUT: @@ -125,20 +125,20 @@ fn H() { // CHECK:STDOUT: %T.patt.loc15_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc15_6.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type.loc19_6.2: type = facet_type <@I, @I(%T.loc15_6.2)> [symbolic = %I.type.loc19_6.2 (constants.%I.type.bc4)] -// CHECK:STDOUT: %require_complete.loc19_7.1: = require_complete_type @G.%I.type.loc19_6.2 (%I.type.bc4) [symbolic = %require_complete.loc19_7.1 (constants.%require_complete.ffb)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc15_6.2) [symbolic = %F.type (constants.%F.type.c41)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @G.%I.type.loc19_6.2 (%I.type.bc4), @G.%F.type (%F.type.c41) [symbolic = %F.assoc_type (constants.%F.assoc_type.b9c)] -// CHECK:STDOUT: %assoc0: @G.%F.assoc_type (%F.assoc_type.b9c) = assoc_entity element0, @I.%F.decl [symbolic = %assoc0 (constants.%assoc0.8ee)] -// CHECK:STDOUT: %require_complete.loc19_7.2: = require_complete_type @G.%F.assoc_type (%F.assoc_type.b9c) [symbolic = %require_complete.loc19_7.2 (constants.%require_complete.d07)] +// CHECK:STDOUT: %I.type.loc19_6.2: type = facet_type <@I, @I(%T.loc15_6.2)> [symbolic = %I.type.loc19_6.2 (constants.%I.type.325)] +// CHECK:STDOUT: %require_complete.loc19_7.1: = require_complete_type @G.%I.type.loc19_6.2 (%I.type.325) [symbolic = %require_complete.loc19_7.1 (constants.%require_complete.cfe)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc15_6.2) [symbolic = %F.type (constants.%F.type.2ae)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @G.%I.type.loc19_6.2 (%I.type.325), @G.%F.type (%F.type.2ae) [symbolic = %F.assoc_type (constants.%F.assoc_type.003)] +// CHECK:STDOUT: %assoc0: @G.%F.assoc_type (%F.assoc_type.003) = assoc_entity element0, @I.%F.decl [symbolic = %assoc0 (constants.%assoc0.819)] +// CHECK:STDOUT: %require_complete.loc19_7.2: = require_complete_type @G.%F.assoc_type (%F.assoc_type.003) [symbolic = %require_complete.loc19_7.2 (constants.%require_complete.ba5)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [template = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc19_6.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc19_6.2 (constants.%I.type.bc4)] -// CHECK:STDOUT: %.loc19: @G.%F.assoc_type (%F.assoc_type.b9c) = specific_constant @I.%assoc0.loc12_22.1, @I(constants.%T) [symbolic = %assoc0 (constants.%assoc0.8ee)] -// CHECK:STDOUT: %F.ref: @G.%F.assoc_type (%F.assoc_type.b9c) = name_ref F, %.loc19 [symbolic = %assoc0 (constants.%assoc0.8ee)] +// CHECK:STDOUT: %I.type.loc19_6.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc19_6.2 (constants.%I.type.325)] +// CHECK:STDOUT: %.loc19: @G.%F.assoc_type (%F.assoc_type.003) = specific_constant @I.%assoc0.loc12_22.1, @I(constants.%T) [symbolic = %assoc0 (constants.%assoc0.819)] +// CHECK:STDOUT: %F.ref: @G.%F.assoc_type (%F.assoc_type.003) = name_ref F, %.loc19 [symbolic = %assoc0 (constants.%assoc0.819)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -158,12 +158,12 @@ fn H() { // CHECK:STDOUT: %T.patt.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.bc4 +// CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.c41 +// CHECK:STDOUT: %F.type => constants.%F.type.2ae // CHECK:STDOUT: %F => constants.%F -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.b9c -// CHECK:STDOUT: %assoc0.loc12_22.2 => constants.%assoc0.8ee +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.003 +// CHECK:STDOUT: %assoc0.loc12_22.2 => constants.%assoc0.819 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%Self, constants.%U) { @@ -185,12 +185,12 @@ fn H() { // CHECK:STDOUT: %T.patt.loc15_6.2 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type.loc19_6.2 => constants.%I.type.06d -// CHECK:STDOUT: %require_complete.loc19_7.1 => constants.%complete_type.453 -// CHECK:STDOUT: %F.type => constants.%F.type.15a -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.6b9 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.006 -// CHECK:STDOUT: %require_complete.loc19_7.2 => constants.%complete_type.66e +// CHECK:STDOUT: %I.type.loc19_6.2 => constants.%I.type.885 +// CHECK:STDOUT: %require_complete.loc19_7.1 => constants.%complete_type.788 +// CHECK:STDOUT: %F.type => constants.%F.type.684 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.6a8 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d32 +// CHECK:STDOUT: %require_complete.loc19_7.2 => constants.%complete_type.678 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%empty_struct_type) { diff --git a/toolchain/check/testdata/interface/no_prelude/basic.carbon b/toolchain/check/testdata/interface/no_prelude/basic.carbon index 05d19bd8ad8b..a383085faa1f 100644 --- a/toolchain/check/testdata/interface/no_prelude/basic.carbon +++ b/toolchain/check/testdata/interface/no_prelude/basic.carbon @@ -21,9 +21,9 @@ interface ForwardDeclared { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [template] -// CHECK:STDOUT: %Self.e1a: %Empty.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.193: %Empty.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %ForwardDeclared.type: type = facet_type <@ForwardDeclared> [template] -// CHECK:STDOUT: %Self.975: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.efa: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %ForwardDeclared.type, %F.type [template] @@ -41,7 +41,7 @@ interface ForwardDeclared { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty { -// CHECK:STDOUT: %Self: %Empty.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.e1a] +// CHECK:STDOUT: %Self: %Empty.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.193] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -49,7 +49,7 @@ interface ForwardDeclared { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @ForwardDeclared { -// CHECK:STDOUT: %Self: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.975] +// CHECK:STDOUT: %Self: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.efa] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: @@ -64,5 +64,5 @@ interface ForwardDeclared { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self.975) {} +// CHECK:STDOUT: specific @F(constants.%Self.efa) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/default_fn.carbon b/toolchain/check/testdata/interface/no_prelude/default_fn.carbon index d246cfae7594..d2a1e4b4b170 100644 --- a/toolchain/check/testdata/interface/no_prelude/default_fn.carbon +++ b/toolchain/check/testdata/interface/no_prelude/default_fn.carbon @@ -29,14 +29,14 @@ class C { // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.916: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.type.0b5: type = fn_type @F.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %F.61d: %F.type.916 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.916 [template] +// CHECK:STDOUT: %F.20c: %F.type.0b5 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type.0b5 [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.a44: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.b0b: %F.type.a44 = struct_value () [template] +// CHECK:STDOUT: %F.type.4a2: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.eb2: %F.type.4a2 = struct_value () [template] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] @@ -52,7 +52,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type.916 = fn_decl @F.1 [template = constants.%F.61d] {} {} +// CHECK:STDOUT: %F.decl: %F.type.0b5 = fn_decl @F.1 [template = constants.%F.20c] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -62,7 +62,7 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref as %I.ref { -// CHECK:STDOUT: %F.decl: %F.type.a44 = fn_decl @F.2 [template = constants.%F.b0b] {} {} +// CHECK:STDOUT: %F.decl: %F.type.4a2 = fn_decl @F.2 [template = constants.%F.eb2] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -98,7 +98,7 @@ class C { // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c // CHECK:STDOUT: %I.ref: type = name_ref I, @C.%I.decl [template = constants.%I.type] // CHECK:STDOUT: %F.ref: %F.assoc_type = name_ref F, @I.%assoc0 [template = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %F.type.916 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.b0b] +// CHECK:STDOUT: %impl.elem0: %F.type.0b5 = impl_witness_access constants.%impl_witness, element0 [template = constants.%F.eb2] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/no_prelude/export_name.carbon b/toolchain/check/testdata/interface/no_prelude/export_name.carbon index b199820a7acb..54791f55f60a 100644 --- a/toolchain/check/testdata/interface/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/interface/no_prelude/export_name.carbon @@ -67,8 +67,8 @@ fn UseEmpty(i: I) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.9f4: type = import_ref Main//base, I, loaded [template = constants.%I.type] -// CHECK:STDOUT: %import_ref.f8c = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.df2: type = import_ref Main//base, I, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.e5d = import_ref Main//base, inst15 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -76,12 +76,12 @@ fn UseEmpty(i: I) {} // CHECK:STDOUT: .I = %I // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %I: type = export I, imports.%import_ref.9f4 [template = constants.%I.type] +// CHECK:STDOUT: %I: type = export I, imports.%import_ref.df2 [template = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "base.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.f8c +// CHECK:STDOUT: .Self = imports.%import_ref.e5d // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: @@ -94,13 +94,13 @@ fn UseEmpty(i: I) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.042: type = import_ref Main//export, I, loaded [template = constants.%I.type] -// CHECK:STDOUT: %import_ref.aef = import_ref Main//export, inst18 [indirect], unloaded +// CHECK:STDOUT: %import_ref.df1: type = import_ref Main//export, I, loaded [template = constants.%I.type] +// CHECK:STDOUT: %import_ref.6c2 = import_ref Main//export, inst18 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .I = imports.%import_ref.042 +// CHECK:STDOUT: .I = imports.%import_ref.df1 // CHECK:STDOUT: .UseEmpty = %UseEmpty.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -109,14 +109,14 @@ fn UseEmpty(i: I) {} // CHECK:STDOUT: %i.param_patt: %I.type = value_param_pattern %i.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: %I.type = value_param runtime_param0 -// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.042 [template = constants.%I.type] +// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.df1 [template = constants.%I.type] // CHECK:STDOUT: %i: %I.type = bind_name i, %i.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "export.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.aef +// CHECK:STDOUT: .Self = imports.%import_ref.6c2 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_add_member_outside_definition.carbon b/toolchain/check/testdata/interface/no_prelude/fail_add_member_outside_definition.carbon index 0da6526a9c19..1be6348f5b77 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_add_member_outside_definition.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_add_member_outside_definition.carbon @@ -35,18 +35,18 @@ interface Outer { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [template] -// CHECK:STDOUT: %Self.843: %Interface.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.402: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.3e6: %F.type.402 = struct_value () [template] +// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.1ad: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.5d3: %F.type.1ad = struct_value () [template] // CHECK:STDOUT: %Outer.type: type = facet_type <@Outer> [template] -// CHECK:STDOUT: %Self.3ec: %Outer.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Inner.type.9b0: type = facet_type <@Inner> [template] -// CHECK:STDOUT: %Inner.type.fea: type = facet_type <@Inner, @Inner(%Self.3ec)> [symbolic] -// CHECK:STDOUT: %Self.306: %Inner.type.fea = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %.type: type = fn_type @.1, @Inner(%Self.3ec) [symbolic] -// CHECK:STDOUT: %.0d1: %.type = struct_value () [symbolic] -// CHECK:STDOUT: %F.type.5e1: type = fn_type @F.2, @Inner(%Self.3ec) [symbolic] -// CHECK:STDOUT: %F.dca: %F.type.5e1 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.277: %Outer.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Inner.type.428: type = facet_type <@Inner> [template] +// CHECK:STDOUT: %Inner.type.3d8: type = facet_type <@Inner, @Inner(%Self.277)> [symbolic] +// CHECK:STDOUT: %Self.b60: %Inner.type.3d8 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type: type = fn_type @.1, @Inner(%Self.277) [symbolic] +// CHECK:STDOUT: %.f3b: %.type = struct_value () [symbolic] +// CHECK:STDOUT: %F.type.82c: type = fn_type @F.2, @Inner(%Self.277) [symbolic] +// CHECK:STDOUT: %F.978: %F.type.82c = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -55,12 +55,12 @@ interface Outer { // CHECK:STDOUT: .Outer = %Outer.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [template = constants.%Interface.type] {} {} -// CHECK:STDOUT: %F.decl: %F.type.402 = fn_decl @F.1 [template = constants.%F.3e6] {} {} +// CHECK:STDOUT: %F.decl: %F.type.1ad = fn_decl @F.1 [template = constants.%F.5d3] {} {} // CHECK:STDOUT: %Outer.decl: type = interface_decl @Outer [template = constants.%Outer.type] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.843] +// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -69,9 +69,9 @@ interface Outer { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Outer { -// CHECK:STDOUT: %Self: %Outer.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.3ec] -// CHECK:STDOUT: %Inner.decl: type = interface_decl @Inner [template = constants.%Inner.type.9b0] {} {} -// CHECK:STDOUT: %F.decl: %F.type.5e1 = fn_decl @F.2 [symbolic = constants.%F.dca] {} {} +// CHECK:STDOUT: %Self: %Outer.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.277] +// CHECK:STDOUT: %Inner.decl: type = interface_decl @Inner [template = constants.%Inner.type.428] {} {} +// CHECK:STDOUT: %F.decl: %F.type.82c = fn_decl @F.2 [symbolic = constants.%F.978] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -81,15 +81,15 @@ interface Outer { // CHECK:STDOUT: // CHECK:STDOUT: generic interface @Inner(@Outer.%Self: %Outer.type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self.2: %Outer.type = bind_symbolic_name Self, 0 [symbolic = %Self.2 (constants.%Self.3ec)] -// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%Self.2)> [symbolic = %Inner.type (constants.%Inner.type.fea)] -// CHECK:STDOUT: %Self.3: %Inner.type.fea = bind_symbolic_name Self, 1 [symbolic = %Self.3 (constants.%Self.306)] +// CHECK:STDOUT: %Self.2: %Outer.type = bind_symbolic_name Self, 0 [symbolic = %Self.2 (constants.%Self.277)] +// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%Self.2)> [symbolic = %Inner.type (constants.%Inner.type.3d8)] +// CHECK:STDOUT: %Self.3: %Inner.type.3d8 = bind_symbolic_name Self, 1 [symbolic = %Self.3 (constants.%Self.b60)] // CHECK:STDOUT: %.type: type = fn_type @.1, @Inner(%Self.2) [symbolic = %.type (constants.%.type)] -// CHECK:STDOUT: %.loc26: @Inner.%.type (%.type) = struct_value () [symbolic = %.loc26 (constants.%.0d1)] +// CHECK:STDOUT: %.loc26: @Inner.%.type (%.type) = struct_value () [symbolic = %.loc26 (constants.%.f3b)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Inner.%Inner.type (%Inner.type.fea) = bind_symbolic_name Self, 1 [symbolic = %Self.3 (constants.%Self.306)] -// CHECK:STDOUT: %.decl: @Inner.%.type (%.type) = fn_decl @.1 [symbolic = @Inner.%.loc26 (constants.%.0d1)] {} {} +// CHECK:STDOUT: %Self.1: @Inner.%Inner.type (%Inner.type.3d8) = bind_symbolic_name Self, 1 [symbolic = %Self.3 (constants.%Self.b60)] +// CHECK:STDOUT: %.decl: @Inner.%.type (%.type) = fn_decl @.1 [symbolic = @Inner.%.loc26 (constants.%.f3b)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -107,30 +107,30 @@ interface Outer { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type.fea)) { +// CHECK:STDOUT: generic fn @.1(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type.3d8)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type.fea)) { +// CHECK:STDOUT: generic fn @F.2(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type.3d8)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.843) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.719) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%Self.3ec) { +// CHECK:STDOUT: specific @Inner(constants.%Self.277) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self.2 => constants.%Self.3ec -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.fea -// CHECK:STDOUT: %Self.3 => constants.%Self.306 +// CHECK:STDOUT: %Self.2 => constants.%Self.277 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.3d8 +// CHECK:STDOUT: %Self.3 => constants.%Self.b60 // CHECK:STDOUT: %.type => constants.%.type -// CHECK:STDOUT: %.loc26 => constants.%.0d1 +// CHECK:STDOUT: %.loc26 => constants.%.f3b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%Self.3ec, constants.%Self.306) {} +// CHECK:STDOUT: specific @.1(constants.%Self.277, constants.%Self.b60) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(%Self.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.2(constants.%Self.3ec, constants.%Self.306) {} +// CHECK:STDOUT: specific @F.2(constants.%Self.277, constants.%Self.b60) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_duplicate.carbon b/toolchain/check/testdata/interface/no_prelude/fail_duplicate.carbon index 691a36655887..e5a11e438abe 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_duplicate.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_duplicate.carbon @@ -73,9 +73,9 @@ interface Class { } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [template] -// CHECK:STDOUT: %Self.843: %Interface.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %.type: type = facet_type <@.1> [template] -// CHECK:STDOUT: %Self.cac: %.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.86e: %.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %.type, %F.type [template] @@ -91,7 +91,7 @@ interface Class { } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.843] +// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -99,7 +99,7 @@ interface Class { } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @.1 { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.cac] +// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.86e] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: @@ -114,16 +114,16 @@ interface Class { } // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self.cac) {} +// CHECK:STDOUT: specific @F(constants.%Self.86e) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_redefine_with_dependents.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [template] -// CHECK:STDOUT: %Self.843: %Interface.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %.type: type = facet_type <@.1> [template] -// CHECK:STDOUT: %Self.cac: %.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cac [symbolic] +// CHECK:STDOUT: %Self.86e: %.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.86e [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %.type, %F.type [template] @@ -139,7 +139,7 @@ interface Class { } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.843] +// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -147,14 +147,14 @@ interface Class { } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @.1 { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.cac] +// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.86e] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %self.patt: @F.%Self.as_type.loc14_14.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @F.%Self.as_type.loc14_14.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @F.%Self.as_type.loc14_14.1 (%Self.as_type) = value_param runtime_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: %.type = name_ref Self, @.1.%Self [symbolic = %Self (constants.%Self.cac)] +// CHECK:STDOUT: %Self.ref: %.type = name_ref Self, @.1.%Self [symbolic = %Self (constants.%Self.86e)] // 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: } @@ -169,14 +169,14 @@ interface Class { } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@.1.%Self: %.type) { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.cac)] +// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.86e)] // 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: // CHECK:STDOUT: fn[%self.param_patt: @F.%Self.as_type.loc14_14.1 (%Self.as_type)](); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self.cac) { -// CHECK:STDOUT: %Self => constants.%Self.cac +// CHECK:STDOUT: specific @F(constants.%Self.86e) { +// CHECK:STDOUT: %Self => constants.%Self.86e // CHECK:STDOUT: %Self.as_type.loc14_14.1 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon b/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon index d4884b3e65d3..3788048d439c 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon @@ -41,25 +41,25 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric> [template] -// CHECK:STDOUT: %T.6ba: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.d86: type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e01: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %.type.abf52e.1: type = generic_interface_type @.1 [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %.generic.0a9e18.1: %.type.abf52e.1 = struct_value () [template] -// CHECK:STDOUT: %.type.54b: type = facet_type <@.1, @.1(%T.6ba)> [symbolic] -// CHECK:STDOUT: %Self.475: %.type.54b = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.eb3: type = facet_type <@.1, @.1(%T.8b3)> [symbolic] +// CHECK:STDOUT: %Self.037: %.type.eb3 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Generic.type: type = generic_interface_type @Generic [template] // CHECK:STDOUT: %Generic.generic: %Generic.type = struct_value () [template] // CHECK:STDOUT: %.type.4ea: type = facet_type <@.2> [template] -// CHECK:STDOUT: %Self.cac: %.type.4ea = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.86e: %.type.4ea = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %DifferentParams.type: type = generic_interface_type @DifferentParams [template] // CHECK:STDOUT: %DifferentParams.generic: %DifferentParams.type = struct_value () [template] -// CHECK:STDOUT: %T.b2a: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.e42: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.7a6: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e60: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %.type.abf52e.2: type = generic_interface_type @.3 [template] // CHECK:STDOUT: %.generic.0a9e18.2: %.type.abf52e.2 = struct_value () [template] -// CHECK:STDOUT: %.type.b7e: type = facet_type <@.3, @.3(%T.b2a)> [symbolic] -// CHECK:STDOUT: %Self.a94: %.type.b7e = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.b4a: type = facet_type <@.3, @.3(%T.7a6)> [symbolic] +// CHECK:STDOUT: %Self.bb6: %.type.b4a = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -70,52 +70,52 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: %NotGeneric.decl: type = interface_decl @NotGeneric [template = constants.%NotGeneric.type] {} {} // CHECK:STDOUT: %.decl.loc19: %.type.abf52e.1 = interface_decl @.1 [template = constants.%.generic.0a9e18.1] { -// CHECK:STDOUT: %T.patt.loc19_22.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_22.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc19_22.1, runtime_param [symbolic = %T.patt.loc19_22.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.patt.loc19_22.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_22.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc19_22.1, runtime_param [symbolic = %T.patt.loc19_22.2 (constants.%T.patt.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc19_22.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_22.2 (constants.%T.6ba)] +// CHECK:STDOUT: %T.loc19_22.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_22.2 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %Generic.decl: %Generic.type = interface_decl @Generic [template = constants.%Generic.generic] { -// CHECK:STDOUT: %T.patt.loc21_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_19.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc21_19.1, runtime_param [symbolic = %T.patt.loc21_19.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.patt.loc21_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_19.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc21_19.1, runtime_param [symbolic = %T.patt.loc21_19.2 (constants.%T.patt.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc21_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc21_19.2 (constants.%T.6ba)] +// CHECK:STDOUT: %T.loc21_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc21_19.2 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl.loc29: type = interface_decl @.2 [template = constants.%.type.4ea] {} {} // CHECK:STDOUT: %DifferentParams.decl: %DifferentParams.type = interface_decl @DifferentParams [template = constants.%DifferentParams.generic] { -// CHECK:STDOUT: %T.patt.loc31_27.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc31_27.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc31_27.1, runtime_param [symbolic = %T.patt.loc31_27.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.patt.loc31_27.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc31_27.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc31_27.1, runtime_param [symbolic = %T.patt.loc31_27.2 (constants.%T.patt.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc31_27.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc31_27.2 (constants.%T.6ba)] +// CHECK:STDOUT: %T.loc31_27.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc31_27.2 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl.loc38: %.type.abf52e.2 = interface_decl @.3 [template = constants.%.generic.0a9e18.2] { -// CHECK:STDOUT: %T.patt.loc38_27.1: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc38_27.2 (constants.%T.patt.e42)] -// CHECK:STDOUT: %T.param_patt: %empty_tuple.type = value_param_pattern %T.patt.loc38_27.1, runtime_param [symbolic = %T.patt.loc38_27.2 (constants.%T.patt.e42)] +// CHECK:STDOUT: %T.patt.loc38_27.1: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc38_27.2 (constants.%T.patt.e60)] +// CHECK:STDOUT: %T.param_patt: %empty_tuple.type = value_param_pattern %T.patt.loc38_27.1, runtime_param [symbolic = %T.patt.loc38_27.2 (constants.%T.patt.e60)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: %empty_tuple.type = value_param runtime_param // CHECK:STDOUT: %.loc38_32.1: type = splice_block %.loc38_32.3 [template = constants.%empty_tuple.type] { // CHECK:STDOUT: %.loc38_32.2: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc38_32.3: type = converted %.loc38_32.2, constants.%empty_tuple.type [template = constants.%empty_tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc38_27.1: %empty_tuple.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc38_27.2 (constants.%T.b2a)] +// CHECK:STDOUT: %T.loc38_27.1: %empty_tuple.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc38_27.2 (constants.%T.7a6)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NotGeneric; // CHECK:STDOUT: // CHECK:STDOUT: generic interface @.1(%T.loc19_22.1: type) { -// CHECK:STDOUT: %T.loc19_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_22.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc19_22.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_22.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.loc19_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_22.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc19_22.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_22.2 (constants.%T.patt.e01)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%T.loc19_22.2)> [symbolic = %.type (constants.%.type.54b)] -// CHECK:STDOUT: %Self.2: %.type.54b = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.475)] +// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%T.loc19_22.2)> [symbolic = %.type (constants.%.type.eb3)] +// CHECK:STDOUT: %Self.2: %.type.eb3 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.037)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.54b) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.475)] +// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.eb3) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.037)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -124,14 +124,14 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @Generic(%T.loc21_19.1: type) { -// CHECK:STDOUT: %T.loc21_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_19.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc21_19.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_19.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.loc21_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_19.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc21_19.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_19.2 (constants.%T.patt.e01)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @.2 { -// CHECK:STDOUT: %Self: %.type.4ea = bind_symbolic_name Self, 0 [symbolic = constants.%Self.cac] +// CHECK:STDOUT: %Self: %.type.4ea = bind_symbolic_name Self, 0 [symbolic = constants.%Self.86e] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -139,22 +139,22 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @DifferentParams(%T.loc31_27.1: type) { -// CHECK:STDOUT: %T.loc31_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc31_27.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc31_27.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc31_27.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.loc31_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc31_27.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc31_27.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc31_27.2 (constants.%T.patt.e01)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @.3(%T.loc38_27.1: %empty_tuple.type) { -// CHECK:STDOUT: %T.loc38_27.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc38_27.2 (constants.%T.b2a)] -// CHECK:STDOUT: %T.patt.loc38_27.2: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc38_27.2 (constants.%T.patt.e42)] +// CHECK:STDOUT: %T.loc38_27.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc38_27.2 (constants.%T.7a6)] +// CHECK:STDOUT: %T.patt.loc38_27.2: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc38_27.2 (constants.%T.patt.e60)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.3, @.3(%T.loc38_27.2)> [symbolic = %.type (constants.%.type.b7e)] -// CHECK:STDOUT: %Self.2: %.type.b7e = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a94)] +// CHECK:STDOUT: %.type: type = facet_type <@.3, @.3(%T.loc38_27.2)> [symbolic = %.type (constants.%.type.b4a)] +// CHECK:STDOUT: %Self.2: %.type.b4a = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.bb6)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.3.%.type (%.type.b7e) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a94)] +// CHECK:STDOUT: %Self.1: @.3.%.type (%.type.b4a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.bb6)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -162,26 +162,26 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T.6ba) { -// CHECK:STDOUT: %T.loc19_22.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc19_22.2 => constants.%T.6ba +// CHECK:STDOUT: specific @.1(constants.%T.8b3) { +// CHECK:STDOUT: %T.loc19_22.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc19_22.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(%T.loc19_22.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic(constants.%T.6ba) { -// CHECK:STDOUT: %T.loc21_19.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc21_19.2 => constants.%T.6ba +// CHECK:STDOUT: specific @Generic(constants.%T.8b3) { +// CHECK:STDOUT: %T.loc21_19.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc21_19.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DifferentParams(constants.%T.6ba) { -// CHECK:STDOUT: %T.loc31_27.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc31_27.2 => constants.%T.6ba +// CHECK:STDOUT: specific @DifferentParams(constants.%T.8b3) { +// CHECK:STDOUT: %T.loc31_27.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc31_27.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.3(constants.%T.b2a) { -// CHECK:STDOUT: %T.loc38_27.2 => constants.%T.b2a -// CHECK:STDOUT: %T.patt.loc38_27.2 => constants.%T.b2a +// CHECK:STDOUT: specific @.3(constants.%T.7a6) { +// CHECK:STDOUT: %T.loc38_27.2 => constants.%T.7a6 +// CHECK:STDOUT: %T.patt.loc38_27.2 => constants.%T.7a6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.3(%T.loc38_27.2) {} diff --git a/toolchain/check/testdata/interface/no_prelude/fail_lookup_undefined.carbon b/toolchain/check/testdata/interface/no_prelude/fail_lookup_undefined.carbon index 36a08ea7070c..32576c0de209 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_lookup_undefined.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_lookup_undefined.carbon @@ -63,8 +63,8 @@ interface BeingDefined { // CHECK:STDOUT: %H: %H.type = struct_value () [template] // CHECK:STDOUT: %H.assoc_type: type = assoc_entity_type %BeingDefined.type, %H.type [template] // CHECK:STDOUT: %assoc0: %H.assoc_type = assoc_entity element0, @BeingDefined.%H.decl [template] -// CHECK:STDOUT: %.type.bee: type = fn_type @.2 [template] -// CHECK:STDOUT: %.b15: %.type.bee = struct_value () [template] +// CHECK:STDOUT: %.type.5fb: type = fn_type @.2 [template] +// CHECK:STDOUT: %.b15: %.type.5fb = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -93,7 +93,7 @@ interface BeingDefined { // CHECK:STDOUT: %return: ref = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %H.assoc_type = assoc_entity element0, %H.decl [template = constants.%assoc0] -// CHECK:STDOUT: %.decl: %.type.bee = fn_decl @.2 [template = constants.%.b15] {} {} +// CHECK:STDOUT: %.decl: %.type.5fb = fn_decl @.2 [template = constants.%.b15] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self diff --git a/toolchain/check/testdata/interface/no_prelude/fail_member_lookup.carbon b/toolchain/check/testdata/interface/no_prelude/fail_member_lookup.carbon index df32e782c442..b9121df6a3c5 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_member_lookup.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_member_lookup.carbon @@ -39,17 +39,17 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [template] -// CHECK:STDOUT: %Self.843: %Interface.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type.402: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.3e6: %F.type.402 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Interface.type, %F.type.402 [template] +// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %F.type.1ad: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.5d3: %F.type.1ad = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Interface.type, %F.type.1ad [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @Interface.%F.decl [template] // CHECK:STDOUT: %assoc_type: type = assoc_entity_type %Interface.type, type [template] // CHECK:STDOUT: %assoc1: %assoc_type = assoc_entity element1, @Interface.%T [template] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [template] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [template] // CHECK:STDOUT: %Different.type: type = facet_type <@Different> [template] -// CHECK:STDOUT: %Self.d6a: %Different.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.e7f: %Different.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %U: %Different.type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %U.patt: %Different.type = symbolic_binding_pattern U, 0 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] @@ -84,8 +84,8 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.843] -// CHECK:STDOUT: %F.decl: %F.type.402 = fn_decl @F.1 [template = constants.%F.3e6] {} {} +// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719] +// CHECK:STDOUT: %F.decl: %F.type.1ad = fn_decl @F.1 [template = constants.%F.5d3] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] // CHECK:STDOUT: %T: type = assoc_const_decl T [template] // CHECK:STDOUT: %assoc1: %assoc_type = assoc_entity element1, %T [template = constants.%assoc1] @@ -98,7 +98,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Different { -// CHECK:STDOUT: %Self: %Different.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d6a] +// CHECK:STDOUT: %Self: %Different.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.e7f] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -126,7 +126,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: fn(%U.param_patt: %Different.type) -> ; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.843) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.719) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%U) { // CHECK:STDOUT: %U.loc36_6.2 => constants.%U diff --git a/toolchain/check/testdata/interface/no_prelude/fail_redeclare_member.carbon b/toolchain/check/testdata/interface/no_prelude/fail_redeclare_member.carbon index c03e32b3aa41..6fd07ce7429d 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_redeclare_member.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_redeclare_member.carbon @@ -29,7 +29,7 @@ interface Interface { // CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %Interface.type, %F.type [template] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @Interface.%F.decl [template] // CHECK:STDOUT: %.type: type = fn_type @.1 [template] -// CHECK:STDOUT: %.c3a: %.type = struct_value () [template] +// CHECK:STDOUT: %.563: %.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -43,7 +43,7 @@ interface Interface { // CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0] -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.c3a] {} {} +// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.563] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self diff --git a/toolchain/check/testdata/interface/no_prelude/fail_todo_generic_default_fn.carbon b/toolchain/check/testdata/interface/no_prelude/fail_todo_generic_default_fn.carbon index ed6614dbb9c2..7f4a54793800 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_todo_generic_default_fn.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_todo_generic_default_fn.carbon @@ -28,15 +28,15 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [template] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [template] -// CHECK:STDOUT: %I.type.bc4: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.325: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T) [symbolic] // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type.bc4, %F.type [symbolic] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type.325, %F.type [symbolic] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @I.%F.decl [symbolic] // CHECK:STDOUT: %.type: type = fn_type @.1, @I(%T) [symbolic] -// CHECK:STDOUT: %.ec9: %.type = struct_value () [symbolic] +// CHECK:STDOUT: %.075: %.type = struct_value () [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -51,7 +51,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [symbolic = constants.%.ec9] { +// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [symbolic = constants.%.075] { // CHECK:STDOUT: %self.patt: @.1.%Self.as_type.loc22_24.2 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @.1.%Self.as_type.loc22_24.2 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @.1.%Self.as_type.loc22_24.2 (%Self.as_type) = return_slot_pattern @@ -59,14 +59,14 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc22_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc22_6.2 (constants.%T)] -// CHECK:STDOUT: %.loc22_35.1: @.1.%I.type (%I.type.bc4) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref.loc22_35: @.1.%I.type (%I.type.bc4) = name_ref Self, %.loc22_35.1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc22_35.1: @.1.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref.loc22_35: @.1.%I.type (%I.type.325) = name_ref Self, %.loc22_35.1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc22_35: type = facet_access_type %Self.ref.loc22_35 [symbolic = %Self.as_type.loc22_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc22_35.2: type = converted %Self.ref.loc22_35, %Self.as_type.loc22_35 [symbolic = %Self.as_type.loc22_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: %self.param: @.1.%Self.as_type.loc22_24.2 (%Self.as_type) = value_param runtime_param0 // CHECK:STDOUT: %.loc22_24.1: type = splice_block %.loc22_24.3 [symbolic = %Self.as_type.loc22_24.2 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc22_24.2: @.1.%I.type (%I.type.bc4) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref.loc22_24: @.1.%I.type (%I.type.bc4) = name_ref Self, %.loc22_24.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc22_24.2: @.1.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref.loc22_24: @.1.%I.type (%I.type.325) = name_ref Self, %.loc22_24.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc22_24.1: type = facet_access_type %Self.ref.loc22_24 [symbolic = %Self.as_type.loc22_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc22_24.3: type = converted %Self.ref.loc22_24, %Self.as_type.loc22_24.1 [symbolic = %Self.as_type.loc22_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -81,29 +81,29 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %T.patt.loc11_13.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_13.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc11_13.2)> [symbolic = %I.type (constants.%I.type.bc4)] -// CHECK:STDOUT: %Self.2: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc11_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self.2: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @I.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.bc4), @I.%F.type (%F.type) [symbolic = %F.assoc_type (constants.%F.assoc_type)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325), @I.%F.type (%F.type) [symbolic = %F.assoc_type (constants.%F.assoc_type)] // CHECK:STDOUT: %assoc0.loc13_29.2: @I.%F.assoc_type (%F.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc13_29.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.bc4) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.decl: @I.%F.type (%F.type) = fn_decl @F [symbolic = @I.%F (constants.%F)] { // CHECK:STDOUT: %self.patt: @F.%Self.as_type.loc13_14.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @F.%Self.as_type.loc13_14.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @F.%Self.as_type.loc13_14.1 (%Self.as_type) = return_slot_pattern // CHECK:STDOUT: %return.param_patt: @F.%Self.as_type.loc13_14.1 (%Self.as_type) = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc13_25.1: @F.%I.type (%I.type.bc4) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref.loc13_25: @F.%I.type (%I.type.bc4) = name_ref Self, %.loc13_25.1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc13_25.1: @F.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref.loc13_25: @F.%I.type (%I.type.325) = name_ref Self, %.loc13_25.1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc13_25: type = facet_access_type %Self.ref.loc13_25 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc13_25.2: type = converted %Self.ref.loc13_25, %Self.as_type.loc13_25 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %self.param: @F.%Self.as_type.loc13_14.1 (%Self.as_type) = value_param runtime_param0 // CHECK:STDOUT: %.loc13_14.1: type = splice_block %.loc13_14.3 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc13_14.2: @F.%I.type (%I.type.bc4) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref.loc13_14: @F.%I.type (%I.type.bc4) = name_ref Self, %.loc13_14.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc13_14.2: @F.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref.loc13_14: @F.%I.type (%I.type.325) = name_ref Self, %.loc13_14.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc13_14.2: type = facet_access_type %Self.ref.loc13_14 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc13_14.3: type = converted %Self.ref.loc13_14, %Self.as_type.loc13_14.2 [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -120,20 +120,20 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%T.loc11_13.1: type, @I.%Self.1: @I.%I.type (%I.type.bc4)) { +// CHECK:STDOUT: generic fn @F(@I.%T.loc11_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.bc4)] -// CHECK:STDOUT: %Self: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc13_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: @F.%Self.as_type.loc13_14.1 (%Self.as_type)]() -> @F.%Self.as_type.loc13_14.1 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc22_6.1: type, @I.%Self.1: @I.%I.type (%I.type.bc4)) { +// CHECK:STDOUT: generic fn @.1(%T.loc22_6.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) { // CHECK:STDOUT: %T.loc22_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc22_6.2)> [symbolic = %I.type (constants.%I.type.bc4)] -// CHECK:STDOUT: %Self: %I.type.bc4 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc22_6.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc22_24.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc22_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -151,7 +151,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %T.patt.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.bc4 +// CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type // CHECK:STDOUT: %F => constants.%F @@ -161,7 +161,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.bc4 +// CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc13_14.1 => constants.%Self.as_type // CHECK:STDOUT: } @@ -173,7 +173,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: specific @.1(constants.%T, constants.%Self) { // CHECK:STDOUT: %T.loc22_6.2 => constants.%T // CHECK:STDOUT: %T.patt => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.bc4 +// CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc22_24.2 => constants.%Self.as_type // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/no_prelude/generic.carbon b/toolchain/check/testdata/interface/no_prelude/generic.carbon index 4ad6a6ef65ff..fccb923852e2 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic.carbon @@ -61,48 +61,48 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: --- generic.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %T.6ba: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.d86: type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e01: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Simple.type.3b3: type = generic_interface_type @Simple [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %Simple.generic: %Simple.type.3b3 = struct_value () [template] -// CHECK:STDOUT: %Simple.type.276: type = facet_type <@Simple, @Simple(%T.6ba)> [symbolic] -// CHECK:STDOUT: %Self.96d: %Simple.type.276 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Simple.type.d08: type = facet_type <@Simple, @Simple(%T.8b3)> [symbolic] +// CHECK:STDOUT: %Self.faf: %Simple.type.d08 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %X: type = class_type @X [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %WithAssocFn.type.509: type = generic_interface_type @WithAssocFn [template] // CHECK:STDOUT: %WithAssocFn.generic: %WithAssocFn.type.509 = struct_value () [template] -// CHECK:STDOUT: %WithAssocFn.type.522: type = facet_type <@WithAssocFn, @WithAssocFn(%T.6ba)> [symbolic] -// CHECK:STDOUT: %Self.5ca: %WithAssocFn.type.522 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %F.type.48d: type = fn_type @F.1, @WithAssocFn(%T.6ba) [symbolic] -// CHECK:STDOUT: %F.689: %F.type.48d = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.b73: type = assoc_entity_type %WithAssocFn.type.522, %F.type.48d [symbolic] -// CHECK:STDOUT: %assoc0.fbc: %F.assoc_type.b73 = assoc_entity element0, @WithAssocFn.%F.decl [symbolic] +// CHECK:STDOUT: %WithAssocFn.type.ce6: type = facet_type <@WithAssocFn, @WithAssocFn(%T.8b3)> [symbolic] +// CHECK:STDOUT: %Self.088: %WithAssocFn.type.ce6 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %F.type.1af: type = fn_type @F.1, @WithAssocFn(%T.8b3) [symbolic] +// CHECK:STDOUT: %F.b7d: %F.type.1af = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.cd3: type = assoc_entity_type %WithAssocFn.type.ce6, %F.type.1af [symbolic] +// CHECK:STDOUT: %assoc0.8a0: %F.assoc_type.cd3 = assoc_entity element0, @WithAssocFn.%F.decl [symbolic] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %Simple.type.c51: type = facet_type <@Simple, @Simple(%C)> [template] +// CHECK:STDOUT: %Simple.type.51f: type = facet_type <@Simple, @Simple(%C)> [template] // CHECK:STDOUT: %impl_witness.1bc: = impl_witness () [template] -// CHECK:STDOUT: %WithAssocFn.type.7da: type = facet_type <@WithAssocFn, @WithAssocFn(%C)> [template] -// CHECK:STDOUT: %F.type.b97: type = fn_type @F.1, @WithAssocFn(%C) [template] -// CHECK:STDOUT: %F.c17: %F.type.b97 = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.452: type = assoc_entity_type %WithAssocFn.type.7da, %F.type.b97 [template] -// CHECK:STDOUT: %assoc0.a31: %F.assoc_type.452 = assoc_entity element0, @WithAssocFn.%F.decl [template] -// CHECK:STDOUT: %impl_witness.36a: = impl_witness (@impl.2.%F.decl) [template] -// CHECK:STDOUT: %F.type.b3c: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.75c: %F.type.b3c = struct_value () [template] -// CHECK:STDOUT: %WithAssocFn.facet: %WithAssocFn.type.522 = facet_value %C, %impl_witness.36a [symbolic] +// CHECK:STDOUT: %WithAssocFn.type.683: type = facet_type <@WithAssocFn, @WithAssocFn(%C)> [template] +// CHECK:STDOUT: %F.type.18c: type = fn_type @F.1, @WithAssocFn(%C) [template] +// CHECK:STDOUT: %F.e46: %F.type.18c = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.4f8: type = assoc_entity_type %WithAssocFn.type.683, %F.type.18c [template] +// CHECK:STDOUT: %assoc0.86f: %F.assoc_type.4f8 = assoc_entity element0, @WithAssocFn.%F.decl [template] +// CHECK:STDOUT: %impl_witness.49b: = impl_witness (@impl.2.%F.decl) [template] +// CHECK:STDOUT: %F.type.005: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.317: %F.type.005 = struct_value () [template] +// CHECK:STDOUT: %WithAssocFn.facet: %WithAssocFn.type.ce6 = facet_value %C, %impl_witness.49b [symbolic] // CHECK:STDOUT: %X.val: %X = struct_value () [template] -// CHECK:STDOUT: %N: %T.6ba = bind_symbolic_name N, 1 [symbolic] -// CHECK:STDOUT: %N.patt: %T.6ba = symbolic_binding_pattern N, 1 [symbolic] +// CHECK:STDOUT: %N: %T.8b3 = bind_symbolic_name N, 1 [symbolic] +// CHECK:STDOUT: %N.patt: %T.8b3 = symbolic_binding_pattern N, 1 [symbolic] // CHECK:STDOUT: %WithImplicitArgs.type: type = generic_interface_type @WithImplicitArgs [template] // CHECK:STDOUT: %WithImplicitArgs.generic: %WithImplicitArgs.type = struct_value () [template] -// CHECK:STDOUT: %T.ff8: %Simple.type.c51 = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.36e: %Simple.type.c51 = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.692: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.6ae: %Simple.type.51f = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Receive.type: type = fn_type @Receive [template] // CHECK:STDOUT: %Receive: %Receive.type = struct_value () [template] // CHECK:STDOUT: %Pass.type: type = fn_type @Pass [template] // CHECK:STDOUT: %Pass: %Pass.type = struct_value () [template] -// CHECK:STDOUT: %Receive.specific_fn: = specific_function %Receive, @Receive(%T.ff8) [symbolic] +// CHECK:STDOUT: %Receive.specific_fn: = specific_function %Receive, @Receive(%T.692) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -116,69 +116,69 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: .Pass = %Pass.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Simple.decl: %Simple.type.3b3 = interface_decl @Simple [template = constants.%Simple.generic] { -// CHECK:STDOUT: %T.patt.loc4_18.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_18.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_18.1, runtime_param [symbolic = %T.patt.loc4_18.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.patt.loc4_18.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_18.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_18.1, runtime_param [symbolic = %T.patt.loc4_18.2 (constants.%T.patt.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_18.2 (constants.%T.6ba)] +// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_18.2 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [template = constants.%X] {} {} // CHECK:STDOUT: %WithAssocFn.decl: %WithAssocFn.type.509 = interface_decl @WithAssocFn [template = constants.%WithAssocFn.generic] { -// CHECK:STDOUT: %T.patt.loc8_23.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_23.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc8_23.1, runtime_param [symbolic = %T.patt.loc8_23.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.patt.loc8_23.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_23.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc8_23.1, runtime_param [symbolic = %T.patt.loc8_23.2 (constants.%T.patt.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc8_23.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_23.2 (constants.%T.6ba)] +// CHECK:STDOUT: %T.loc8_23.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_23.2 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %WithImplicitArgs.decl: %WithImplicitArgs.type = interface_decl @WithImplicitArgs [template = constants.%WithImplicitArgs.generic] { -// CHECK:STDOUT: %T.patt.loc22_28.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc22_28.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc22_28.1, runtime_param [symbolic = %T.patt.loc22_28.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %N.patt.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.6ba) = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc22_38.2 (constants.%N.patt)] -// CHECK:STDOUT: %N.param_patt: @WithImplicitArgs.%T.loc22_28.2 (%T.6ba) = value_param_pattern %N.patt.loc22_38.1, runtime_param [symbolic = %N.patt.loc22_38.2 (constants.%N.patt)] +// CHECK:STDOUT: %T.patt.loc22_28.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc22_28.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc22_28.1, runtime_param [symbolic = %T.patt.loc22_28.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %N.patt.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.8b3) = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc22_38.2 (constants.%N.patt)] +// CHECK:STDOUT: %N.param_patt: @WithImplicitArgs.%T.loc22_28.2 (%T.8b3) = value_param_pattern %N.patt.loc22_38.1, runtime_param [symbolic = %N.patt.loc22_38.2 (constants.%N.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc22_28.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc22_28.2 (constants.%T.6ba)] -// CHECK:STDOUT: %N.param: @WithImplicitArgs.%T.loc22_28.2 (%T.6ba) = value_param runtime_param -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc22_28.1 [symbolic = %T.loc22_28.2 (constants.%T.6ba)] -// CHECK:STDOUT: %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.6ba) = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc22_38.2 (constants.%N)] +// CHECK:STDOUT: %T.loc22_28.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc22_28.2 (constants.%T.8b3)] +// CHECK:STDOUT: %N.param: @WithImplicitArgs.%T.loc22_28.2 (%T.8b3) = value_param runtime_param +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc22_28.1 [symbolic = %T.loc22_28.2 (constants.%T.8b3)] +// CHECK:STDOUT: %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.8b3) = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc22_38.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Receive.decl: %Receive.type = fn_decl @Receive [template = constants.%Receive] { -// CHECK:STDOUT: %T.patt.loc24_12.1: %Simple.type.c51 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc24_12.2 (constants.%T.patt.36e)] -// CHECK:STDOUT: %T.param_patt: %Simple.type.c51 = value_param_pattern %T.patt.loc24_12.1, runtime_param [symbolic = %T.patt.loc24_12.2 (constants.%T.patt.36e)] +// CHECK:STDOUT: %T.patt.loc24_12.1: %Simple.type.51f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc24_12.2 (constants.%T.patt.6ae)] +// CHECK:STDOUT: %T.param_patt: %Simple.type.51f = value_param_pattern %T.patt.loc24_12.1, runtime_param [symbolic = %T.patt.loc24_12.2 (constants.%T.patt.6ae)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.param: %Simple.type.c51 = value_param runtime_param -// CHECK:STDOUT: %.loc24: type = splice_block %Simple.type [template = constants.%Simple.type.c51] { +// CHECK:STDOUT: %T.param: %Simple.type.51f = value_param runtime_param +// CHECK:STDOUT: %.loc24: type = splice_block %Simple.type [template = constants.%Simple.type.51f] { // CHECK:STDOUT: %Simple.ref: %Simple.type.3b3 = name_ref Simple, file.%Simple.decl [template = constants.%Simple.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [template = constants.%Simple.type.c51] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [template = constants.%Simple.type.51f] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc24_12.1: %Simple.type.c51 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc24_12.2 (constants.%T.ff8)] +// CHECK:STDOUT: %T.loc24_12.1: %Simple.type.51f = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc24_12.2 (constants.%T.692)] // CHECK:STDOUT: } // CHECK:STDOUT: %Pass.decl: %Pass.type = fn_decl @Pass [template = constants.%Pass] { -// CHECK:STDOUT: %T.patt.loc25_9.1: %Simple.type.c51 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc25_9.2 (constants.%T.patt.36e)] -// CHECK:STDOUT: %T.param_patt: %Simple.type.c51 = value_param_pattern %T.patt.loc25_9.1, runtime_param [symbolic = %T.patt.loc25_9.2 (constants.%T.patt.36e)] +// CHECK:STDOUT: %T.patt.loc25_9.1: %Simple.type.51f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc25_9.2 (constants.%T.patt.6ae)] +// CHECK:STDOUT: %T.param_patt: %Simple.type.51f = value_param_pattern %T.patt.loc25_9.1, runtime_param [symbolic = %T.patt.loc25_9.2 (constants.%T.patt.6ae)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.param: %Simple.type.c51 = value_param runtime_param -// CHECK:STDOUT: %.loc25: type = splice_block %Simple.type [template = constants.%Simple.type.c51] { +// CHECK:STDOUT: %T.param: %Simple.type.51f = value_param runtime_param +// CHECK:STDOUT: %.loc25: type = splice_block %Simple.type [template = constants.%Simple.type.51f] { // CHECK:STDOUT: %Simple.ref: %Simple.type.3b3 = name_ref Simple, file.%Simple.decl [template = constants.%Simple.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [template = constants.%Simple.type.c51] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [template = constants.%Simple.type.51f] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc25_9.1: %Simple.type.c51 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc25_9.2 (constants.%T.ff8)] +// CHECK:STDOUT: %T.loc25_9.1: %Simple.type.51f = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc25_9.2 (constants.%T.692)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @Simple(%T.loc4_18.1: type) { -// CHECK:STDOUT: %T.loc4_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc4_18.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_18.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.loc4_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc4_18.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_18.2 (constants.%T.patt.e01)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(%T.loc4_18.2)> [symbolic = %Simple.type (constants.%Simple.type.276)] -// CHECK:STDOUT: %Self.2: %Simple.type.276 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.96d)] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(%T.loc4_18.2)> [symbolic = %Simple.type (constants.%Simple.type.d08)] +// CHECK:STDOUT: %Self.2: %Simple.type.d08 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.faf)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Simple.%Simple.type (%Simple.type.276) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.96d)] +// CHECK:STDOUT: %Self.1: @Simple.%Simple.type (%Simple.type.d08) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.faf)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -187,20 +187,20 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @WithAssocFn(%T.loc8_23.1: type) { -// CHECK:STDOUT: %T.loc8_23.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_23.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc8_23.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_23.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.loc8_23.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_23.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc8_23.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_23.2 (constants.%T.patt.e01)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(%T.loc8_23.2)> [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.522)] -// CHECK:STDOUT: %Self.2: %WithAssocFn.type.522 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.5ca)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @WithAssocFn(%T.loc8_23.2) [symbolic = %F.type (constants.%F.type.48d)] -// CHECK:STDOUT: %F: @WithAssocFn.%F.type (%F.type.48d) = struct_value () [symbolic = %F (constants.%F.689)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.522), @WithAssocFn.%F.type (%F.type.48d) [symbolic = %F.assoc_type (constants.%F.assoc_type.b73)] -// CHECK:STDOUT: %assoc0.loc10_14.2: @WithAssocFn.%F.assoc_type (%F.assoc_type.b73) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.fbc)] +// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(%T.loc8_23.2)> [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.ce6)] +// CHECK:STDOUT: %Self.2: %WithAssocFn.type.ce6 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.088)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @WithAssocFn(%T.loc8_23.2) [symbolic = %F.type (constants.%F.type.1af)] +// CHECK:STDOUT: %F: @WithAssocFn.%F.type (%F.type.1af) = struct_value () [symbolic = %F (constants.%F.b7d)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6), @WithAssocFn.%F.type (%F.type.1af) [symbolic = %F.assoc_type (constants.%F.assoc_type.cd3)] +// CHECK:STDOUT: %assoc0.loc10_14.2: @WithAssocFn.%F.assoc_type (%F.assoc_type.cd3) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.8a0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.522) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.5ca)] -// CHECK:STDOUT: %F.decl: @WithAssocFn.%F.type (%F.type.48d) = fn_decl @F.1 [symbolic = @WithAssocFn.%F (constants.%F.689)] { +// CHECK:STDOUT: %Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.088)] +// CHECK:STDOUT: %F.decl: @WithAssocFn.%F.type (%F.type.1af) = fn_decl @F.1 [symbolic = @WithAssocFn.%F (constants.%F.b7d)] { // CHECK:STDOUT: %return.patt: %X = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %X = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -208,7 +208,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %return.param: ref %X = out_param runtime_param0 // CHECK:STDOUT: %return: ref %X = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc10_14.1: @WithAssocFn.%F.assoc_type (%F.assoc_type.b73) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.fbc)] +// CHECK:STDOUT: %assoc0.loc10_14.1: @WithAssocFn.%F.assoc_type (%F.assoc_type.cd3) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.8a0)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -217,11 +217,11 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @WithImplicitArgs(%T.loc22_28.1: type, %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.6ba)) { -// CHECK:STDOUT: %T.loc22_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_28.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc22_28.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc22_28.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %N.loc22_38.2: %T.6ba = bind_symbolic_name N, 1 [symbolic = %N.loc22_38.2 (constants.%N)] -// CHECK:STDOUT: %N.patt.loc22_38.2: %T.6ba = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc22_38.2 (constants.%N.patt)] +// CHECK:STDOUT: generic interface @WithImplicitArgs(%T.loc22_28.1: type, %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.8b3)) { +// CHECK:STDOUT: %T.loc22_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_28.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc22_28.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc22_28.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %N.loc22_38.2: %T.8b3 = bind_symbolic_name N, 1 [symbolic = %N.loc22_38.2 (constants.%N)] +// CHECK:STDOUT: %N.patt.loc22_38.2: %T.8b3 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc22_38.2 (constants.%N.patt)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -232,7 +232,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %Self.ref as %WithAssocFn.type { -// CHECK:STDOUT: %F.decl: %F.type.b3c = fn_decl @F.2 [template = constants.%F.75c] { +// CHECK:STDOUT: %F.decl: %F.type.005 = fn_decl @F.2 [template = constants.%F.317] { // CHECK:STDOUT: %return.patt: %X = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %X = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { @@ -259,16 +259,16 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [template = constants.%C] // CHECK:STDOUT: %Simple.ref: %Simple.type.3b3 = name_ref Simple, file.%Simple.decl [template = constants.%Simple.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [template = constants.%Simple.type.c51] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [template = constants.%Simple.type.51f] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc14: = impl_witness () [template = constants.%impl_witness.1bc] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [template = constants.%C] // CHECK:STDOUT: %WithAssocFn.ref: %WithAssocFn.type.509 = name_ref WithAssocFn, file.%WithAssocFn.decl [template = constants.%WithAssocFn.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(constants.%C)> [template = constants.%WithAssocFn.type.7da] +// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(constants.%C)> [template = constants.%WithAssocFn.type.683] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.2.%F.decl) [template = constants.%impl_witness.36a] +// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.2.%F.decl) [template = constants.%impl_witness.49b] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -276,7 +276,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@WithAssocFn.%T.loc8_23.1: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.522)) { +// CHECK:STDOUT: generic fn @F.1(@WithAssocFn.%T.loc8_23.1: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6)) { // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %X; // CHECK:STDOUT: } @@ -289,48 +289,48 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: return %.loc17_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Receive(%T.loc24_12.1: %Simple.type.c51) { -// CHECK:STDOUT: %T.loc24_12.2: %Simple.type.c51 = bind_symbolic_name T, 0 [symbolic = %T.loc24_12.2 (constants.%T.ff8)] -// CHECK:STDOUT: %T.patt.loc24_12.2: %Simple.type.c51 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc24_12.2 (constants.%T.patt.36e)] +// CHECK:STDOUT: generic fn @Receive(%T.loc24_12.1: %Simple.type.51f) { +// CHECK:STDOUT: %T.loc24_12.2: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc24_12.2 (constants.%T.692)] +// CHECK:STDOUT: %T.patt.loc24_12.2: %Simple.type.51f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc24_12.2 (constants.%T.patt.6ae)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: %Simple.type.c51) { +// CHECK:STDOUT: fn(%T.param_patt: %Simple.type.51f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Pass(%T.loc25_9.1: %Simple.type.c51) { -// CHECK:STDOUT: %T.loc25_9.2: %Simple.type.c51 = bind_symbolic_name T, 0 [symbolic = %T.loc25_9.2 (constants.%T.ff8)] -// CHECK:STDOUT: %T.patt.loc25_9.2: %Simple.type.c51 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc25_9.2 (constants.%T.patt.36e)] +// CHECK:STDOUT: generic fn @Pass(%T.loc25_9.1: %Simple.type.51f) { +// CHECK:STDOUT: %T.loc25_9.2: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc25_9.2 (constants.%T.692)] +// CHECK:STDOUT: %T.patt.loc25_9.2: %Simple.type.51f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc25_9.2 (constants.%T.patt.6ae)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Receive.specific_fn.loc26_3.2: = specific_function constants.%Receive, @Receive(%T.loc25_9.2) [symbolic = %Receive.specific_fn.loc26_3.2 (constants.%Receive.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: %Simple.type.c51) { +// CHECK:STDOUT: fn(%T.param_patt: %Simple.type.51f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Receive.ref: %Receive.type = name_ref Receive, file.%Receive.decl [template = constants.%Receive] -// CHECK:STDOUT: %T.ref: %Simple.type.c51 = name_ref T, %T.loc25_9.1 [symbolic = %T.loc25_9.2 (constants.%T.ff8)] -// CHECK:STDOUT: %Receive.specific_fn.loc26_3.1: = specific_function %Receive.ref, @Receive(constants.%T.ff8) [symbolic = %Receive.specific_fn.loc26_3.2 (constants.%Receive.specific_fn)] +// CHECK:STDOUT: %T.ref: %Simple.type.51f = name_ref T, %T.loc25_9.1 [symbolic = %T.loc25_9.2 (constants.%T.692)] +// CHECK:STDOUT: %Receive.specific_fn.loc26_3.1: = specific_function %Receive.ref, @Receive(constants.%T.692) [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: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Simple(constants.%T.6ba) { -// CHECK:STDOUT: %T.loc4_18.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc4_18.2 => constants.%T.6ba +// CHECK:STDOUT: specific @Simple(constants.%T.8b3) { +// CHECK:STDOUT: %T.loc4_18.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc4_18.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple(%T.loc4_18.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithAssocFn(constants.%T.6ba) { -// CHECK:STDOUT: %T.loc8_23.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc8_23.2 => constants.%T.6ba +// CHECK:STDOUT: specific @WithAssocFn(constants.%T.8b3) { +// CHECK:STDOUT: %T.loc8_23.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc8_23.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%T.6ba, constants.%Self.5ca) {} +// CHECK:STDOUT: specific @F.1(constants.%T.8b3, constants.%Self.088) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn(%T.loc8_23.2) {} // CHECK:STDOUT: @@ -339,8 +339,8 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %T.patt.loc4_18.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Simple.type => constants.%Simple.type.c51 -// CHECK:STDOUT: %Self.2 => constants.%Self.96d +// CHECK:STDOUT: %Simple.type => constants.%Simple.type.51f +// CHECK:STDOUT: %Self.2 => constants.%Self.faf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn(constants.%C) { @@ -348,33 +348,33 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %T.patt.loc8_23.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.7da -// CHECK:STDOUT: %Self.2 => constants.%Self.5ca -// CHECK:STDOUT: %F.type => constants.%F.type.b97 -// CHECK:STDOUT: %F => constants.%F.c17 -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.452 -// CHECK:STDOUT: %assoc0.loc10_14.2 => constants.%assoc0.a31 +// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.683 +// CHECK:STDOUT: %Self.2 => constants.%Self.088 +// CHECK:STDOUT: %F.type => constants.%F.type.18c +// CHECK:STDOUT: %F => constants.%F.e46 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.4f8 +// CHECK:STDOUT: %assoc0.loc10_14.2 => constants.%assoc0.86f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%C, constants.%WithAssocFn.facet) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithImplicitArgs(constants.%T.6ba, constants.%N) { -// CHECK:STDOUT: %T.loc22_28.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc22_28.2 => constants.%T.6ba +// CHECK:STDOUT: specific @WithImplicitArgs(constants.%T.8b3, constants.%N) { +// CHECK:STDOUT: %T.loc22_28.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc22_28.2 => constants.%T.8b3 // CHECK:STDOUT: %N.loc22_38.2 => constants.%N // CHECK:STDOUT: %N.patt.loc22_38.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Receive(constants.%T.ff8) { -// CHECK:STDOUT: %T.loc24_12.2 => constants.%T.ff8 -// CHECK:STDOUT: %T.patt.loc24_12.2 => constants.%T.ff8 +// CHECK:STDOUT: specific @Receive(constants.%T.692) { +// CHECK:STDOUT: %T.loc24_12.2 => constants.%T.692 +// CHECK:STDOUT: %T.patt.loc24_12.2 => constants.%T.692 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Pass(constants.%T.ff8) { -// CHECK:STDOUT: %T.loc25_9.2 => constants.%T.ff8 -// CHECK:STDOUT: %T.patt.loc25_9.2 => constants.%T.ff8 +// CHECK:STDOUT: specific @Pass(constants.%T.692) { +// CHECK:STDOUT: %T.loc25_9.2 => constants.%T.692 +// CHECK:STDOUT: %T.patt.loc25_9.2 => constants.%T.692 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Receive(@Pass.%T.loc25_9.2) {} @@ -382,24 +382,24 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: --- fail_mismatched_args.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %T.6ba: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.d86: type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.e01: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Generic.type.c21: type = generic_interface_type @Generic [template] // CHECK:STDOUT: %Generic.generic: %Generic.type.c21 = struct_value () [template] -// CHECK:STDOUT: %Generic.type.6ba: type = facet_type <@Generic, @Generic(%T.6ba)> [symbolic] -// CHECK:STDOUT: %Self: %Generic.type.6ba = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.type.91c: type = facet_type <@Generic, @Generic(%T.8b3)> [symbolic] +// CHECK:STDOUT: %Self: %Generic.type.91c = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %A: type = class_type @A [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %B: type = class_type @B [template] -// CHECK:STDOUT: %Generic.type.ad8: type = facet_type <@Generic, @Generic(%A)> [template] -// CHECK:STDOUT: %T.c30: %Generic.type.ad8 = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.3a6: %Generic.type.ad8 = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %Generic.type.c7c: type = facet_type <@Generic, @Generic(%A)> [template] +// CHECK:STDOUT: %T.a53: %Generic.type.c7c = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.3e0: %Generic.type.c7c = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %Generic.type.6bf: type = facet_type <@Generic, @Generic(%B)> [template] -// CHECK:STDOUT: %T.79f: %Generic.type.6bf = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.patt.fd1: %Generic.type.6bf = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %Generic.type.4ce: type = facet_type <@Generic, @Generic(%B)> [template] +// CHECK:STDOUT: %T.bae: %Generic.type.4ce = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %T.patt.53a: %Generic.type.4ce = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: } @@ -413,50 +413,50 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Generic.decl: %Generic.type.c21 = interface_decl @Generic [template = constants.%Generic.generic] { -// CHECK:STDOUT: %T.patt.loc4_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_19.2 (constants.%T.patt.d86)] -// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_19.1, runtime_param [symbolic = %T.patt.loc4_19.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.patt.loc4_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_19.2 (constants.%T.patt.e01)] +// CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc4_19.1, runtime_param [symbolic = %T.patt.loc4_19.2 (constants.%T.patt.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param -// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_19.2 (constants.%T.6ba)] +// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_19.2 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [template = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %T.patt.loc9_6.1: %Generic.type.ad8 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_6.2 (constants.%T.patt.3a6)] -// CHECK:STDOUT: %T.param_patt: %Generic.type.ad8 = value_param_pattern %T.patt.loc9_6.1, runtime_param [symbolic = %T.patt.loc9_6.2 (constants.%T.patt.3a6)] +// CHECK:STDOUT: %T.patt.loc9_6.1: %Generic.type.c7c = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_6.2 (constants.%T.patt.3e0)] +// CHECK:STDOUT: %T.param_patt: %Generic.type.c7c = value_param_pattern %T.patt.loc9_6.1, runtime_param [symbolic = %T.patt.loc9_6.2 (constants.%T.patt.3e0)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.param: %Generic.type.ad8 = value_param runtime_param -// CHECK:STDOUT: %.loc9: type = splice_block %Generic.type [template = constants.%Generic.type.ad8] { +// CHECK:STDOUT: %T.param: %Generic.type.c7c = value_param runtime_param +// CHECK:STDOUT: %.loc9: type = splice_block %Generic.type [template = constants.%Generic.type.c7c] { // CHECK:STDOUT: %Generic.ref: %Generic.type.c21 = name_ref Generic, file.%Generic.decl [template = constants.%Generic.generic] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%A)> [template = constants.%Generic.type.ad8] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%A)> [template = constants.%Generic.type.c7c] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_6.1: %Generic.type.ad8 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc9_6.2 (constants.%T.c30)] +// CHECK:STDOUT: %T.loc9_6.1: %Generic.type.c7c = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc9_6.2 (constants.%T.a53)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %T.patt.loc10_6.1: %Generic.type.6bf = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_6.2 (constants.%T.patt.fd1)] -// CHECK:STDOUT: %T.param_patt: %Generic.type.6bf = value_param_pattern %T.patt.loc10_6.1, runtime_param [symbolic = %T.patt.loc10_6.2 (constants.%T.patt.fd1)] +// CHECK:STDOUT: %T.patt.loc10_6.1: %Generic.type.4ce = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_6.2 (constants.%T.patt.53a)] +// CHECK:STDOUT: %T.param_patt: %Generic.type.4ce = value_param_pattern %T.patt.loc10_6.1, runtime_param [symbolic = %T.patt.loc10_6.2 (constants.%T.patt.53a)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.param: %Generic.type.6bf = value_param runtime_param -// CHECK:STDOUT: %.loc10: type = splice_block %Generic.type [template = constants.%Generic.type.6bf] { +// CHECK:STDOUT: %T.param: %Generic.type.4ce = value_param runtime_param +// CHECK:STDOUT: %.loc10: type = splice_block %Generic.type [template = constants.%Generic.type.4ce] { // CHECK:STDOUT: %Generic.ref: %Generic.type.c21 = name_ref Generic, file.%Generic.decl [template = constants.%Generic.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%B)> [template = constants.%Generic.type.6bf] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%B)> [template = constants.%Generic.type.4ce] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc10_6.1: %Generic.type.6bf = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_6.2 (constants.%T.79f)] +// CHECK:STDOUT: %T.loc10_6.1: %Generic.type.4ce = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_6.2 (constants.%T.bae)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @Generic(%T.loc4_19.1: type) { -// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T.6ba)] -// CHECK:STDOUT: %T.patt.loc4_19.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_19.2 (constants.%T.patt.d86)] +// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.patt.loc4_19.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_19.2 (constants.%T.patt.e01)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc4_19.2)> [symbolic = %Generic.type (constants.%Generic.type.6ba)] -// CHECK:STDOUT: %Self.2: %Generic.type.6ba = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc4_19.2)> [symbolic = %Generic.type (constants.%Generic.type.91c)] +// CHECK:STDOUT: %Self.2: %Generic.type.91c = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Generic.%Generic.type (%Generic.type.6ba) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Generic.%Generic.type (%Generic.type.91c) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -480,31 +480,31 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc9_6.1: %Generic.type.ad8) { -// CHECK:STDOUT: %T.loc9_6.2: %Generic.type.ad8 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.c30)] -// CHECK:STDOUT: %T.patt.loc9_6.2: %Generic.type.ad8 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_6.2 (constants.%T.patt.3a6)] +// CHECK:STDOUT: generic fn @F(%T.loc9_6.1: %Generic.type.c7c) { +// CHECK:STDOUT: %T.loc9_6.2: %Generic.type.c7c = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.a53)] +// CHECK:STDOUT: %T.patt.loc9_6.2: %Generic.type.c7c = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_6.2 (constants.%T.patt.3e0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: %Generic.type.ad8); +// CHECK:STDOUT: fn(%T.param_patt: %Generic.type.c7c); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc10_6.1: %Generic.type.6bf) { -// CHECK:STDOUT: %T.loc10_6.2: %Generic.type.6bf = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.2 (constants.%T.79f)] -// CHECK:STDOUT: %T.patt.loc10_6.2: %Generic.type.6bf = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_6.2 (constants.%T.patt.fd1)] +// CHECK:STDOUT: generic fn @G(%T.loc10_6.1: %Generic.type.4ce) { +// CHECK:STDOUT: %T.loc10_6.2: %Generic.type.4ce = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.2 (constants.%T.bae)] +// CHECK:STDOUT: %T.patt.loc10_6.2: %Generic.type.4ce = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_6.2 (constants.%T.patt.53a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: %Generic.type.6bf) { +// CHECK:STDOUT: fn(%T.param_patt: %Generic.type.4ce) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %T.ref: %Generic.type.6bf = name_ref T, %T.loc10_6.1 [symbolic = %T.loc10_6.2 (constants.%T.79f)] -// CHECK:STDOUT: %.loc18: %Generic.type.ad8 = converted %T.ref, [template = ] +// CHECK:STDOUT: %T.ref: %Generic.type.4ce = name_ref T, %T.loc10_6.1 [symbolic = %T.loc10_6.2 (constants.%T.bae)] +// CHECK:STDOUT: %.loc18: %Generic.type.c7c = converted %T.ref, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic(constants.%T.6ba) { -// CHECK:STDOUT: %T.loc4_19.2 => constants.%T.6ba -// CHECK:STDOUT: %T.patt.loc4_19.2 => constants.%T.6ba +// CHECK:STDOUT: specific @Generic(constants.%T.8b3) { +// CHECK:STDOUT: %T.loc4_19.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.patt.loc4_19.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(%T.loc4_19.2) {} @@ -514,9 +514,9 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %T.patt.loc4_19.2 => constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.c30) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%T.c30 -// CHECK:STDOUT: %T.patt.loc9_6.2 => constants.%T.c30 +// CHECK:STDOUT: specific @F(constants.%T.a53) { +// CHECK:STDOUT: %T.loc9_6.2 => constants.%T.a53 +// CHECK:STDOUT: %T.patt.loc9_6.2 => constants.%T.a53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%B) { @@ -524,8 +524,8 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %T.patt.loc4_19.2 => constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%T.79f) { -// CHECK:STDOUT: %T.loc10_6.2 => constants.%T.79f -// CHECK:STDOUT: %T.patt.loc10_6.2 => constants.%T.79f +// CHECK:STDOUT: specific @G(constants.%T.bae) { +// CHECK:STDOUT: %T.loc10_6.2 => constants.%T.bae +// CHECK:STDOUT: %T.patt.loc10_6.2 => constants.%T.bae // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon index 22103559f504..1eabd279a1d9 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon @@ -34,11 +34,11 @@ impl C as AddWith(C) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %AddWith.type.b35: type = generic_interface_type @AddWith [template] // CHECK:STDOUT: %AddWith.generic: %AddWith.type.b35 = struct_value () [template] -// CHECK:STDOUT: %AddWith.type.c52: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] -// CHECK:STDOUT: %Self: %AddWith.type.c52 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.type.bc7: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] +// CHECK:STDOUT: %Self: %AddWith.type.bc7 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F, @AddWith(%T) [symbolic] // CHECK:STDOUT: %F: %F.type = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %AddWith.type.c52, %F.type [symbolic] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %AddWith.type.bc7, %F.type [symbolic] // CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, @AddWith.%F.decl [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -60,15 +60,15 @@ impl C as AddWith(C) { // CHECK:STDOUT: %T.patt.loc4_19.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_19.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc4_19.2)> [symbolic = %AddWith.type (constants.%AddWith.type.c52)] -// CHECK:STDOUT: %Self.2: %AddWith.type.c52 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc4_19.2)> [symbolic = %AddWith.type (constants.%AddWith.type.bc7)] +// CHECK:STDOUT: %Self.2: %AddWith.type.bc7 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.type: type = fn_type @F, @AddWith(%T.loc4_19.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @AddWith.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @AddWith.%AddWith.type (%AddWith.type.c52), @AddWith.%F.type (%F.type) [symbolic = %F.assoc_type (constants.%F.assoc_type)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @AddWith.%AddWith.type (%AddWith.type.bc7), @AddWith.%F.type (%F.type) [symbolic = %F.assoc_type (constants.%F.assoc_type)] // CHECK:STDOUT: %assoc0.loc5_9.2: @AddWith.%F.assoc_type (%F.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @AddWith.%AddWith.type (%AddWith.type.c52) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @AddWith.%AddWith.type (%AddWith.type.bc7) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.decl: @AddWith.%F.type (%F.type) = fn_decl @F [symbolic = @AddWith.%F (constants.%F)] {} {} // CHECK:STDOUT: %assoc0.loc5_9.1: @AddWith.%F.assoc_type (%F.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0)] // CHECK:STDOUT: @@ -79,7 +79,7 @@ impl C as AddWith(C) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@AddWith.%T.loc4_19.1: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.c52)) { +// CHECK:STDOUT: generic fn @F(@AddWith.%T.loc4_19.1: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.bc7)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -102,44 +102,44 @@ impl C as AddWith(C) { // CHECK:STDOUT: %AddWith.type.b35: type = generic_interface_type @AddWith [template] // CHECK:STDOUT: %AddWith.generic: %AddWith.type.b35 = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %AddWith.type.b2d: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] -// CHECK:STDOUT: %Self: %AddWith.type.b2d = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.type.bc7: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] +// CHECK:STDOUT: %Self: %AddWith.type.bc7 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %F.type.deb: type = fn_type @F.1, @AddWith(%T) [symbolic] -// CHECK:STDOUT: %F.57a: %F.type.deb = struct_value () [symbolic] -// CHECK:STDOUT: %F.assoc_type.cbf: type = assoc_entity_type %AddWith.type.b2d, %F.type.deb [symbolic] -// CHECK:STDOUT: %assoc0.816: %F.assoc_type.cbf = assoc_entity element0, imports.%import_ref.91c [symbolic] -// CHECK:STDOUT: %AddWith.type.32b: type = facet_type <@AddWith, @AddWith(%C)> [template] -// CHECK:STDOUT: %F.type.47b: type = fn_type @F.1, @AddWith(%C) [template] -// CHECK:STDOUT: %F.000: %F.type.47b = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.13c: type = assoc_entity_type %AddWith.type.32b, %F.type.47b [template] -// CHECK:STDOUT: %assoc0.d29: %F.assoc_type.13c = assoc_entity element0, imports.%import_ref.91c [template] +// CHECK:STDOUT: %F.type.fbc: type = fn_type @F.1, @AddWith(%T) [symbolic] +// CHECK:STDOUT: %F.be3: %F.type.fbc = struct_value () [symbolic] +// CHECK:STDOUT: %F.assoc_type.f26: type = assoc_entity_type %AddWith.type.bc7, %F.type.fbc [symbolic] +// CHECK:STDOUT: %assoc0.1ff: %F.assoc_type.f26 = assoc_entity element0, imports.%import_ref.0c5 [symbolic] +// CHECK:STDOUT: %AddWith.type.e8e: type = facet_type <@AddWith, @AddWith(%C)> [template] +// CHECK:STDOUT: %F.type.cd2: type = fn_type @F.1, @AddWith(%C) [template] +// CHECK:STDOUT: %F.b58: %F.type.cd2 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.c97: type = assoc_entity_type %AddWith.type.e8e, %F.type.cd2 [template] +// CHECK:STDOUT: %assoc0.dc2: %F.assoc_type.c97 = assoc_entity element0, imports.%import_ref.0c5 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template] -// CHECK:STDOUT: %F.type.744: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.780: %F.type.744 = struct_value () [template] -// CHECK:STDOUT: %AddWith.facet: %AddWith.type.b2d = facet_value %C, %impl_witness [symbolic] +// CHECK:STDOUT: %F.type.c09: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.e62: %F.type.c09 = struct_value () [template] +// CHECK:STDOUT: %AddWith.facet: %AddWith.type.bc7 = facet_value %C, %impl_witness [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.7c5: %AddWith.type.b35 = import_ref Main//a, AddWith, loaded [template = constants.%AddWith.generic] -// CHECK:STDOUT: %import_ref.648 = import_ref Main//a, inst26 [no loc], unloaded -// CHECK:STDOUT: %import_ref.8a8 = import_ref Main//a, loc5_9, unloaded -// CHECK:STDOUT: %import_ref.70f: @AddWith.%F.type (%F.type.deb) = import_ref Main//a, F, loaded [symbolic = @AddWith.%F (constants.%F.57a)] -// CHECK:STDOUT: %import_ref.91c = import_ref Main//a, loc5_9, unloaded +// CHECK:STDOUT: %import_ref.cf6: %AddWith.type.b35 = import_ref Main//a, AddWith, loaded [template = constants.%AddWith.generic] +// CHECK:STDOUT: %import_ref.476 = import_ref Main//a, inst26 [no loc], unloaded +// CHECK:STDOUT: %import_ref.ce5 = import_ref Main//a, loc5_9, unloaded +// CHECK:STDOUT: %import_ref.b80: @AddWith.%F.type (%F.type.fbc) = import_ref Main//a, F, loaded [symbolic = @AddWith.%F (constants.%F.be3)] +// CHECK:STDOUT: %import_ref.0c5 = import_ref Main//a, loc5_9, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .AddWith = imports.%import_ref.7c5 +// CHECK:STDOUT: .AddWith = imports.%import_ref.cf6 // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: impl_decl @impl [template] {} { // CHECK:STDOUT: %C.ref.loc7_6: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %AddWith.ref: %AddWith.type.b35 = name_ref AddWith, imports.%import_ref.7c5 [template = constants.%AddWith.generic] +// CHECK:STDOUT: %AddWith.ref: %AddWith.type.b35 = name_ref AddWith, imports.%import_ref.cf6 [template = constants.%AddWith.generic] // CHECK:STDOUT: %C.ref.loc7_19: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(constants.%C)> [template = constants.%AddWith.type.32b] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(constants.%C)> [template = constants.%AddWith.type.e8e] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } @@ -149,23 +149,23 @@ impl C as AddWith(C) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.b2d)] -// CHECK:STDOUT: %Self: %AddWith.type.b2d = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @AddWith(%T) [symbolic = %F.type (constants.%F.type.deb)] -// CHECK:STDOUT: %F: @AddWith.%F.type (%F.type.deb) = struct_value () [symbolic = %F (constants.%F.57a)] -// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @AddWith.%AddWith.type (%AddWith.type.b2d), @AddWith.%F.type (%F.type.deb) [symbolic = %F.assoc_type (constants.%F.assoc_type.cbf)] -// CHECK:STDOUT: %assoc0: @AddWith.%F.assoc_type (%F.assoc_type.cbf) = assoc_entity element0, imports.%import_ref.91c [symbolic = %assoc0 (constants.%assoc0.816)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.bc7)] +// CHECK:STDOUT: %Self: %AddWith.type.bc7 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @AddWith(%T) [symbolic = %F.type (constants.%F.type.fbc)] +// CHECK:STDOUT: %F: @AddWith.%F.type (%F.type.fbc) = struct_value () [symbolic = %F (constants.%F.be3)] +// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @AddWith.%AddWith.type (%AddWith.type.bc7), @AddWith.%F.type (%F.type.fbc) [symbolic = %F.assoc_type (constants.%F.assoc_type.f26)] +// CHECK:STDOUT: %assoc0: @AddWith.%F.assoc_type (%F.assoc_type.f26) = assoc_entity element0, imports.%import_ref.0c5 [symbolic = %assoc0 (constants.%assoc0.1ff)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.648 -// CHECK:STDOUT: .F = imports.%import_ref.8a8 -// CHECK:STDOUT: witness = (imports.%import_ref.70f) +// CHECK:STDOUT: .Self = imports.%import_ref.476 +// CHECK:STDOUT: .F = imports.%import_ref.ce5 +// CHECK:STDOUT: witness = (imports.%import_ref.b80) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref.loc7_6 as %AddWith.type { -// CHECK:STDOUT: %F.decl: %F.type.744 = fn_decl @F.2 [template = constants.%F.780] {} {} +// CHECK:STDOUT: %F.decl: %F.type.c09 = fn_decl @F.2 [template = constants.%F.e62] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -180,7 +180,7 @@ impl C as AddWith(C) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %AddWith.type.b2d) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %AddWith.type.bc7) [from "a.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -204,12 +204,12 @@ impl C as AddWith(C) { // CHECK:STDOUT: %T.patt => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.32b +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.e8e // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %F.type => constants.%F.type.47b -// CHECK:STDOUT: %F => constants.%F.000 -// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.13c -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d29 +// CHECK:STDOUT: %F.type => constants.%F.type.cd2 +// CHECK:STDOUT: %F => constants.%F.b58 +// CHECK:STDOUT: %F.assoc_type => constants.%F.assoc_type.c97 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.dc2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%C, constants.%AddWith.facet) {} diff --git a/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon b/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon index faf8a5cf6408..fb767100a6ff 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon @@ -51,38 +51,38 @@ interface A(T: type) {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NotGenericNoParams.type: type = facet_type <@NotGenericNoParams> [template] -// CHECK:STDOUT: %Self.d20: %NotGenericNoParams.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.238: %NotGenericNoParams.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %NotGenericButParams.type.f26: type = generic_interface_type @NotGenericButParams [template] // CHECK:STDOUT: %NotGenericButParams.generic: %NotGenericButParams.type.f26 = struct_value () [template] // CHECK:STDOUT: %NotGenericButParams.type.014: type = facet_type <@NotGenericButParams> [template] -// CHECK:STDOUT: %Self.68e: %NotGenericButParams.type.014 = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.43b: %NotGenericButParams.type.014 = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %GenericAndParams.type.cde: type = generic_interface_type @GenericAndParams.1 [template] // CHECK:STDOUT: %GenericAndParams.generic.827: %GenericAndParams.type.cde = struct_value () [template] -// CHECK:STDOUT: %GenericAndParams.type.74e: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%T)> [symbolic] -// CHECK:STDOUT: %Self.d71: %GenericAndParams.type.74e = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.73e: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%T)> [symbolic] +// CHECK:STDOUT: %Self.2f4: %GenericAndParams.type.73e = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.37e: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %GenericNoParams.type.835: type = facet_type <@GenericNoParams> [template] -// CHECK:STDOUT: %GenericNoParams.type.37b: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic] -// CHECK:STDOUT: %Self.b46: %GenericNoParams.type.37b = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %C.f2e: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %GenericNoParams.type.f90: type = facet_type <@GenericNoParams> [template] +// CHECK:STDOUT: %GenericNoParams.type.b79: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic] +// CHECK:STDOUT: %Self.0f6: %GenericNoParams.type.b79 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %GenericAndParams.type.2dc: type = generic_interface_type @GenericAndParams.2, @C(%T) [symbolic] -// CHECK:STDOUT: %GenericAndParams.generic.102: %GenericAndParams.type.2dc = struct_value () [symbolic] -// CHECK:STDOUT: %GenericAndParams.type.171: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%T, %U)> [symbolic] -// CHECK:STDOUT: %Self.7ac: %GenericAndParams.type.171 = bind_symbolic_name Self, 2 [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.597: type = generic_interface_type @GenericAndParams.2, @C(%T) [symbolic] +// CHECK:STDOUT: %GenericAndParams.generic.2ec: %GenericAndParams.type.597 = struct_value () [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.d96: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%T, %U)> [symbolic] +// CHECK:STDOUT: %Self.37a: %GenericAndParams.type.d96 = bind_symbolic_name Self, 2 [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %X: type = class_type @X [template] // CHECK:STDOUT: %impl_witness: = impl_witness () [template] -// CHECK:STDOUT: %GenericAndParams.type.d45: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%X)> [template] -// CHECK:STDOUT: %C.f9e: type = class_type @C, @C(%X) [template] -// CHECK:STDOUT: %GenericAndParams.type.e61: type = generic_interface_type @GenericAndParams.2, @C(%X) [template] -// CHECK:STDOUT: %GenericAndParams.generic.0a6: %GenericAndParams.type.e61 = struct_value () [template] -// CHECK:STDOUT: %GenericAndParams.type.43c: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%X, %X)> [template] +// CHECK:STDOUT: %GenericAndParams.type.4b6: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%X)> [template] +// CHECK:STDOUT: %C.fac: type = class_type @C, @C(%X) [template] +// CHECK:STDOUT: %GenericAndParams.type.425: type = generic_interface_type @GenericAndParams.2, @C(%X) [template] +// CHECK:STDOUT: %GenericAndParams.generic.b50: %GenericAndParams.type.425 = struct_value () [template] +// CHECK:STDOUT: %GenericAndParams.type.79c: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%X, %X)> [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -125,32 +125,32 @@ interface A(T: type) {} // CHECK:STDOUT: %X.ref.loc16_6: type = name_ref X, file.%X.decl [template = constants.%X] // CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.cde = name_ref GenericAndParams, file.%GenericAndParams.decl [template = constants.%GenericAndParams.generic.827] // CHECK:STDOUT: %X.ref.loc16_28: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(constants.%X)> [template = constants.%GenericAndParams.type.d45] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(constants.%X)> [template = constants.%GenericAndParams.type.4b6] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc16: = impl_witness () [template = constants.%impl_witness] // CHECK:STDOUT: impl_decl @impl.4 [template] {} { // CHECK:STDOUT: %X.ref.loc17_6: type = name_ref X, file.%X.decl [template = constants.%X] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %X.ref.loc17_13: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [template = constants.%C.f9e] -// CHECK:STDOUT: %GenericNoParams.ref: type = name_ref GenericNoParams, @C.%GenericNoParams.decl [template = constants.%GenericNoParams.type.835] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [template = constants.%C.fac] +// CHECK:STDOUT: %GenericNoParams.ref: type = name_ref GenericNoParams, @C.%GenericNoParams.decl [template = constants.%GenericNoParams.type.f90] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc17: = impl_witness () [template = constants.%impl_witness] // CHECK:STDOUT: impl_decl @impl.5 [template] {} { // CHECK:STDOUT: %X.ref.loc18_6: type = name_ref X, file.%X.decl [template = constants.%X] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %X.ref.loc18_13: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [template = constants.%C.f9e] -// CHECK:STDOUT: %.loc18: %GenericAndParams.type.e61 = specific_constant @C.%GenericAndParams.decl, @C(constants.%X) [template = constants.%GenericAndParams.generic.0a6] -// CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.e61 = name_ref GenericAndParams, %.loc18 [template = constants.%GenericAndParams.generic.0a6] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [template = constants.%C.fac] +// CHECK:STDOUT: %.loc18: %GenericAndParams.type.425 = specific_constant @C.%GenericAndParams.decl, @C(constants.%X) [template = constants.%GenericAndParams.generic.b50] +// CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.425 = name_ref GenericAndParams, %.loc18 [template = constants.%GenericAndParams.generic.b50] // CHECK:STDOUT: %X.ref.loc18_33: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(constants.%X, constants.%X)> [template = constants.%GenericAndParams.type.43c] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(constants.%X, constants.%X)> [template = constants.%GenericAndParams.type.79c] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc18: = impl_witness () [template = constants.%impl_witness] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NotGenericNoParams { -// CHECK:STDOUT: %Self: %NotGenericNoParams.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d20] +// CHECK:STDOUT: %Self: %NotGenericNoParams.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.238] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -158,7 +158,7 @@ interface A(T: type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NotGenericButParams { -// CHECK:STDOUT: %Self: %NotGenericButParams.type.014 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.68e] +// CHECK:STDOUT: %Self: %NotGenericButParams.type.014 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.43b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -170,11 +170,11 @@ interface A(T: type) {} // CHECK:STDOUT: %T.patt.loc6_28.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_28.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%T.loc6_28.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.74e)] -// CHECK:STDOUT: %Self.2: %GenericAndParams.type.74e = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.d71)] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%T.loc6_28.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.73e)] +// CHECK:STDOUT: %Self.2: %GenericAndParams.type.73e = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2f4)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @GenericAndParams.1.%GenericAndParams.type (%GenericAndParams.type.74e) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.d71)] +// CHECK:STDOUT: %Self.1: @GenericAndParams.1.%GenericAndParams.type (%GenericAndParams.type.73e) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2f4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -185,11 +185,11 @@ interface A(T: type) {} // CHECK:STDOUT: generic interface @GenericNoParams(@C.%T.loc8_9.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.37b)] -// CHECK:STDOUT: %Self.2: %GenericNoParams.type.37b = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.b46)] +// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.b79)] +// CHECK:STDOUT: %Self.2: %GenericNoParams.type.b79 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.0f6)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.37b) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.b46)] +// CHECK:STDOUT: %Self.1: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.b79) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.0f6)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -203,11 +203,11 @@ interface A(T: type) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%T, %U.loc10_30.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.171)] -// CHECK:STDOUT: %Self.2: %GenericAndParams.type.171 = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.7ac)] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%T, %U.loc10_30.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.d96)] +// CHECK:STDOUT: %Self.2: %GenericAndParams.type.d96 = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.37a)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @GenericAndParams.2.%GenericAndParams.type (%GenericAndParams.type.171) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.7ac)] +// CHECK:STDOUT: %Self.1: @GenericAndParams.2.%GenericAndParams.type (%GenericAndParams.type.d96) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.37a)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -245,12 +245,12 @@ interface A(T: type) {} // CHECK:STDOUT: %T.patt.loc8_9.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_9.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.2, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.2dc)] -// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.2dc) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.102)] +// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.2, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.597)] +// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.597) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.2ec)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %GenericNoParams.decl: type = interface_decl @GenericNoParams [template = constants.%GenericNoParams.type.835] {} {} -// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.2dc) = interface_decl @GenericAndParams.2 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.102)] { +// CHECK:STDOUT: %GenericNoParams.decl: type = interface_decl @GenericNoParams [template = constants.%GenericNoParams.type.f90] {} {} +// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.597) = interface_decl @GenericAndParams.2 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.2ec)] { // CHECK:STDOUT: %U.patt.loc10_30.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc10_30.2 (constants.%U.patt)] // CHECK:STDOUT: %U.param_patt: type = value_param_pattern %U.patt.loc10_30.1, runtime_param [symbolic = %U.patt.loc10_30.2 (constants.%U.patt)] // CHECK:STDOUT: } { @@ -260,7 +260,7 @@ interface A(T: type) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.37e +// CHECK:STDOUT: .Self = constants.%C.f2e // CHECK:STDOUT: .GenericNoParams = %GenericNoParams.decl // CHECK:STDOUT: .GenericAndParams = %GenericAndParams.decl // CHECK:STDOUT: complete_type_witness = %complete_type @@ -305,8 +305,8 @@ interface A(T: type) {} // CHECK:STDOUT: %T.patt.loc6_28.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.d45 -// CHECK:STDOUT: %Self.2 => constants.%Self.d71 +// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.4b6 +// CHECK:STDOUT: %Self.2 => constants.%Self.2f4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { @@ -314,8 +314,8 @@ interface A(T: type) {} // CHECK:STDOUT: %T.patt.loc8_9.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.e61 -// CHECK:STDOUT: %GenericAndParams.generic => constants.%GenericAndParams.generic.0a6 +// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.425 +// CHECK:STDOUT: %GenericAndParams.generic => constants.%GenericAndParams.generic.b50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.2(constants.%X, constants.%X) { @@ -324,8 +324,8 @@ interface A(T: type) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.43c -// CHECK:STDOUT: %Self.2 => constants.%Self.7ac +// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.79c +// CHECK:STDOUT: %Self.2 => constants.%Self.37a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_non_generic_implicit_params.carbon diff --git a/toolchain/check/testdata/interface/no_prelude/import.carbon b/toolchain/check/testdata/interface/no_prelude/import.carbon index 19d9b96aa14e..69c56f313bf5 100644 --- a/toolchain/check/testdata/interface/no_prelude/import.carbon +++ b/toolchain/check/testdata/interface/no_prelude/import.carbon @@ -52,23 +52,23 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [template] -// CHECK:STDOUT: %Self.e1a: %Empty.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.193: %Empty.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Basic.type: type = facet_type <@Basic> [template] -// CHECK:STDOUT: %Self.09c: %Basic.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.1c7: %Basic.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %assoc_type.6af: type = assoc_entity_type %Basic.type, type [template] // CHECK:STDOUT: %assoc0.d6f: %assoc_type.6af = assoc_entity element0, @Basic.%T [template] -// CHECK:STDOUT: %F.type.def: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.415: %F.type.def = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.4b0: type = assoc_entity_type %Basic.type, %F.type.def [template] -// CHECK:STDOUT: %assoc1.ffc: %F.assoc_type.4b0 = assoc_entity element1, @Basic.%F.decl [template] +// CHECK:STDOUT: %F.type.320: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.952: %F.type.320 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.94b: type = assoc_entity_type %Basic.type, %F.type.320 [template] +// CHECK:STDOUT: %assoc1.07d: %F.assoc_type.94b = assoc_entity element1, @Basic.%F.decl [template] // CHECK:STDOUT: %ForwardDeclared.type: type = facet_type <@ForwardDeclared> [template] -// CHECK:STDOUT: %Self.975: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.efa: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %assoc_type.3e8: type = assoc_entity_type %ForwardDeclared.type, type [template] // CHECK:STDOUT: %assoc0.bef: %assoc_type.3e8 = assoc_entity element0, @ForwardDeclared.%T [template] -// CHECK:STDOUT: %F.type.a8f: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.ef7: %F.type.a8f = struct_value () [template] -// CHECK:STDOUT: %F.assoc_type.cf5: type = assoc_entity_type %ForwardDeclared.type, %F.type.a8f [template] -// CHECK:STDOUT: %assoc1.763: %F.assoc_type.cf5 = assoc_entity element1, @ForwardDeclared.%F.decl [template] +// CHECK:STDOUT: %F.type.505: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.eb5: %F.type.505 = struct_value () [template] +// CHECK:STDOUT: %F.assoc_type.1e3: type = assoc_entity_type %ForwardDeclared.type, %F.type.505 [template] +// CHECK:STDOUT: %assoc1.ce8: %F.assoc_type.1e3 = assoc_entity element1, @ForwardDeclared.%F.decl [template] // CHECK:STDOUT: %struct_type.f.2f5: type = struct_type {.f: %ForwardDeclared.type} [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -87,7 +87,7 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty { -// CHECK:STDOUT: %Self: %Empty.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.e1a] +// CHECK:STDOUT: %Self: %Empty.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.193] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -95,11 +95,11 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Basic { -// CHECK:STDOUT: %Self: %Basic.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.09c] +// CHECK:STDOUT: %Self: %Basic.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.1c7] // CHECK:STDOUT: %T: type = assoc_const_decl T [template] // CHECK:STDOUT: %assoc0: %assoc_type.6af = assoc_entity element0, %T [template = constants.%assoc0.d6f] -// CHECK:STDOUT: %F.decl: %F.type.def = fn_decl @F.1 [template = constants.%F.415] {} {} -// CHECK:STDOUT: %assoc1: %F.assoc_type.4b0 = assoc_entity element1, %F.decl [template = constants.%assoc1.ffc] +// CHECK:STDOUT: %F.decl: %F.type.320 = fn_decl @F.1 [template = constants.%F.952] {} {} +// CHECK:STDOUT: %assoc1: %F.assoc_type.94b = assoc_entity element1, %F.decl [template = constants.%assoc1.07d] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -109,11 +109,11 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @ForwardDeclared { -// CHECK:STDOUT: %Self: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.975] +// CHECK:STDOUT: %Self: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.efa] // CHECK:STDOUT: %T: type = assoc_const_decl T [template] // CHECK:STDOUT: %assoc0: %assoc_type.3e8 = assoc_entity element0, %T [template = constants.%assoc0.bef] -// CHECK:STDOUT: %F.decl: %F.type.a8f = fn_decl @F.2 [template = constants.%F.ef7] {} {} -// CHECK:STDOUT: %assoc1: %F.assoc_type.cf5 = assoc_entity element1, %F.decl [template = constants.%assoc1.763] +// CHECK:STDOUT: %F.decl: %F.type.505 = fn_decl @F.2 [template = constants.%F.eb5] {} {} +// CHECK:STDOUT: %assoc1: %F.assoc_type.1e3 = assoc_entity element1, %F.decl [template = constants.%assoc1.ce8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -132,9 +132,9 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.09c) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.1c7) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.2(constants.%Self.975) {} +// CHECK:STDOUT: specific @F.2(constants.%Self.efa) {} // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon // CHECK:STDOUT: @@ -143,50 +143,50 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %UseEmpty.type: type = fn_type @UseEmpty [template] // CHECK:STDOUT: %UseEmpty: %UseEmpty.type = struct_value () [template] // CHECK:STDOUT: %Basic.type: type = facet_type <@Basic> [template] -// CHECK:STDOUT: %Self.09c: %Basic.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.1c7: %Basic.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %UseBasic.type: type = fn_type @UseBasic [template] // CHECK:STDOUT: %UseBasic: %UseBasic.type = struct_value () [template] // CHECK:STDOUT: %ForwardDeclared.type: type = facet_type <@ForwardDeclared> [template] -// CHECK:STDOUT: %Self.975: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.efa: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %UseForwardDeclared.type: type = fn_type @UseForwardDeclared [template] // CHECK:STDOUT: %UseForwardDeclared: %UseForwardDeclared.type = struct_value () [template] // CHECK:STDOUT: %assoc_type.6af: type = assoc_entity_type %Basic.type, type [template] // CHECK:STDOUT: %assoc0.1d6: %assoc_type.6af = assoc_entity element0, imports.%import_ref.ef4597.1 [template] -// CHECK:STDOUT: %F.type.def: type = fn_type @F.1 [template] -// CHECK:STDOUT: %F.assoc_type.4b0: type = assoc_entity_type %Basic.type, %F.type.def [template] -// CHECK:STDOUT: %assoc1.51a: %F.assoc_type.4b0 = assoc_entity element1, imports.%import_ref.9c3 [template] +// CHECK:STDOUT: %F.type.320: type = fn_type @F.1 [template] +// CHECK:STDOUT: %F.assoc_type.94b: type = assoc_entity_type %Basic.type, %F.type.320 [template] +// CHECK:STDOUT: %assoc1.d7b: %F.assoc_type.94b = assoc_entity element1, imports.%import_ref.0be [template] // CHECK:STDOUT: %assoc_type.3e8: type = assoc_entity_type %ForwardDeclared.type, type [template] // CHECK:STDOUT: %assoc0.910: %assoc_type.3e8 = assoc_entity element0, imports.%import_ref.ef4597.2 [template] -// CHECK:STDOUT: %F.type.a8f: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.assoc_type.cf5: type = assoc_entity_type %ForwardDeclared.type, %F.type.a8f [template] -// CHECK:STDOUT: %assoc1.975: %F.assoc_type.cf5 = assoc_entity element1, imports.%import_ref.9d1 [template] +// CHECK:STDOUT: %F.type.505: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.assoc_type.1e3: type = assoc_entity_type %ForwardDeclared.type, %F.type.505 [template] +// CHECK:STDOUT: %assoc1.68e: %F.assoc_type.1e3 = assoc_entity element1, imports.%import_ref.1cc [template] // CHECK:STDOUT: %ptr: type = ptr_type %ForwardDeclared.type [template] // CHECK:STDOUT: %struct_type.f.2f5: type = struct_type {.f: %ForwardDeclared.type} [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.db6: type = import_ref Main//a, Empty, loaded [template = constants.%Empty.type] -// CHECK:STDOUT: %import_ref.73d: type = import_ref Main//a, Basic, loaded [template = constants.%Basic.type] -// CHECK:STDOUT: %import_ref.1f1: type = import_ref Main//a, ForwardDeclared, loaded [template = constants.%ForwardDeclared.type] +// CHECK:STDOUT: %import_ref.4ea: type = import_ref Main//a, Empty, loaded [template = constants.%Empty.type] +// CHECK:STDOUT: %import_ref.4b7: type = import_ref Main//a, Basic, loaded [template = constants.%Basic.type] +// CHECK:STDOUT: %import_ref.e33: type = import_ref Main//a, ForwardDeclared, loaded [template = constants.%ForwardDeclared.type] // CHECK:STDOUT: %import_ref.2ac: ref %struct_type.f.2f5 = import_ref Main//a, f_ref, loaded -// CHECK:STDOUT: %import_ref.77a = import_ref Main//a, inst15 [no loc], unloaded -// CHECK:STDOUT: %import_ref.5e6 = import_ref Main//a, inst19 [no loc], unloaded +// CHECK:STDOUT: %import_ref.cc0 = import_ref Main//a, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.37f = import_ref Main//a, inst19 [no loc], unloaded // CHECK:STDOUT: %import_ref.42e: %assoc_type.6af = import_ref Main//a, loc8_15, loaded [template = constants.%assoc0.1d6] -// CHECK:STDOUT: %import_ref.52d: %F.assoc_type.4b0 = import_ref Main//a, loc9_9, loaded [template = constants.%assoc1.51a] +// CHECK:STDOUT: %import_ref.b06: %F.assoc_type.94b = import_ref Main//a, loc9_9, loaded [template = constants.%assoc1.d7b] // CHECK:STDOUT: %import_ref.08d600.1 = import_ref Main//a, T, unloaded -// CHECK:STDOUT: %import_ref.b85 = import_ref Main//a, F, unloaded -// CHECK:STDOUT: %import_ref.566 = import_ref Main//a, inst34 [no loc], unloaded +// CHECK:STDOUT: %import_ref.eea = import_ref Main//a, F, unloaded +// CHECK:STDOUT: %import_ref.52b = import_ref Main//a, inst34 [no loc], unloaded // CHECK:STDOUT: %import_ref.95f: %assoc_type.3e8 = import_ref Main//a, loc16_15, loaded [template = constants.%assoc0.910] -// CHECK:STDOUT: %import_ref.1d4: %F.assoc_type.cf5 = import_ref Main//a, loc17_9, loaded [template = constants.%assoc1.975] +// CHECK:STDOUT: %import_ref.7f1: %F.assoc_type.1e3 = import_ref Main//a, loc17_9, loaded [template = constants.%assoc1.68e] // CHECK:STDOUT: %import_ref.08d600.2 = import_ref Main//a, T, unloaded -// CHECK:STDOUT: %import_ref.c2e = import_ref Main//a, F, unloaded +// CHECK:STDOUT: %import_ref.5d0 = import_ref Main//a, F, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Empty = imports.%import_ref.db6 -// CHECK:STDOUT: .Basic = imports.%import_ref.73d -// CHECK:STDOUT: .ForwardDeclared = imports.%import_ref.1f1 +// CHECK:STDOUT: .Empty = imports.%import_ref.4ea +// CHECK:STDOUT: .Basic = imports.%import_ref.4b7 +// CHECK:STDOUT: .ForwardDeclared = imports.%import_ref.e33 // CHECK:STDOUT: .f_ref = imports.%import_ref.2ac // CHECK:STDOUT: .UseEmpty = %UseEmpty.decl // CHECK:STDOUT: .UseBasic = %UseBasic.decl @@ -203,7 +203,7 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %e.param_patt: %Empty.type = value_param_pattern %e.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %Empty.type = value_param runtime_param0 -// CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%import_ref.db6 [template = constants.%Empty.type] +// CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%import_ref.4ea [template = constants.%Empty.type] // CHECK:STDOUT: %e: %Empty.type = bind_name e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseBasic.decl: %UseBasic.type = fn_decl @UseBasic [template = constants.%UseBasic] { @@ -211,7 +211,7 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %e.param_patt: %Basic.type = value_param_pattern %e.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %Basic.type = value_param runtime_param0 -// CHECK:STDOUT: %Basic.ref: type = name_ref Basic, imports.%import_ref.73d [template = constants.%Basic.type] +// CHECK:STDOUT: %Basic.ref: type = name_ref Basic, imports.%import_ref.4b7 [template = constants.%Basic.type] // CHECK:STDOUT: %e: %Basic.type = bind_name e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseForwardDeclared.decl: %UseForwardDeclared.type = fn_decl @UseForwardDeclared [template = constants.%UseForwardDeclared] { @@ -219,45 +219,45 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %f.param_patt: %ForwardDeclared.type = value_param_pattern %f.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %f.param: %ForwardDeclared.type = value_param runtime_param0 -// CHECK:STDOUT: %ForwardDeclared.ref: type = name_ref ForwardDeclared, imports.%import_ref.1f1 [template = constants.%ForwardDeclared.type] +// CHECK:STDOUT: %ForwardDeclared.ref: type = name_ref ForwardDeclared, imports.%import_ref.e33 [template = constants.%ForwardDeclared.type] // CHECK:STDOUT: %f: %ForwardDeclared.type = bind_name f, %f.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Basic.ref.loc10: type = name_ref Basic, imports.%import_ref.73d [template = constants.%Basic.type] +// CHECK:STDOUT: %Basic.ref.loc10: type = name_ref Basic, imports.%import_ref.4b7 [template = constants.%Basic.type] // CHECK:STDOUT: %T.ref.loc10: %assoc_type.6af = name_ref T, imports.%import_ref.42e [template = constants.%assoc0.1d6] // CHECK:STDOUT: %UseBasicT: %assoc_type.6af = bind_alias UseBasicT, imports.%import_ref.42e [template = constants.%assoc0.1d6] -// CHECK:STDOUT: %Basic.ref.loc11: type = name_ref Basic, imports.%import_ref.73d [template = constants.%Basic.type] -// CHECK:STDOUT: %F.ref.loc11: %F.assoc_type.4b0 = name_ref F, imports.%import_ref.52d [template = constants.%assoc1.51a] -// CHECK:STDOUT: %UseBasicF: %F.assoc_type.4b0 = bind_alias UseBasicF, imports.%import_ref.52d [template = constants.%assoc1.51a] -// CHECK:STDOUT: %ForwardDeclared.ref.loc13: type = name_ref ForwardDeclared, imports.%import_ref.1f1 [template = constants.%ForwardDeclared.type] +// CHECK:STDOUT: %Basic.ref.loc11: type = name_ref Basic, imports.%import_ref.4b7 [template = constants.%Basic.type] +// CHECK:STDOUT: %F.ref.loc11: %F.assoc_type.94b = name_ref F, imports.%import_ref.b06 [template = constants.%assoc1.d7b] +// CHECK:STDOUT: %UseBasicF: %F.assoc_type.94b = bind_alias UseBasicF, imports.%import_ref.b06 [template = constants.%assoc1.d7b] +// CHECK:STDOUT: %ForwardDeclared.ref.loc13: type = name_ref ForwardDeclared, imports.%import_ref.e33 [template = constants.%ForwardDeclared.type] // CHECK:STDOUT: %T.ref.loc13: %assoc_type.3e8 = name_ref T, imports.%import_ref.95f [template = constants.%assoc0.910] // CHECK:STDOUT: %UseForwardDeclaredT: %assoc_type.3e8 = bind_alias UseForwardDeclaredT, imports.%import_ref.95f [template = constants.%assoc0.910] -// CHECK:STDOUT: %ForwardDeclared.ref.loc14: type = name_ref ForwardDeclared, imports.%import_ref.1f1 [template = constants.%ForwardDeclared.type] -// CHECK:STDOUT: %F.ref.loc14: %F.assoc_type.cf5 = name_ref F, imports.%import_ref.1d4 [template = constants.%assoc1.975] -// CHECK:STDOUT: %UseForwardDeclaredF: %F.assoc_type.cf5 = bind_alias UseForwardDeclaredF, imports.%import_ref.1d4 [template = constants.%assoc1.975] +// CHECK:STDOUT: %ForwardDeclared.ref.loc14: type = name_ref ForwardDeclared, imports.%import_ref.e33 [template = constants.%ForwardDeclared.type] +// CHECK:STDOUT: %F.ref.loc14: %F.assoc_type.1e3 = name_ref F, imports.%import_ref.7f1 [template = constants.%assoc1.68e] +// CHECK:STDOUT: %UseForwardDeclaredF: %F.assoc_type.1e3 = bind_alias UseForwardDeclaredF, imports.%import_ref.7f1 [template = constants.%assoc1.68e] // CHECK:STDOUT: %f.var: ref %ptr = var f // CHECK:STDOUT: %f: ref %ptr = bind_name f, %f.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.77a +// CHECK:STDOUT: .Self = imports.%import_ref.cc0 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Basic [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.5e6 +// CHECK:STDOUT: .Self = imports.%import_ref.37f // CHECK:STDOUT: .T = imports.%import_ref.42e -// CHECK:STDOUT: .F = imports.%import_ref.52d -// CHECK:STDOUT: witness = (imports.%import_ref.08d600.1, imports.%import_ref.b85) +// CHECK:STDOUT: .F = imports.%import_ref.b06 +// CHECK:STDOUT: witness = (imports.%import_ref.08d600.1, imports.%import_ref.eea) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @ForwardDeclared [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.566 +// CHECK:STDOUT: .Self = imports.%import_ref.52b // CHECK:STDOUT: .T = imports.%import_ref.95f -// CHECK:STDOUT: .F = imports.%import_ref.1d4 -// CHECK:STDOUT: witness = (imports.%import_ref.08d600.2, imports.%import_ref.c2e) +// CHECK:STDOUT: .F = imports.%import_ref.7f1 +// CHECK:STDOUT: witness = (imports.%import_ref.08d600.2, imports.%import_ref.5d0) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @UseEmpty(%e.param_patt: %Empty.type) { @@ -275,12 +275,12 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(constants.%Self.09c: %Basic.type) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @F.1(constants.%Self.1c7: %Basic.type) [from "a.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(constants.%Self.975: %ForwardDeclared.type) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @F.2(constants.%Self.efa: %ForwardDeclared.type) [from "a.carbon"] { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -294,7 +294,7 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.09c) {} +// CHECK:STDOUT: specific @F.1(constants.%Self.1c7) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.2(constants.%Self.975) {} +// CHECK:STDOUT: specific @F.2(constants.%Self.efa) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/import_access.carbon b/toolchain/check/testdata/interface/no_prelude/import_access.carbon index dfb40b61b04d..e728700732e6 100644 --- a/toolchain/check/testdata/interface/no_prelude/import_access.carbon +++ b/toolchain/check/testdata/interface/no_prelude/import_access.carbon @@ -200,13 +200,13 @@ private interface Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.72e: type = import_ref Test//def, Def, loaded [template = constants.%Def.type] -// CHECK:STDOUT: %import_ref.8da = import_ref Test//def, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.5e5: type = import_ref Test//def, Def, loaded [template = constants.%Def.type] +// CHECK:STDOUT: %import_ref.cd6 = import_ref Test//def, inst15 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Def [private] = imports.%import_ref.72e +// CHECK:STDOUT: .Def [private] = imports.%import_ref.5e5 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test @@ -216,14 +216,14 @@ private interface Redecl {} // CHECK:STDOUT: %i.param_patt: %Def.type = value_param_pattern %i.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: %Def.type = value_param runtime_param0 -// CHECK:STDOUT: %Def.ref: type = name_ref Def, imports.%import_ref.72e [template = constants.%Def.type] +// CHECK:STDOUT: %Def.ref: type = name_ref Def, imports.%import_ref.5e5 [template = constants.%Def.type] // CHECK:STDOUT: %i: %Def.type = bind_name i, %i.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Def [from "def.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.8da +// CHECK:STDOUT: .Self = imports.%import_ref.cd6 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: @@ -305,13 +305,13 @@ private interface Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.c44: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [template = constants.%ForwardWithDef.type] -// CHECK:STDOUT: %import_ref.2f8 = import_ref Test//forward_with_def, inst16 [no loc], unloaded +// CHECK:STDOUT: %import_ref.247: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [template = constants.%ForwardWithDef.type] +// CHECK:STDOUT: %import_ref.aa5 = import_ref Test//forward_with_def, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .ForwardWithDef [private] = imports.%import_ref.c44 +// CHECK:STDOUT: .ForwardWithDef [private] = imports.%import_ref.247 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test @@ -321,14 +321,14 @@ private interface Redecl {} // CHECK:STDOUT: %i.param_patt: %ForwardWithDef.type = value_param_pattern %i.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: %ForwardWithDef.type = value_param runtime_param0 -// CHECK:STDOUT: %ForwardWithDef.ref: type = name_ref ForwardWithDef, imports.%import_ref.c44 [template = constants.%ForwardWithDef.type] +// CHECK:STDOUT: %ForwardWithDef.ref: type = name_ref ForwardWithDef, imports.%import_ref.247 [template = constants.%ForwardWithDef.type] // CHECK:STDOUT: %i: %ForwardWithDef.type = bind_name i, %i.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @ForwardWithDef [from "forward_with_def.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.2f8 +// CHECK:STDOUT: .Self = imports.%import_ref.aa5 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/import_interface_decl.carbon b/toolchain/check/testdata/interface/no_prelude/import_interface_decl.carbon index 7ac5e21dc609..1a2e5878ac2f 100644 --- a/toolchain/check/testdata/interface/no_prelude/import_interface_decl.carbon +++ b/toolchain/check/testdata/interface/no_prelude/import_interface_decl.carbon @@ -95,15 +95,15 @@ impl library "[[@TEST_NAME]]"; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.dcd = import_ref Main//b, B, unloaded -// CHECK:STDOUT: %import_ref.a54 = import_ref Main//b, inst15 [no loc], unloaded +// CHECK:STDOUT: %import_ref.8b9 = import_ref Main//b, B, unloaded +// CHECK:STDOUT: %import_ref.420 = import_ref Main//b, inst15 [no loc], unloaded // CHECK:STDOUT: %import_ref.e5c: type = import_ref Main//b, loc6_7, loaded [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %import_ref.cc5: type = import_ref Main//b, loc6_12, loaded [template = constants.%B.type] +// CHECK:STDOUT: %import_ref.171: type = import_ref Main//b, loc6_12, loaded [template = constants.%B.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .B = imports.%import_ref.dcd +// CHECK:STDOUT: .B = imports.%import_ref.8b9 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc1_6.1 = import // CHECK:STDOUT: %default.import.loc1_6.2 = import @@ -111,9 +111,9 @@ impl library "[[@TEST_NAME]]"; // CHECK:STDOUT: // CHECK:STDOUT: interface @B [from "fail_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.a54 +// CHECK:STDOUT: .Self = imports.%import_ref.420 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: imports.%import_ref.e5c as imports.%import_ref.cc5 [from "fail_b.carbon"]; +// CHECK:STDOUT: impl @impl: imports.%import_ref.e5c as imports.%import_ref.171 [from "fail_b.carbon"]; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon index 52e4faaaa4dc..013d404dafd5 100644 --- a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon @@ -195,12 +195,12 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] // CHECK:STDOUT: %Foo.type.538: type = generic_interface_type @Foo [template] // CHECK:STDOUT: %Foo.generic: %Foo.type.538 = struct_value () [template] -// CHECK:STDOUT: %Foo.type.f3b: type = facet_type <@Foo, @Foo(%a)> [symbolic] -// CHECK:STDOUT: %Self.77c: %Foo.type.f3b = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo, @Foo(%a)> [symbolic] +// CHECK:STDOUT: %Self.a71: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Bar.type.982: type = generic_interface_type @Bar [template] // CHECK:STDOUT: %Bar.generic: %Bar.type.982 = struct_value () [template] -// CHECK:STDOUT: %Bar.type.95f: type = facet_type <@Bar, @Bar(%a)> [symbolic] -// CHECK:STDOUT: %Self.809: %Bar.type.95f = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Bar.type.6a9: type = facet_type <@Bar, @Bar(%a)> [symbolic] +// CHECK:STDOUT: %Self.cec: %Bar.type.6a9 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -252,11 +252,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc7_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc7_15.2)> [symbolic = %Foo.type (constants.%Foo.type.f3b)] -// CHECK:STDOUT: %Self.2: %Foo.type.f3b = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.77c)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc7_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Self.2: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a71)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.f3b) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.77c)] +// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a71)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -269,11 +269,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc10_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc10_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%a.loc10_15.2)> [symbolic = %Bar.type (constants.%Bar.type.95f)] -// CHECK:STDOUT: %Self.2: %Bar.type.95f = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.809)] +// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%a.loc10_15.2)> [symbolic = %Bar.type (constants.%Bar.type.6a9)] +// CHECK:STDOUT: %Self.2: %Bar.type.6a9 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cec)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Bar.%Bar.type (%Bar.type.95f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.809)] +// CHECK:STDOUT: %Self.1: @Bar.%Bar.type (%Bar.type.6a9) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cec)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -313,8 +313,8 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] // CHECK:STDOUT: %Foo.type.538: type = generic_interface_type @Foo [template] // CHECK:STDOUT: %Foo.generic: %Foo.type.538 = struct_value () [template] -// CHECK:STDOUT: %Foo.type.f3b: type = facet_type <@Foo, @Foo(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.f3b = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo, @Foo(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -346,11 +346,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc6_21.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_21.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_21.2)> [symbolic = %Foo.type (constants.%Foo.type.f3b)] -// CHECK:STDOUT: %Self.2: %Foo.type.f3b = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_21.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Self.2: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.f3b) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -385,8 +385,8 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [template] // CHECK:STDOUT: %.generic: %.type.abf = struct_value () [template] -// CHECK:STDOUT: %.type.c1d: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.c1d = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%a)> [symbolic] +// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -425,11 +425,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc14_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc14_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc14_15.2)> [symbolic = %.type (constants.%.type.c1d)] -// CHECK:STDOUT: %Self.2: %.type.c1d = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc14_15.2)> [symbolic = %.type (constants.%.type.0dd)] +// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.c1d) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -467,8 +467,8 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] // CHECK:STDOUT: %Foo.type.538: type = generic_interface_type @Foo [template] // CHECK:STDOUT: %Foo.generic: %Foo.type.538 = struct_value () [template] -// CHECK:STDOUT: %Foo.type.f3b: type = facet_type <@Foo, @Foo(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.f3b = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo, @Foo(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -500,11 +500,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc6_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_15.2)> [symbolic = %Foo.type (constants.%Foo.type.f3b)] -// CHECK:STDOUT: %Self.2: %Foo.type.f3b = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Self.2: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.f3b) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -613,31 +613,31 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type.abf52e.1: type = generic_interface_type @.1 [template] // CHECK:STDOUT: %.generic.0a9e18.1: %.type.abf52e.1 = struct_value () [template] -// CHECK:STDOUT: %.type.688: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self.30c: %.type.688 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.0ddd66.1: type = facet_type <@.1, @.1(%a)> [symbolic] +// CHECK:STDOUT: %Self.1b0707.1: %.type.0ddd66.1 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Bar.type: type = generic_interface_type @Bar [template] // CHECK:STDOUT: %Bar.generic: %Bar.type = struct_value () [template] // CHECK:STDOUT: %.type.abf52e.2: type = generic_interface_type @.2 [template] // CHECK:STDOUT: %.generic.0a9e18.2: %.type.abf52e.2 = struct_value () [template] -// CHECK:STDOUT: %.type.d20: type = facet_type <@.2, @.2(%a)> [symbolic] -// CHECK:STDOUT: %Self.e73: %.type.d20 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.0ddd66.2: type = facet_type <@.2, @.2(%a)> [symbolic] +// CHECK:STDOUT: %Self.1b0707.2: %.type.0ddd66.2 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//two_file, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.930: type = import_ref Main//two_file, D, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.2ee: %Foo.type = import_ref Main//two_file, Foo, loaded [template = constants.%Foo.generic] -// CHECK:STDOUT: %import_ref.620: %Bar.type = import_ref Main//two_file, Bar, loaded [template = constants.%Bar.generic] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//two_file, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.05a: type = import_ref Main//two_file, D, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.c61: %Foo.type = import_ref Main//two_file, Foo, loaded [template = constants.%Foo.generic] +// CHECK:STDOUT: %import_ref.feb: %Bar.type = import_ref Main//two_file, Bar, loaded [template = constants.%Bar.generic] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//two_file, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac -// CHECK:STDOUT: .D = imports.%import_ref.930 -// CHECK:STDOUT: .Foo = imports.%import_ref.2ee -// CHECK:STDOUT: .Bar = imports.%import_ref.620 +// CHECK:STDOUT: .C = imports.%import_ref.3b0 +// CHECK:STDOUT: .D = imports.%import_ref.05a +// CHECK:STDOUT: .Foo = imports.%import_ref.c61 +// CHECK:STDOUT: .Bar = imports.%import_ref.feb // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import @@ -646,7 +646,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc12_15.1, runtime_param [symbolic = %a.patt.loc12_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param runtime_param -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc12_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl.loc21: %.type.abf52e.2 = interface_decl @.2 [template = constants.%.generic.0a9e18.2] { @@ -654,7 +654,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc21_15.1, runtime_param [symbolic = %a.patt.loc21_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param runtime_param -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.930 [template = constants.%C] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.05a [template = constants.%C] // CHECK:STDOUT: %a.loc21_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc21_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -671,11 +671,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc12_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc12_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc12_15.2)> [symbolic = %.type (constants.%.type.688)] -// CHECK:STDOUT: %Self.2: %.type.688 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.30c)] +// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc12_15.2)> [symbolic = %.type (constants.%.type.0ddd66.1)] +// CHECK:STDOUT: %Self.2: %.type.0ddd66.1 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1b0707.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.688) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.30c)] +// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.0ddd66.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1b0707.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -695,11 +695,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc21_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc21_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.2, @.2(%a.loc21_15.2)> [symbolic = %.type (constants.%.type.d20)] -// CHECK:STDOUT: %Self.2: %.type.d20 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.e73)] +// CHECK:STDOUT: %.type: type = facet_type <@.2, @.2(%a.loc21_15.2)> [symbolic = %.type (constants.%.type.0ddd66.2)] +// CHECK:STDOUT: %Self.2: %.type.0ddd66.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1b0707.2)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.2.%.type (%.type.d20) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.e73)] +// CHECK:STDOUT: %Self.1: @.2.%.type (%.type.0ddd66.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1b0707.2)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -751,8 +751,8 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %b.patt: %C = symbolic_binding_pattern b, 0 [symbolic] // CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [template] // CHECK:STDOUT: %.generic: %.type.abf = struct_value () [template] -// CHECK:STDOUT: %.type.6ba: type = facet_type <@.1, @.1(%b)> [symbolic] -// CHECK:STDOUT: %Self: %.type.6ba = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%b)> [symbolic] +// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -794,11 +794,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %b.patt.loc15_15.2: %C = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc15_15.2 (constants.%b.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%b.loc15_15.2)> [symbolic = %.type (constants.%.type.6ba)] -// CHECK:STDOUT: %Self.2: %.type.6ba = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%b.loc15_15.2)> [symbolic = %.type (constants.%.type.0dd)] +// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.6ba) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -838,8 +838,8 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [template] // CHECK:STDOUT: %.generic: %.type.abf = struct_value () [template] -// CHECK:STDOUT: %.type.262: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.262 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%a)> [symbolic] +// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -881,11 +881,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc15_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc15_15.2)> [symbolic = %.type (constants.%.type.262)] -// CHECK:STDOUT: %Self.2: %.type.262 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc15_15.2)> [symbolic = %.type (constants.%.type.0dd)] +// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.262) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -925,8 +925,8 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [template] // CHECK:STDOUT: %.generic: %.type.abf = struct_value () [template] -// CHECK:STDOUT: %.type.262: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.262 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%a)> [symbolic] +// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -968,11 +968,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc15_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc15_15.2)> [symbolic = %.type (constants.%.type.262)] -// CHECK:STDOUT: %Self.2: %.type.262 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc15_15.2)> [symbolic = %.type (constants.%.type.0dd)] +// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.262) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -1060,27 +1060,27 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [template] // CHECK:STDOUT: %.generic: %.type.abf = struct_value () [template] -// CHECK:STDOUT: %.type.bc9: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.bc9 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%a)> [symbolic] +// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//alias_two_file, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.2ee: %Foo.type = import_ref Main//alias_two_file, Foo, loaded [template = constants.%Foo.generic] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//alias_two_file, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.c61: %Foo.type = import_ref Main//alias_two_file, Foo, loaded [template = constants.%Foo.generic] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//alias_two_file, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac -// CHECK:STDOUT: .Foo = imports.%import_ref.2ee +// CHECK:STDOUT: .C = imports.%import_ref.3b0 +// CHECK:STDOUT: .Foo = imports.%import_ref.c61 // CHECK:STDOUT: .D = %D // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: %.decl: %.type.abf = interface_decl @.1 [template = constants.%.generic] { // CHECK:STDOUT: %a.patt.loc17_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc17_15.2 (constants.%a.patt)] // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc17_15.1, runtime_param [symbolic = %a.patt.loc17_15.2 (constants.%a.patt)] @@ -1103,11 +1103,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc17_15.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc17_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc17_15.2)> [symbolic = %.type (constants.%.type.bc9)] -// CHECK:STDOUT: %Self.2: %.type.bc9 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc17_15.2)> [symbolic = %.type (constants.%.type.0dd)] +// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.bc9) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -1146,8 +1146,8 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [template] // CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [template] // CHECK:STDOUT: %.generic: %.type.abf = struct_value () [template] -// CHECK:STDOUT: %.type.baa: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.baa = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %.type.963: type = facet_type <@.1, @.1(%a)> [symbolic] +// CHECK:STDOUT: %Self: %.type.963 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1193,11 +1193,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt.loc17_15.2: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc17_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc17_15.2)> [symbolic = %.type (constants.%.type.baa)] -// CHECK:STDOUT: %Self.2: %.type.baa = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc17_15.2)> [symbolic = %.type (constants.%.type.963)] +// CHECK:STDOUT: %Self.2: %.type.963 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.baa) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.963) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 diff --git a/toolchain/check/testdata/interface/todo_define_not_default.carbon b/toolchain/check/testdata/interface/todo_define_not_default.carbon index dcdd2fba8d54..2368ca1e144a 100644 --- a/toolchain/check/testdata/interface/todo_define_not_default.carbon +++ b/toolchain/check/testdata/interface/todo_define_not_default.carbon @@ -23,11 +23,11 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type %I.type, %F.type [template] -// CHECK:STDOUT: %assoc0.389: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] +// CHECK:STDOUT: %assoc0.fa7: %F.assoc_type = assoc_entity element0, @I.%F.decl [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] @@ -35,25 +35,25 @@ interface I { // CHECK:STDOUT: %G.assoc_type: type = assoc_entity_type %I.type, %G.type [template] // CHECK:STDOUT: %assoc1: %G.assoc_type = assoc_entity element1, @I.%G.decl [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %assoc_type.579: type = assoc_entity_type %I.type, type [template] // CHECK:STDOUT: %assoc2: %assoc_type.579 = assoc_entity element2, @I.%T [template] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_42.b93: %i32 = int_value 42 [template] -// CHECK:STDOUT: %assoc_type.b2b: type = assoc_entity_type %I.type, %i32 [template] -// CHECK:STDOUT: %assoc3: %assoc_type.b2b = assoc_entity element3, @I.%N [template] +// CHECK:STDOUT: %int_42.c68: %i32 = int_value 42 [template] +// CHECK:STDOUT: %assoc_type.4fb: type = assoc_entity_type %I.type, %i32 [template] +// CHECK:STDOUT: %assoc3: %assoc_type.4fb = assoc_entity element3, @I.%N [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -69,9 +69,9 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} -// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0.389] +// CHECK:STDOUT: %assoc0: %F.assoc_type = assoc_entity element0, %F.decl [template = constants.%assoc0.fa7] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %a.patt: %i32 = binding_pattern a // CHECK:STDOUT: %a.param_patt: %i32 = value_param_pattern %a.patt, runtime_param0 @@ -103,18 +103,18 @@ interface I { // CHECK:STDOUT: %int_32.loc18_24: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc18_24: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc18_27: %tuple.type.24b = tuple_literal (%i32.loc18_19, %i32.loc18_24) -// CHECK:STDOUT: %.loc18_28: type = converted %.loc18_27, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc18_28: type = converted %.loc18_27, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: %T: type = assoc_const_decl T [template] // CHECK:STDOUT: %assoc2: %assoc_type.579 = assoc_entity element2, %T [template = constants.%assoc2] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [template = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_42, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_42) [template = constants.%int_42.b93] -// CHECK:STDOUT: %.loc19_19.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_42.b93] -// CHECK:STDOUT: %.loc19_19.2: %i32 = converted %int_42, %.loc19_19.1 [template = constants.%int_42.b93] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_42) [template = constants.%int_42.c68] +// CHECK:STDOUT: %.loc19_19.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_42.c68] +// CHECK:STDOUT: %.loc19_19.2: %i32 = converted %int_42, %.loc19_19.1 [template = constants.%int_42.c68] // CHECK:STDOUT: %N: %i32 = assoc_const_decl N [template] -// CHECK:STDOUT: %assoc3: %assoc_type.b2b = assoc_entity element3, %N [template = constants.%assoc3] +// CHECK:STDOUT: %assoc3: %assoc_type.4fb = assoc_entity element3, %N [template = constants.%assoc3] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -140,7 +140,7 @@ interface I { // CHECK:STDOUT: fn(%a.param_patt: %i32, %b.param_patt: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self.fb7) {} +// CHECK:STDOUT: specific @F(constants.%Self.826) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%Self.fb7) {} +// CHECK:STDOUT: specific @G(constants.%Self.826) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/ir/duplicate_name_same_line.carbon b/toolchain/check/testdata/ir/duplicate_name_same_line.carbon index 639ac43c4fe4..a1410ddb0fb8 100644 --- a/toolchain/check/testdata/ir/duplicate_name_same_line.carbon +++ b/toolchain/check/testdata/ir/duplicate_name_same_line.carbon @@ -19,23 +19,23 @@ fn A() { if (true) { var n: i32 = 1; } if (true) { var n: i32 = 2; } } // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -59,11 +59,11 @@ fn A() { if (true) { var n: i32 = 1; } if (true) { var n: i32 = 2; } } // CHECK:STDOUT: %n.var.loc11_26: ref %i32 = var n // CHECK:STDOUT: %n.loc11_26: ref %i32 = bind_name n, %n.var.loc11_26 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc11_36: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_36: = bound_method %int_1, %impl.elem0.loc11_36 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11_36: = specific_function %Convert.bound.loc11_36, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11_36: init %i32 = call %Convert.specific_fn.loc11_36(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_36: init %i32 = converted %int_1, %int.convert_checked.loc11_36 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc11_36: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_36: = bound_method %int_1, %impl.elem0.loc11_36 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11_36: = specific_function %Convert.bound.loc11_36, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11_36: init %i32 = call %Convert.specific_fn.loc11_36(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_36: init %i32 = converted %int_1, %int.convert_checked.loc11_36 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %n.var.loc11_26, %.loc11_36 // CHECK:STDOUT: br !if.else.loc11_18 // CHECK:STDOUT: @@ -75,11 +75,11 @@ fn A() { if (true) { var n: i32 = 1; } if (true) { var n: i32 = 2; } } // CHECK:STDOUT: %n.var.loc11_56: ref %i32 = var n // CHECK:STDOUT: %n.loc11_56: ref %i32 = bind_name n, %n.var.loc11_56 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc11_66: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_66: = bound_method %int_2, %impl.elem0.loc11_66 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_66: = specific_function %Convert.bound.loc11_66, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_66: init %i32 = call %Convert.specific_fn.loc11_66(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_66: init %i32 = converted %int_2, %int.convert_checked.loc11_66 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc11_66: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_66: = bound_method %int_2, %impl.elem0.loc11_66 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_66: = specific_function %Convert.bound.loc11_66, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_66: init %i32 = call %Convert.specific_fn.loc11_66(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_66: init %i32 = converted %int_2, %int.convert_checked.loc11_66 [template = constants.%int_2.ef8] // CHECK:STDOUT: assign %n.var.loc11_56, %.loc11_66 // CHECK:STDOUT: br !if.else.loc11_48 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 368d6f546112..f5087c6b84af 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -294,9 +294,9 @@ impl i32 as Empty { // CHECK:STDOUT: %tuple.type.bcd: type = tuple_type (%empty_tuple.type, %empty_tuple.type) [template] // CHECK:STDOUT: %tuple.d8f: %tuple.type.bcd = tuple_value (%empty_tuple, %empty_tuple) [template] // CHECK:STDOUT: %c: %tuple.type.bcd = bind_symbolic_name c, 1 [symbolic] -// CHECK:STDOUT: %tuple.elem0.98f: %empty_tuple.type = tuple_access %b, element0 [symbolic] +// CHECK:STDOUT: %tuple.elem0.af8: %empty_tuple.type = tuple_access %b, element0 [symbolic] // CHECK:STDOUT: %tuple.f41: %tuple.type.9fb = tuple_value (%empty_tuple) [template] -// CHECK:STDOUT: %tuple.elem0.11f: %empty_tuple.type = tuple_access %c, element0 [symbolic] +// CHECK:STDOUT: %tuple.elem0.eaf: %empty_tuple.type = tuple_access %c, element0 [symbolic] // CHECK:STDOUT: %tuple.elem1: %empty_tuple.type = tuple_access %c, element1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -363,8 +363,8 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %c.loc11_9.2: %tuple.type.bcd = bind_symbolic_name c, 1 [symbolic = %c.loc11_9.2 (constants.%c)] -// CHECK:STDOUT: %tuple.elem0.loc14_21.3: %empty_tuple.type = tuple_access %b.loc10_8.1, element0 [symbolic = %tuple.elem0.loc14_21.3 (constants.%tuple.elem0.98f)] -// CHECK:STDOUT: %tuple.elem0.loc15_24.3: %empty_tuple.type = tuple_access %c.loc11_9.2, element0 [symbolic = %tuple.elem0.loc15_24.3 (constants.%tuple.elem0.11f)] +// CHECK:STDOUT: %tuple.elem0.loc14_21.3: %empty_tuple.type = tuple_access %b.loc10_8.1, element0 [symbolic = %tuple.elem0.loc14_21.3 (constants.%tuple.elem0.af8)] +// CHECK:STDOUT: %tuple.elem0.loc15_24.3: %empty_tuple.type = tuple_access %c.loc11_9.2, element0 [symbolic = %tuple.elem0.loc15_24.3 (constants.%tuple.elem0.eaf)] // CHECK:STDOUT: %tuple.elem1.loc15_24.3: %empty_tuple.type = tuple_access %c.loc11_9.2, element1 [symbolic = %tuple.elem1.loc15_24.3 (constants.%tuple.elem1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%b.param_patt: %tuple.type.9fb) { @@ -388,7 +388,7 @@ impl i32 as Empty { // CHECK:STDOUT: %b1.var: ref %tuple.type.9fb = var b1 // CHECK:STDOUT: %b1: ref %tuple.type.9fb = bind_name b1, %b1.var // CHECK:STDOUT: %b.ref: %tuple.type.9fb = name_ref b, %b.loc10_8.2 [symbolic = %b.loc10_8.1 (constants.%b)] -// CHECK:STDOUT: %tuple.elem0.loc14_21.1: %empty_tuple.type = tuple_access %b.ref, element0 [symbolic = %tuple.elem0.loc14_21.3 (constants.%tuple.elem0.98f)] +// CHECK:STDOUT: %tuple.elem0.loc14_21.1: %empty_tuple.type = tuple_access %b.ref, element0 [symbolic = %tuple.elem0.loc14_21.3 (constants.%tuple.elem0.af8)] // CHECK:STDOUT: %tuple.elem0.loc14_21.2: ref %empty_tuple.type = tuple_access %b1.var, element0 // CHECK:STDOUT: %.loc14_21.1: init %empty_tuple.type = tuple_init () to %tuple.elem0.loc14_21.2 [template = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_21.2: init %empty_tuple.type = converted %tuple.elem0.loc14_21.1, %.loc14_21.1 [template = constants.%empty_tuple] @@ -398,7 +398,7 @@ impl i32 as Empty { // CHECK:STDOUT: %c1.var: ref %tuple.type.bcd = var c1 // CHECK:STDOUT: %c1: ref %tuple.type.bcd = bind_name c1, %c1.var // CHECK:STDOUT: %c.ref: %tuple.type.bcd = name_ref c, %c.loc11_9.1 [symbolic = %c.loc11_9.2 (constants.%c)] -// CHECK:STDOUT: %tuple.elem0.loc15_24.1: %empty_tuple.type = tuple_access %c.ref, element0 [symbolic = %tuple.elem0.loc15_24.3 (constants.%tuple.elem0.11f)] +// CHECK:STDOUT: %tuple.elem0.loc15_24.1: %empty_tuple.type = tuple_access %c.ref, element0 [symbolic = %tuple.elem0.loc15_24.3 (constants.%tuple.elem0.eaf)] // CHECK:STDOUT: %tuple.elem0.loc15_24.2: ref %empty_tuple.type = tuple_access %c1.var, element0 // CHECK:STDOUT: %.loc15_24.1: init %empty_tuple.type = tuple_init () to %tuple.elem0.loc15_24.2 [template = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_24.2: init %empty_tuple.type = converted %tuple.elem0.loc15_24.1, %.loc15_24.1 [template = constants.%empty_tuple] @@ -500,20 +500,20 @@ impl i32 as Empty { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %Zero: %i32 = bind_symbolic_name Zero, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -539,12 +539,12 @@ impl i32 as Empty { // CHECK:STDOUT: fn @F() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc5_21.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc5_21.2: %i32 = converted %int_0, %.loc5_21.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc5_21.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc5_21.2: %i32 = converted %int_0, %.loc5_21.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %Zero: %i32 = bind_symbolic_name Zero, 0, %.loc5_21.2 [symbolic = constants.%Zero] // CHECK:STDOUT: %Zero.ref: %i32 = name_ref Zero, %Zero [symbolic = constants.%Zero] // CHECK:STDOUT: return %Zero.ref @@ -559,24 +559,24 @@ impl i32 as Empty { // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %Zero: %i32 = bind_symbolic_name Zero, 0 [symbolic] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -606,24 +606,24 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc6: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc6: = bound_method %int_0, %impl.elem0.loc6 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc6: = specific_function %Convert.bound.loc6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %Convert.specific_fn.loc6(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_23.1: %i32 = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_23.2: %i32 = converted %int_0, %.loc6_23.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc6: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc6: = bound_method %int_0, %impl.elem0.loc6 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc6: = specific_function %Convert.bound.loc6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %Convert.specific_fn.loc6(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_23.1: %i32 = value_of_initializer %int.convert_checked.loc6 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_23.2: %i32 = converted %int_0, %.loc6_23.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %Zero: %i32 = bind_symbolic_name Zero, 0, %.loc6_23.2 [symbolic = constants.%Zero] // CHECK:STDOUT: %Zero.ref: %i32 = name_ref Zero, %Zero [symbolic = constants.%Zero] // CHECK:STDOUT: return %Zero.ref // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc9: = bound_method %int_1, %impl.elem0.loc9 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc9: = specific_function %Convert.bound.loc9, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc9: init %i32 = call %Convert.specific_fn.loc9(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc9_11.1: %i32 = value_of_initializer %int.convert_checked.loc9 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc9_11.2: %i32 = converted %int_1, %.loc9_11.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc9: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc9: = bound_method %int_1, %impl.elem0.loc9 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc9: = specific_function %Convert.bound.loc9, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc9: init %i32 = call %Convert.specific_fn.loc9(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc9_11.1: %i32 = value_of_initializer %int.convert_checked.loc9 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc9_11.2: %i32 = converted %int_1, %.loc9_11.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: return %.loc9_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -631,7 +631,7 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %assoc_type: type = assoc_entity_type %I.type, type [template] @@ -644,8 +644,8 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -661,7 +661,7 @@ impl i32 as Empty { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %T: type = assoc_const_decl T [template] @@ -689,7 +689,7 @@ impl i32 as Empty { // CHECK:STDOUT: fn() -> ; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self.fb7) {} +// CHECK:STDOUT: specific @F(constants.%Self.826) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_return_in_class.carbon // CHECK:STDOUT: @@ -705,7 +705,7 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -754,7 +754,7 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -791,24 +791,24 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [template] -// CHECK:STDOUT: %Self.e1a: %Empty.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.193: %Empty.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %impl_witness.1bc: = impl_witness () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -830,7 +830,7 @@ impl i32 as Empty { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty { -// CHECK:STDOUT: %Self: %Empty.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.e1a] +// CHECK:STDOUT: %Self: %Empty.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.193] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -839,12 +839,12 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %i32 as %Empty.ref { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc10_21.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc10_21.2: %i32 = converted %int_0, %.loc10_21.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc10_21.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc10_21.2: %i32 = converted %int_0, %.loc10_21.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %Zero: %i32 = bind_name Zero, %.loc10_21.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/let/convert.carbon b/toolchain/check/testdata/let/convert.carbon index c98ee0460d2c..647f64b1b93d 100644 --- a/toolchain/check/testdata/let/convert.carbon +++ b/toolchain/check/testdata/let/convert.carbon @@ -22,31 +22,31 @@ fn F() -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %tuple.type.dc6: type = tuple_type (%i32, %i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.189: type = tuple_type (%i32, %i32, %i32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %tuple: %tuple.type.dc6 = tuple_value (%int_1.c60, %int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %tuple: %tuple.type.189 = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -71,47 +71,47 @@ fn F() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %tuple.type.dc6 = var v -// CHECK:STDOUT: %v: ref %tuple.type.dc6 = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref %tuple.type.189 = var v +// CHECK:STDOUT: %v: ref %tuple.type.189 = bind_name v, %v.var // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc12_36.1: %tuple.type.37f = tuple_literal (%int_1.loc12, %int_2, %int_3) -// CHECK:STDOUT: %impl.elem0.loc12_36.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_36.1: = bound_method %int_1.loc12, %impl.elem0.loc12_36.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc12_36.1: = specific_function %Convert.bound.loc12_36.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc12_36.1: init %i32 = call %Convert.specific_fn.loc12_36.1(%int_1.loc12) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_36.2: init %i32 = converted %int_1.loc12, %int.convert_checked.loc12_36.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc12_36.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_36.1: = bound_method %int_1.loc12, %impl.elem0.loc12_36.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc12_36.1: = specific_function %Convert.bound.loc12_36.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc12_36.1: init %i32 = call %Convert.specific_fn.loc12_36.1(%int_1.loc12) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_36.2: init %i32 = converted %int_1.loc12, %int.convert_checked.loc12_36.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc12: ref %i32 = tuple_access %v.var, element0 -// CHECK:STDOUT: %.loc12_36.3: init %i32 = initialize_from %.loc12_36.2 to %tuple.elem0.loc12 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc12_36.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_36.2: = bound_method %int_2, %impl.elem0.loc12_36.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc12_36.2: = specific_function %Convert.bound.loc12_36.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc12_36.2: init %i32 = call %Convert.specific_fn.loc12_36.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_36.4: init %i32 = converted %int_2, %int.convert_checked.loc12_36.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc12_36.3: init %i32 = initialize_from %.loc12_36.2 to %tuple.elem0.loc12 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc12_36.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_36.2: = bound_method %int_2, %impl.elem0.loc12_36.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc12_36.2: = specific_function %Convert.bound.loc12_36.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc12_36.2: init %i32 = call %Convert.specific_fn.loc12_36.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_36.4: init %i32 = converted %int_2, %int.convert_checked.loc12_36.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1.loc12: ref %i32 = tuple_access %v.var, element1 -// CHECK:STDOUT: %.loc12_36.5: init %i32 = initialize_from %.loc12_36.4 to %tuple.elem1.loc12 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc12_36.3: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_36.3: = bound_method %int_3, %impl.elem0.loc12_36.3 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc12_36.3: = specific_function %Convert.bound.loc12_36.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc12_36.3: init %i32 = call %Convert.specific_fn.loc12_36.3(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc12_36.6: init %i32 = converted %int_3, %int.convert_checked.loc12_36.3 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc12_36.5: init %i32 = initialize_from %.loc12_36.4 to %tuple.elem1.loc12 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc12_36.3: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_36.3: = bound_method %int_3, %impl.elem0.loc12_36.3 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc12_36.3: = specific_function %Convert.bound.loc12_36.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc12_36.3: init %i32 = call %Convert.specific_fn.loc12_36.3(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc12_36.6: init %i32 = converted %int_3, %int.convert_checked.loc12_36.3 [template = constants.%int_3.822] // CHECK:STDOUT: %tuple.elem2.loc12: ref %i32 = tuple_access %v.var, element2 -// CHECK:STDOUT: %.loc12_36.7: init %i32 = initialize_from %.loc12_36.6 to %tuple.elem2.loc12 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc12_36.8: init %tuple.type.dc6 = tuple_init (%.loc12_36.3, %.loc12_36.5, %.loc12_36.7) to %v.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc12_37: init %tuple.type.dc6 = converted %.loc12_36.1, %.loc12_36.8 [template = constants.%tuple] +// CHECK:STDOUT: %.loc12_36.7: init %i32 = initialize_from %.loc12_36.6 to %tuple.elem2.loc12 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc12_36.8: init %tuple.type.189 = tuple_init (%.loc12_36.3, %.loc12_36.5, %.loc12_36.7) to %v.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc12_37: init %tuple.type.189 = converted %.loc12_36.1, %.loc12_36.8 [template = constants.%tuple] // CHECK:STDOUT: assign %v.var, %.loc12_37 -// CHECK:STDOUT: %v.ref: ref %tuple.type.dc6 = name_ref v, %v +// CHECK:STDOUT: %v.ref: ref %tuple.type.189 = name_ref v, %v // CHECK:STDOUT: %tuple.elem0.loc14: ref %i32 = tuple_access %v.ref, element0 // CHECK:STDOUT: %.loc14_28.1: %i32 = bind_value %tuple.elem0.loc14 // CHECK:STDOUT: %tuple.elem1.loc14: ref %i32 = tuple_access %v.ref, element1 // CHECK:STDOUT: %.loc14_28.2: %i32 = bind_value %tuple.elem1.loc14 // CHECK:STDOUT: %tuple.elem2.loc14: ref %i32 = tuple_access %v.ref, element2 // CHECK:STDOUT: %.loc14_28.3: %i32 = bind_value %tuple.elem2.loc14 -// CHECK:STDOUT: %tuple: %tuple.type.dc6 = tuple_value (%.loc14_28.1, %.loc14_28.2, %.loc14_28.3) -// CHECK:STDOUT: %.loc14_29: %tuple.type.dc6 = converted %v.ref, %tuple -// CHECK:STDOUT: %w: %tuple.type.dc6 = bind_name w, %.loc14_29 -// CHECK:STDOUT: %w.ref: %tuple.type.dc6 = name_ref w, %w +// CHECK:STDOUT: %tuple: %tuple.type.189 = tuple_value (%.loc14_28.1, %.loc14_28.2, %.loc14_28.3) +// CHECK:STDOUT: %.loc14_29: %tuple.type.189 = converted %v.ref, %tuple +// CHECK:STDOUT: %w: %tuple.type.189 = bind_name w, %.loc14_29 +// CHECK:STDOUT: %w.ref: %tuple.type.189 = name_ref w, %w // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %tuple.elem1.loc15: %i32 = tuple_access %w.ref, element1 // CHECK:STDOUT: return %tuple.elem1.loc15 diff --git a/toolchain/check/testdata/let/fail_duplicate_decl.carbon b/toolchain/check/testdata/let/fail_duplicate_decl.carbon index c4db424ed269..2152f9a6e449 100644 --- a/toolchain/check/testdata/let/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/let/fail_duplicate_decl.carbon @@ -27,23 +27,23 @@ fn F() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -61,20 +61,20 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_1, %impl.elem0.loc12 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_17.1: %i32 = value_of_initializer %int.convert_checked.loc12 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_17.2: %i32 = converted %int_1, %.loc12_17.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_1, %impl.elem0.loc12 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_17.1: %i32 = value_of_initializer %int.convert_checked.loc12 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_17.2: %i32 = converted %int_1, %.loc12_17.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %a.loc12: %i32 = bind_name a, %.loc12_17.2 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc19: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc19: = bound_method %int_2, %impl.elem0.loc19 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc19: = specific_function %Convert.bound.loc19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %Convert.specific_fn.loc19(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc19_17.1: %i32 = value_of_initializer %int.convert_checked.loc19 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc19_17.2: %i32 = converted %int_2, %.loc19_17.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc19: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc19: = bound_method %int_2, %impl.elem0.loc19 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc19: = specific_function %Convert.bound.loc19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %Convert.specific_fn.loc19(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc19_17.1: %i32 = value_of_initializer %int.convert_checked.loc19 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc19_17.2: %i32 = converted %int_2, %.loc19_17.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %a.loc19: %i32 = bind_name a, %.loc19_17.2 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/fail_generic.carbon b/toolchain/check/testdata/let/fail_generic.carbon index caf51d1ee36d..fae1d380b615 100644 --- a/toolchain/check/testdata/let/fail_generic.carbon +++ b/toolchain/check/testdata/let/fail_generic.carbon @@ -41,8 +41,8 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/fail_generic_import.carbon b/toolchain/check/testdata/let/fail_generic_import.carbon index bed980befac9..c3ce359334aa 100644 --- a/toolchain/check/testdata/let/fail_generic_import.carbon +++ b/toolchain/check/testdata/let/fail_generic_import.carbon @@ -37,7 +37,7 @@ let a: T = 0; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/fail_missing_value.carbon b/toolchain/check/testdata/let/fail_missing_value.carbon index b06b5490a628..54376f6ddd7d 100644 --- a/toolchain/check/testdata/let/fail_missing_value.carbon +++ b/toolchain/check/testdata/let/fail_missing_value.carbon @@ -32,7 +32,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/fail_modifiers.carbon b/toolchain/check/testdata/let/fail_modifiers.carbon index f69d22eed109..9628dca16c74 100644 --- a/toolchain/check/testdata/let/fail_modifiers.carbon +++ b/toolchain/check/testdata/let/fail_modifiers.carbon @@ -89,19 +89,19 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -125,68 +125,68 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc15: = bound_method %int_1.loc15, %impl.elem0.loc15 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc15: = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_1.loc15) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_25.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_25.2: %i32 = converted %int_1.loc15, %.loc15_25.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%int_1.loc15) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_25.1: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_25.2: %i32 = converted %int_1.loc15, %.loc15_25.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %b: %i32 = bind_name b, %.loc15_25.2 // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc21: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc21: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc21: = bound_method %int_1.loc21, %impl.elem0.loc21 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc21: = specific_function %Convert.bound.loc21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %Convert.specific_fn.loc21(%int_1.loc21) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc21_23.1: %i32 = value_of_initializer %int.convert_checked.loc21 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc21_23.2: %i32 = converted %int_1.loc21, %.loc21_23.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %Convert.specific_fn.loc21(%int_1.loc21) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc21_23.1: %i32 = value_of_initializer %int.convert_checked.loc21 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc21_23.2: %i32 = converted %int_1.loc21, %.loc21_23.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %c: %i32 = bind_name c, %.loc21_23.2 // CHECK:STDOUT: %int_1.loc27: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc27: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc27: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc27: = bound_method %int_1.loc27, %impl.elem0.loc27 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc27: = specific_function %Convert.bound.loc27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %Convert.specific_fn.loc27(%int_1.loc27) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc27_21.1: %i32 = value_of_initializer %int.convert_checked.loc27 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc27_21.2: %i32 = converted %int_1.loc27, %.loc27_21.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %Convert.specific_fn.loc27(%int_1.loc27) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc27_21.1: %i32 = value_of_initializer %int.convert_checked.loc27 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc27_21.2: %i32 = converted %int_1.loc27, %.loc27_21.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %d: %i32 = bind_name d, %.loc27_21.2 // CHECK:STDOUT: %int_1.loc33: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc33: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc33: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc33: = bound_method %int_1.loc33, %impl.elem0.loc33 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc33: = specific_function %Convert.bound.loc33, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc33: init %i32 = call %Convert.specific_fn.loc33(%int_1.loc33) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc33_23.1: %i32 = value_of_initializer %int.convert_checked.loc33 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc33_23.2: %i32 = converted %int_1.loc33, %.loc33_23.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc33: init %i32 = call %Convert.specific_fn.loc33(%int_1.loc33) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc33_23.1: %i32 = value_of_initializer %int.convert_checked.loc33 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc33_23.2: %i32 = converted %int_1.loc33, %.loc33_23.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %e: %i32 = bind_name e, %.loc33_23.2 // CHECK:STDOUT: %int_1.loc46: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc46: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc46: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc46: = bound_method %int_1.loc46, %impl.elem0.loc46 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc46: = specific_function %Convert.bound.loc46, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc46: init %i32 = call %Convert.specific_fn.loc46(%int_1.loc46) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc46_29.1: %i32 = value_of_initializer %int.convert_checked.loc46 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc46_29.2: %i32 = converted %int_1.loc46, %.loc46_29.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc46: init %i32 = call %Convert.specific_fn.loc46(%int_1.loc46) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc46_29.1: %i32 = value_of_initializer %int.convert_checked.loc46 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc46_29.2: %i32 = converted %int_1.loc46, %.loc46_29.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %f: %i32 = bind_name f, %.loc46_29.2 // CHECK:STDOUT: %int_1.loc59: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc59: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc59: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc59: = bound_method %int_1.loc59, %impl.elem0.loc59 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc59: = specific_function %Convert.bound.loc59, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc59: init %i32 = call %Convert.specific_fn.loc59(%int_1.loc59) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc59_31.1: %i32 = value_of_initializer %int.convert_checked.loc59 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc59_31.2: %i32 = converted %int_1.loc59, %.loc59_31.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc59: init %i32 = call %Convert.specific_fn.loc59(%int_1.loc59) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc59_31.1: %i32 = value_of_initializer %int.convert_checked.loc59 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc59_31.2: %i32 = converted %int_1.loc59, %.loc59_31.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %g: %i32 = bind_name g, %.loc59_31.2 // CHECK:STDOUT: %int_1.loc72: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc72: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc72: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc72: = bound_method %int_1.loc72, %impl.elem0.loc72 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc72: = specific_function %Convert.bound.loc72, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc72: init %i32 = call %Convert.specific_fn.loc72(%int_1.loc72) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc72_33.1: %i32 = value_of_initializer %int.convert_checked.loc72 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc72_33.2: %i32 = converted %int_1.loc72, %.loc72_33.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc72: init %i32 = call %Convert.specific_fn.loc72(%int_1.loc72) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc72_33.1: %i32 = value_of_initializer %int.convert_checked.loc72 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc72_33.2: %i32 = converted %int_1.loc72, %.loc72_33.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %h: %i32 = bind_name h, %.loc72_33.2 // CHECK:STDOUT: %int_1.loc84: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc84: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc84: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc84: = bound_method %int_1.loc84, %impl.elem0.loc84 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc84: = specific_function %Convert.bound.loc84, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc84: init %i32 = call %Convert.specific_fn.loc84(%int_1.loc84) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc84_35.1: %i32 = value_of_initializer %int.convert_checked.loc84 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc84_35.2: %i32 = converted %int_1.loc84, %.loc84_35.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked.loc84: init %i32 = call %Convert.specific_fn.loc84(%int_1.loc84) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc84_35.1: %i32 = value_of_initializer %int.convert_checked.loc84 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc84_35.2: %i32 = converted %int_1.loc84, %.loc84_35.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %i: %i32 = bind_name i, %.loc84_35.2 // CHECK:STDOUT: return // 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 694286c0df50..51f4d97f4567 100644 --- a/toolchain/check/testdata/let/fail_use_in_init.carbon +++ b/toolchain/check/testdata/let/fail_use_in_init.carbon @@ -26,7 +26,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/generic.carbon b/toolchain/check/testdata/let/generic.carbon index 62fbb0dadc29..f7d9f59c8a90 100644 --- a/toolchain/check/testdata/let/generic.carbon +++ b/toolchain/check/testdata/let/generic.carbon @@ -27,7 +27,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/generic_import.carbon b/toolchain/check/testdata/let/generic_import.carbon index 6d1b4b35e407..b3814e73a7e2 100644 --- a/toolchain/check/testdata/let/generic_import.carbon +++ b/toolchain/check/testdata/let/generic_import.carbon @@ -41,7 +41,7 @@ var b: T = *a; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/global.carbon b/toolchain/check/testdata/let/global.carbon index 6d42d47506ac..32929b1d3d1b 100644 --- a/toolchain/check/testdata/let/global.carbon +++ b/toolchain/check/testdata/let/global.carbon @@ -18,21 +18,21 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -65,12 +65,12 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_15.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_15.2: %i32 = converted %int_1, %.loc11_15.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_15.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_15.2: %i32 = converted %int_1, %.loc11_15.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %n: %i32 = bind_name n, %.loc11_15.2 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/local.carbon b/toolchain/check/testdata/let/local.carbon index c7d73530a65a..1ae64c020b2b 100644 --- a/toolchain/check/testdata/let/local.carbon +++ b/toolchain/check/testdata/let/local.carbon @@ -24,7 +24,7 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/shadowed_decl.carbon b/toolchain/check/testdata/let/shadowed_decl.carbon index a26ed2d6a209..e7e5f185dbc7 100644 --- a/toolchain/check/testdata/let/shadowed_decl.carbon +++ b/toolchain/check/testdata/let/shadowed_decl.carbon @@ -22,19 +22,19 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -68,12 +68,12 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: fn @F(%a.param_patt: %i32) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_17.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_17.2: %i32 = converted %int_1, %.loc12_17.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_17.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_17.2: %i32 = converted %int_1, %.loc12_17.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %a.loc12: %i32 = bind_name a, %.loc12_17.2 // CHECK:STDOUT: %a.ref: %i32 = name_ref a, %a.loc12 // CHECK:STDOUT: return %a.ref diff --git a/toolchain/check/testdata/namespace/add_to_import.carbon b/toolchain/check/testdata/namespace/add_to_import.carbon index 901b72813b68..5219578e8899 100644 --- a/toolchain/check/testdata/namespace/add_to_import.carbon +++ b/toolchain/check/testdata/namespace/add_to_import.carbon @@ -48,13 +48,13 @@ var a: i32 = NS.A(); // CHECK:STDOUT: %A.type: type = fn_type @A [template] // CHECK:STDOUT: %A: %A.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -63,8 +63,8 @@ var a: i32 = NS.A(); // CHECK:STDOUT: .A = file.%A.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -95,12 +95,12 @@ var a: i32 = NS.A(); // CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4_28.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4_28.2: %i32 = converted %int_0, %.loc4_28.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4_28.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4_28.2: %i32 = converted %int_0, %.loc4_28.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc4_28.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/alias.carbon b/toolchain/check/testdata/namespace/alias.carbon index b92cace3f0cc..11605ef10ad4 100644 --- a/toolchain/check/testdata/namespace/alias.carbon +++ b/toolchain/check/testdata/namespace/alias.carbon @@ -28,13 +28,13 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %A.type: type = fn_type @A [template] // CHECK:STDOUT: %A: %A.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %B.type: type = fn_type @B [template] // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %D.type: type = fn_type @D [template] @@ -43,8 +43,8 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -100,12 +100,12 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc15_28.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc15_28.2: %i32 = converted %int_0, %.loc15_28.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc15_28.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc15_28.2: %i32 = converted %int_0, %.loc15_28.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc15_28.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_conflict_in_imports_namespace_first.carbon b/toolchain/check/testdata/namespace/fail_conflict_in_imports_namespace_first.carbon index 9bfa9ca75a9b..6d8d86ba57a5 100644 --- a/toolchain/check/testdata/namespace/fail_conflict_in_imports_namespace_first.carbon +++ b/toolchain/check/testdata/namespace/fail_conflict_in_imports_namespace_first.carbon @@ -107,7 +107,7 @@ fn NS.Bar() {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.d58: = import_ref Example//namespace, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .Foo = %import_ref.2a0 +// CHECK:STDOUT: .Foo = %import_ref.32e // CHECK:STDOUT: .Bar = file.%Bar.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { 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 ad75ab9ce89b..a16fa3f5c8ce 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 @@ -107,7 +107,7 @@ fn NS.Bar() {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.d58: = import_ref Example//namespace, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .Foo = %import_ref.2a0 +// CHECK:STDOUT: .Foo = %import_ref.32e // CHECK:STDOUT: .Bar = file.%Bar.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { diff --git a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon index b3a8ead06dd3..027625debf6c 100644 --- a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon +++ b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon @@ -29,19 +29,19 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: %.type: type = fn_type @.1 [template] // CHECK:STDOUT: %.d85: %.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -71,12 +71,12 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: fn @.1() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc22_28.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc22_28.2: %i32 = converted %int_0, %.loc22_28.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc22_28.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc22_28.2: %i32 = converted %int_0, %.loc22_28.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc22_28.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_not_top_level.carbon b/toolchain/check/testdata/namespace/fail_not_top_level.carbon index 30979998eb06..a534dcba497b 100644 --- a/toolchain/check/testdata/namespace/fail_not_top_level.carbon +++ b/toolchain/check/testdata/namespace/fail_not_top_level.carbon @@ -46,14 +46,14 @@ interface I { // CHECK:STDOUT: %.type: type = fn_type @.1 [template] // CHECK:STDOUT: %.3ad: %.type = struct_value () [template] // CHECK:STDOUT: %C: type = class_type @C [template] -// CHECK:STDOUT: %F.type.2e2: type = fn_type @F.2 [template] -// CHECK:STDOUT: %F.5e0: %F.type.2e2 = struct_value () [template] +// CHECK:STDOUT: %F.type.1cc: type = fn_type @F.2 [template] +// CHECK:STDOUT: %F.f49: %F.type.1cc = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %I.type.733: type = facet_type <@I.2> [template] // CHECK:STDOUT: %Self: %I.type.733 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %I.type.ad2: type = fn_type @I.1 [template] -// CHECK:STDOUT: %I: %I.type.ad2 = struct_value () [template] +// CHECK:STDOUT: %I.type.d37: type = fn_type @I.1 [template] +// CHECK:STDOUT: %I: %I.type.d37 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -81,7 +81,7 @@ interface I { // CHECK:STDOUT: %N: = namespace [template] { // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %I.decl: %I.type.ad2 = fn_decl @I.1 [template = constants.%I] {} {} +// CHECK:STDOUT: %I.decl: %I.type.d37 = fn_decl @I.1 [template = constants.%I] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -93,7 +93,7 @@ interface I { // CHECK:STDOUT: %N: = namespace [template] { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl: %F.type.2e2 = fn_decl @F.2 [template = constants.%F.5e0] {} {} +// CHECK:STDOUT: %F.decl: %F.type.1cc = fn_decl @F.2 [template = constants.%F.f49] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/namespace/fail_params.carbon b/toolchain/check/testdata/namespace/fail_params.carbon index d20cefe97987..864beddc2421 100644 --- a/toolchain/check/testdata/namespace/fail_params.carbon +++ b/toolchain/check/testdata/namespace/fail_params.carbon @@ -53,7 +53,7 @@ fn D(T:! type).F() {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/imported.carbon b/toolchain/check/testdata/namespace/imported.carbon index 18bfbcbf277e..0e0f0ae585c5 100644 --- a/toolchain/check/testdata/namespace/imported.carbon +++ b/toolchain/check/testdata/namespace/imported.carbon @@ -78,10 +78,10 @@ var package_b: () = package.NS.ChildNS.B(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.d58: = import_ref Implicit//default, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .A = %import_ref.5d2 +// CHECK:STDOUT: .A = %import_ref.e9b // CHECK:STDOUT: .ChildNS = %ChildNS // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.5d2: %A.type = import_ref Implicit//default, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.e9b: %A.type = import_ref Implicit//default, A, loaded [template = constants.%A] // CHECK:STDOUT: %import_ref.e9d: = import_ref Implicit//default, ChildNS, loaded // CHECK:STDOUT: %ChildNS: = namespace %import_ref.e9d, [template] { // CHECK:STDOUT: .B = %import_ref.f00 @@ -122,7 +122,7 @@ var package_b: () = package.NS.ChildNS.B(); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %NS.ref.loc4: = name_ref NS, imports.%NS [template = imports.%NS] -// CHECK:STDOUT: %A.ref.loc4: %A.type = name_ref A, imports.%import_ref.5d2 [template = constants.%A] +// CHECK:STDOUT: %A.ref.loc4: %A.type = name_ref A, imports.%import_ref.e9b [template = constants.%A] // CHECK:STDOUT: %A.call.loc4: init %empty_tuple.type = call %A.ref.loc4() // CHECK:STDOUT: assign file.%a.var, %A.call.loc4 // CHECK:STDOUT: %NS.ref.loc5: = name_ref NS, imports.%NS [template = imports.%NS] @@ -132,7 +132,7 @@ var package_b: () = package.NS.ChildNS.B(); // CHECK:STDOUT: assign file.%b.var, %B.call.loc5 // CHECK:STDOUT: %package.ref.loc7: = name_ref package, package [template = package] // CHECK:STDOUT: %NS.ref.loc7: = name_ref NS, imports.%NS [template = imports.%NS] -// CHECK:STDOUT: %A.ref.loc7: %A.type = name_ref A, imports.%import_ref.5d2 [template = constants.%A] +// CHECK:STDOUT: %A.ref.loc7: %A.type = name_ref A, imports.%import_ref.e9b [template = constants.%A] // CHECK:STDOUT: %A.call.loc7: init %empty_tuple.type = call %A.ref.loc7() // CHECK:STDOUT: assign file.%package_a.var, %A.call.loc7 // CHECK:STDOUT: %package.ref.loc8: = name_ref package, package [template = package] diff --git a/toolchain/check/testdata/namespace/imported_indirect.carbon b/toolchain/check/testdata/namespace/imported_indirect.carbon index 74204d03c04d..cbb9cad0c5c6 100644 --- a/toolchain/check/testdata/namespace/imported_indirect.carbon +++ b/toolchain/check/testdata/namespace/imported_indirect.carbon @@ -125,10 +125,10 @@ fn G() { Same.F(); } // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.7e6: = import_ref Same//a, A, loaded // CHECK:STDOUT: %A: = namespace %import_ref.7e6, [template] { -// CHECK:STDOUT: .C = %import_ref.857 +// CHECK:STDOUT: .C = %import_ref.711 // CHECK:STDOUT: .B = file.%B // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.857: type = import_ref Same//a, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.711: type = import_ref Same//a, C, loaded [template = constants.%C] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -149,7 +149,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: %return.param_patt: %C = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: = name_ref A, imports.%A [template = imports.%A] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.857 [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.711 [template = constants.%C] // CHECK:STDOUT: %return.param: ref %C = out_param runtime_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -166,7 +166,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: %A: = namespace %import_ref.de6, [template] { // CHECK:STDOUT: .B = %B // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.f8e = import_ref Same//b, F, unloaded +// CHECK:STDOUT: %import_ref.bde = import_ref Same//b, F, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -176,7 +176,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { // CHECK:STDOUT: .A = imports.%A -// CHECK:STDOUT: .F = imports.%import_ref.f8e +// CHECK:STDOUT: .F = imports.%import_ref.bde // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core @@ -236,9 +236,9 @@ fn G() { Same.F(); } // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.cee: = import_ref Same//d, C, loaded // CHECK:STDOUT: %C: = namespace %import_ref.cee, [template] { -// CHECK:STDOUT: .D = %import_ref.49e +// CHECK:STDOUT: .D = %import_ref.293 // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.49e: %D.type = import_ref Same//d, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.293: %D.type = import_ref Same//d, D, loaded [template = constants.%D] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -264,7 +264,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: %A.ref: = name_ref A, imports.%A [template = imports.%A] // CHECK:STDOUT: %B.ref: = name_ref B, imports.%B [template = imports.%B] // CHECK:STDOUT: %C.ref: = name_ref C, imports.%C [template = imports.%C] -// CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%import_ref.49e [template = constants.%D] +// CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%import_ref.293 [template = constants.%D] // CHECK:STDOUT: %D.call: init %empty_tuple.type = call %D.ref() // CHECK:STDOUT: assign file.%e.var, %D.call // CHECK:STDOUT: return @@ -285,7 +285,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: %A: = namespace %import_ref.de6, [template] { // CHECK:STDOUT: .B = %B // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.44d: %F.type = import_ref Same//b, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Same//b, F, loaded [template = constants.%F] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -295,7 +295,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { // CHECK:STDOUT: .A = imports.%A -// CHECK:STDOUT: .F = imports.%import_ref.44d +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } @@ -308,7 +308,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.44d [template = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] // CHECK:STDOUT: %F.call: init = call %F.ref() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/merging.carbon b/toolchain/check/testdata/namespace/merging.carbon index f236dbfe48b9..72bea80a31c6 100644 --- a/toolchain/check/testdata/namespace/merging.carbon +++ b/toolchain/check/testdata/namespace/merging.carbon @@ -140,14 +140,14 @@ fn Run() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.d58: = import_ref Example//a, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .A = %import_ref.5d2 -// CHECK:STDOUT: .B1 = %import_ref.436 -// CHECK:STDOUT: .B2 = %import_ref.fde +// CHECK:STDOUT: .A = %import_ref.e9b +// CHECK:STDOUT: .B1 = %import_ref.7c2 +// CHECK:STDOUT: .B2 = %import_ref.531 // CHECK:STDOUT: .C = file.%C.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.5d2: %A.type = import_ref Example//a, A, loaded [template = constants.%A] -// CHECK:STDOUT: %import_ref.436: %B1.type = import_ref Example//b, B1, loaded [template = constants.%B1] -// CHECK:STDOUT: %import_ref.fde: %B2.type = import_ref Example//b, B2, loaded [template = constants.%B2] +// CHECK:STDOUT: %import_ref.e9b: %A.type = import_ref Example//a, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.7c2: %B1.type = import_ref Example//b, B1, loaded [template = constants.%B1] +// CHECK:STDOUT: %import_ref.531: %B2.type = import_ref Example//b, B2, loaded [template = constants.%B2] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -163,9 +163,9 @@ fn Run() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %NS: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.5d2 -// CHECK:STDOUT: .B1 = imports.%import_ref.436 -// CHECK:STDOUT: .B2 = imports.%import_ref.fde +// CHECK:STDOUT: .A = imports.%import_ref.e9b +// CHECK:STDOUT: .B1 = imports.%import_ref.7c2 +// CHECK:STDOUT: .B2 = imports.%import_ref.531 // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [template = constants.%C] {} {} @@ -180,13 +180,13 @@ fn Run() { // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %NS.ref.loc12: = name_ref NS, imports.%NS [template = imports.%NS] -// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.5d2 [template = constants.%A] +// CHECK:STDOUT: %A.ref: %A.type = name_ref A, imports.%import_ref.e9b [template = constants.%A] // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.ref() // CHECK:STDOUT: %NS.ref.loc13: = name_ref NS, imports.%NS [template = imports.%NS] -// CHECK:STDOUT: %B1.ref: %B1.type = name_ref B1, imports.%import_ref.436 [template = constants.%B1] +// CHECK:STDOUT: %B1.ref: %B1.type = name_ref B1, imports.%import_ref.7c2 [template = constants.%B1] // CHECK:STDOUT: %B1.call: init %empty_tuple.type = call %B1.ref() // CHECK:STDOUT: %NS.ref.loc14: = name_ref NS, imports.%NS [template = imports.%NS] -// CHECK:STDOUT: %B2.ref: %B2.type = name_ref B2, imports.%import_ref.fde [template = constants.%B2] +// CHECK:STDOUT: %B2.ref: %B2.type = name_ref B2, imports.%import_ref.531 [template = constants.%B2] // CHECK:STDOUT: %B2.call: init %empty_tuple.type = call %B2.ref() // CHECK:STDOUT: %NS.ref.loc15: = name_ref NS, imports.%NS [template = imports.%NS] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C] diff --git a/toolchain/check/testdata/namespace/merging_with_indirections.carbon b/toolchain/check/testdata/namespace/merging_with_indirections.carbon index 70e8cdbc72fb..c74225d2459c 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -91,10 +91,10 @@ fn Run() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.503: = import_ref Other//a, NS1, loaded // CHECK:STDOUT: %NS1: = namespace %import_ref.503, [template] { -// CHECK:STDOUT: .A = %import_ref.ca7 +// CHECK:STDOUT: .A = %import_ref.257 // CHECK:STDOUT: .B = file.%B.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.ca7: type = import_ref Other//a, A, loaded [template = constants.%A] +// CHECK:STDOUT: %import_ref.257: type = import_ref Other//a, A, loaded [template = constants.%A] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -112,7 +112,7 @@ fn Run() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %NS1: = namespace [template] { -// CHECK:STDOUT: .A = imports.%import_ref.ca7 +// CHECK:STDOUT: .A = imports.%import_ref.257 // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {} @@ -121,7 +121,7 @@ fn Run() { // CHECK:STDOUT: %return.param_patt: %A = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %NS1.ref: = name_ref NS1, imports.%NS1 [template = imports.%NS1] -// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.ca7 [template = constants.%A] +// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%import_ref.257 [template = constants.%A] // CHECK:STDOUT: %return.param: ref %A = out_param runtime_param0 // CHECK:STDOUT: %return: ref %A = return_slot %return.param // CHECK:STDOUT: } @@ -167,12 +167,12 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .F = %import_ref.097 +// CHECK:STDOUT: .F = %import_ref.f04 // CHECK:STDOUT: .NS1 = %NS1 // CHECK:STDOUT: import Other//b // CHECK:STDOUT: import Other//a // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.097: %F.type = import_ref Other//b, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.f04: %F.type = import_ref Other//b, F, loaded [template = constants.%F] // CHECK:STDOUT: %import_ref.8db: = import_ref Other//b, inst28 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.bbd = import_ref Other//b, inst29 [indirect], unloaded // CHECK:STDOUT: } @@ -197,7 +197,7 @@ fn Run() { // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Other.ref.loc7: = name_ref Other, imports.%Other [template = imports.%Other] -// CHECK:STDOUT: %F.ref.loc7: %F.type = name_ref F, imports.%import_ref.097 [template = constants.%F] +// CHECK:STDOUT: %F.ref.loc7: %F.type = name_ref F, imports.%import_ref.f04 [template = constants.%F] // CHECK:STDOUT: %.loc7_11.1: ref %A = temporary_storage // CHECK:STDOUT: %F.call.loc7: init %A = call %F.ref.loc7() to %.loc7_11.1 // CHECK:STDOUT: %.loc7_11.2: ref %A = temporary %.loc7_11.1, %F.call.loc7 @@ -205,7 +205,7 @@ fn Run() { // CHECK:STDOUT: %a: ref %A = bind_name a, %a.var // CHECK:STDOUT: %a.ref: ref %A = name_ref a, %a // CHECK:STDOUT: %Other.ref.loc13: = name_ref Other, imports.%Other [template = imports.%Other] -// CHECK:STDOUT: %F.ref.loc13: %F.type = name_ref F, imports.%import_ref.097 [template = constants.%F] +// CHECK:STDOUT: %F.ref.loc13: %F.type = name_ref F, imports.%import_ref.f04 [template = constants.%F] // CHECK:STDOUT: %.loc13: ref %A = splice_block %a.ref {} // CHECK:STDOUT: %F.call.loc13: init %A = call %F.ref.loc13() to %.loc13 // CHECK:STDOUT: assign %a.ref, %F.call.loc13 diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index ac043cfffbc1..87d9383a7a70 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -41,19 +41,19 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %B: %B.type = struct_value () [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -101,11 +101,11 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %A.var: ref %i32 = var A // CHECK:STDOUT: %A: ref %i32 = bind_name A, %A.var // CHECK:STDOUT: %int_0.loc22: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc22: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc22: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc22: = bound_method %int_0.loc22, %impl.elem0.loc22 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc22: = specific_function %Convert.bound.loc22, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc22: init %i32 = call %Convert.specific_fn.loc22(%int_0.loc22) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc22: init %i32 = converted %int_0.loc22, %int.convert_checked.loc22 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked.loc22: init %i32 = call %Convert.specific_fn.loc22(%int_0.loc22) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc22: init %i32 = converted %int_0.loc22, %int.convert_checked.loc22 [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %A.var, %.loc22 // CHECK:STDOUT: %A.ref.loc25: ref %i32 = name_ref A, %A // CHECK:STDOUT: %.loc25: %i32 = bind_value %A.ref.loc25 @@ -113,12 +113,12 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_0.loc27: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc27: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc27: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc27: = bound_method %int_0.loc27, %impl.elem0.loc27 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc27: = specific_function %Convert.bound.loc27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %Convert.specific_fn.loc27(%int_0.loc27) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc27_11.1: %i32 = value_of_initializer %int.convert_checked.loc27 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc27_11.2: %i32 = converted %int_0.loc27, %.loc27_11.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %Convert.specific_fn.loc27(%int_0.loc27) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc27_11.1: %i32 = value_of_initializer %int.convert_checked.loc27 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc27_11.2: %i32 = converted %int_0.loc27, %.loc27_11.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc27_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/assignment.carbon b/toolchain/check/testdata/operators/builtin/assignment.carbon index 00d7c4777cac..8c60635474e5 100644 --- a/toolchain/check/testdata/operators/builtin/assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/assignment.carbon @@ -34,56 +34,56 @@ fn Main() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [template] -// CHECK:STDOUT: %Convert.bound.cc8: = bound_method %int_9.988, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b8b: = specific_function %Convert.bound.cc8, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_9.82c: %i32 = int_value 9 [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %Convert.bound.9e2: = bound_method %int_9.988, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b02: = specific_function %Convert.bound.9e2, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_9.f88: %i32 = int_value 9 [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %struct: %struct_type.a.b.3de = struct_value (%int_1.c60, %int_2.166) [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %struct: %struct_type.a.b.501 = struct_value (%int_1.5d2, %int_2.ef8) [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %Convert.bound.b33: = bound_method %int_5.64b, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.89d: = specific_function %Convert.bound.b33, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] +// CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.ba9: = specific_function %Convert.bound.4e6, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] // CHECK:STDOUT: %int_10.64f: Core.IntLiteral = int_value 10 [template] -// CHECK:STDOUT: %Convert.bound.d24: = bound_method %int_10.64f, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.970: = specific_function %Convert.bound.d24, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_10.55a: %i32 = int_value 10 [template] +// CHECK:STDOUT: %Convert.bound.491: = bound_method %int_10.64f, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.e67: = specific_function %Convert.bound.491, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_10.265: %i32 = int_value 10 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -103,139 +103,139 @@ fn Main() { // CHECK:STDOUT: %a.var: ref %i32 = var a // CHECK:STDOUT: %a: ref %i32 = bind_name a, %a.var // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] -// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_12, %impl.elem0.loc12 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_12, %int.convert_checked.loc12 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_12, %impl.elem0.loc12 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_12, %int.convert_checked.loc12 [template = constants.%int_12.1e1] // CHECK:STDOUT: assign %a.var, %.loc12 // CHECK:STDOUT: %a.ref.loc13: ref %i32 = name_ref a, %a // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [template = constants.%int_9.988] -// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_9, %impl.elem0.loc13 [template = constants.%Convert.bound.cc8] -// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b8b] -// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_9) [template = constants.%int_9.82c] -// CHECK:STDOUT: %.loc13: init %i32 = converted %int_9, %int.convert_checked.loc13 [template = constants.%int_9.82c] +// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_9, %impl.elem0.loc13 [template = constants.%Convert.bound.9e2] +// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b02] +// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_9) [template = constants.%int_9.f88] +// CHECK:STDOUT: %.loc13: init %i32 = converted %int_9, %int.convert_checked.loc13 [template = constants.%int_9.f88] // CHECK:STDOUT: assign %a.ref.loc13, %.loc13 -// CHECK:STDOUT: %b.var: ref %tuple.type.471 = var b -// CHECK:STDOUT: %b: ref %tuple.type.471 = bind_name b, %b.var +// CHECK:STDOUT: %b.var: ref %tuple.type.d07 = var b +// CHECK:STDOUT: %b: ref %tuple.type.d07 = bind_name b, %b.var // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc15: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc15_28.1: %tuple.type.f94 = tuple_literal (%int_1.loc15, %int_2.loc15) -// CHECK:STDOUT: %impl.elem0.loc15_28.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15_28.1: = bound_method %int_1.loc15, %impl.elem0.loc15_28.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc15_28.1: = specific_function %Convert.bound.loc15_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc15_28.1: init %i32 = call %Convert.specific_fn.loc15_28.1(%int_1.loc15) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_1.loc15, %int.convert_checked.loc15_28.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc15_28.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15_28.1: = bound_method %int_1.loc15, %impl.elem0.loc15_28.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc15_28.1: = specific_function %Convert.bound.loc15_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc15_28.1: init %i32 = call %Convert.specific_fn.loc15_28.1(%int_1.loc15) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_1.loc15, %int.convert_checked.loc15_28.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc15: ref %i32 = tuple_access %b.var, element0 -// CHECK:STDOUT: %.loc15_28.3: init %i32 = initialize_from %.loc15_28.2 to %tuple.elem0.loc15 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc15_28.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc15_28.2: = bound_method %int_2.loc15, %impl.elem0.loc15_28.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc15_28.2: = specific_function %Convert.bound.loc15_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc15_28.2: init %i32 = call %Convert.specific_fn.loc15_28.2(%int_2.loc15) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc15_28.4: init %i32 = converted %int_2.loc15, %int.convert_checked.loc15_28.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc15_28.3: init %i32 = initialize_from %.loc15_28.2 to %tuple.elem0.loc15 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc15_28.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc15_28.2: = bound_method %int_2.loc15, %impl.elem0.loc15_28.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc15_28.2: = specific_function %Convert.bound.loc15_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc15_28.2: init %i32 = call %Convert.specific_fn.loc15_28.2(%int_2.loc15) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc15_28.4: init %i32 = converted %int_2.loc15, %int.convert_checked.loc15_28.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1.loc15: ref %i32 = tuple_access %b.var, element1 -// CHECK:STDOUT: %.loc15_28.5: init %i32 = initialize_from %.loc15_28.4 to %tuple.elem1.loc15 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc15_28.6: init %tuple.type.471 = tuple_init (%.loc15_28.3, %.loc15_28.5) to %b.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc15_29: init %tuple.type.471 = converted %.loc15_28.1, %.loc15_28.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc15_28.5: init %i32 = initialize_from %.loc15_28.4 to %tuple.elem1.loc15 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc15_28.6: init %tuple.type.d07 = tuple_init (%.loc15_28.3, %.loc15_28.5) to %b.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc15_29: init %tuple.type.d07 = converted %.loc15_28.1, %.loc15_28.6 [template = constants.%tuple] // CHECK:STDOUT: assign %b.var, %.loc15_29 -// CHECK:STDOUT: %b.ref.loc16: ref %tuple.type.471 = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc16: ref %tuple.type.d07 = name_ref b, %b // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %tuple.elem0.loc16: ref %i32 = tuple_access %b.ref.loc16, element0 // CHECK:STDOUT: %int_3.loc16: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_3.loc16, %impl.elem0.loc16 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_3.loc16) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_3.loc16, %int.convert_checked.loc16 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_3.loc16, %impl.elem0.loc16 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_3.loc16) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_3.loc16, %int.convert_checked.loc16 [template = constants.%int_3.822] // CHECK:STDOUT: assign %tuple.elem0.loc16, %.loc16 -// CHECK:STDOUT: %b.ref.loc17: ref %tuple.type.471 = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc17: ref %tuple.type.d07 = name_ref b, %b // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %tuple.elem1.loc17: ref %i32 = tuple_access %b.ref.loc17, element1 // CHECK:STDOUT: %int_4.loc17: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_4.loc17, %impl.elem0.loc17 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_4.loc17) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc17: init %i32 = converted %int_4.loc17, %int.convert_checked.loc17 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc17: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17: = bound_method %int_4.loc17, %impl.elem0.loc17 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc17: = specific_function %Convert.bound.loc17, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %Convert.specific_fn.loc17(%int_4.loc17) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc17: init %i32 = converted %int_4.loc17, %int.convert_checked.loc17 [template = constants.%int_4.940] // CHECK:STDOUT: assign %tuple.elem1.loc17, %.loc17 -// CHECK:STDOUT: %c.var: ref %struct_type.a.b.3de = var c -// CHECK:STDOUT: %c: ref %struct_type.a.b.3de = bind_name c, %c.var +// CHECK:STDOUT: %c.var: ref %struct_type.a.b.501 = var c +// CHECK:STDOUT: %c: ref %struct_type.a.b.501 = bind_name c, %c.var // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc19: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc19_46.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc19, %int_2.loc19) -// CHECK:STDOUT: %impl.elem0.loc19_46.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc19_46.1: = bound_method %int_1.loc19, %impl.elem0.loc19_46.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc19_46.1: = specific_function %Convert.bound.loc19_46.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc19_46.1: init %i32 = call %Convert.specific_fn.loc19_46.1(%int_1.loc19) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc19_46.2: init %i32 = converted %int_1.loc19, %int.convert_checked.loc19_46.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc19_46.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc19_46.1: = bound_method %int_1.loc19, %impl.elem0.loc19_46.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc19_46.1: = specific_function %Convert.bound.loc19_46.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc19_46.1: init %i32 = call %Convert.specific_fn.loc19_46.1(%int_1.loc19) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc19_46.2: init %i32 = converted %int_1.loc19, %int.convert_checked.loc19_46.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_46.3: ref %i32 = struct_access %c.var, element0 -// CHECK:STDOUT: %.loc19_46.4: init %i32 = initialize_from %.loc19_46.2 to %.loc19_46.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc19_46.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc19_46.2: = bound_method %int_2.loc19, %impl.elem0.loc19_46.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc19_46.2: = specific_function %Convert.bound.loc19_46.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc19_46.2: init %i32 = call %Convert.specific_fn.loc19_46.2(%int_2.loc19) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc19_46.5: init %i32 = converted %int_2.loc19, %int.convert_checked.loc19_46.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc19_46.4: init %i32 = initialize_from %.loc19_46.2 to %.loc19_46.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc19_46.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc19_46.2: = bound_method %int_2.loc19, %impl.elem0.loc19_46.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc19_46.2: = specific_function %Convert.bound.loc19_46.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc19_46.2: init %i32 = call %Convert.specific_fn.loc19_46.2(%int_2.loc19) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc19_46.5: init %i32 = converted %int_2.loc19, %int.convert_checked.loc19_46.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc19_46.6: ref %i32 = struct_access %c.var, element1 -// CHECK:STDOUT: %.loc19_46.7: init %i32 = initialize_from %.loc19_46.5 to %.loc19_46.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc19_46.8: init %struct_type.a.b.3de = struct_init (%.loc19_46.4, %.loc19_46.7) to %c.var [template = constants.%struct] -// CHECK:STDOUT: %.loc19_47: init %struct_type.a.b.3de = converted %.loc19_46.1, %.loc19_46.8 [template = constants.%struct] +// CHECK:STDOUT: %.loc19_46.7: init %i32 = initialize_from %.loc19_46.5 to %.loc19_46.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc19_46.8: init %struct_type.a.b.501 = struct_init (%.loc19_46.4, %.loc19_46.7) to %c.var [template = constants.%struct] +// CHECK:STDOUT: %.loc19_47: init %struct_type.a.b.501 = converted %.loc19_46.1, %.loc19_46.8 [template = constants.%struct] // CHECK:STDOUT: assign %c.var, %.loc19_47 -// CHECK:STDOUT: %c.ref.loc20: ref %struct_type.a.b.3de = name_ref c, %c +// CHECK:STDOUT: %c.ref.loc20: ref %struct_type.a.b.501 = name_ref c, %c // CHECK:STDOUT: %.loc20_4: ref %i32 = struct_access %c.ref.loc20, element0 // CHECK:STDOUT: %int_3.loc20: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc20: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc20: = bound_method %int_3.loc20, %impl.elem0.loc20 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc20: = specific_function %Convert.bound.loc20, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %Convert.specific_fn.loc20(%int_3.loc20) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc20_7: init %i32 = converted %int_3.loc20, %int.convert_checked.loc20 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc20: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc20: = bound_method %int_3.loc20, %impl.elem0.loc20 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc20: = specific_function %Convert.bound.loc20, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %Convert.specific_fn.loc20(%int_3.loc20) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc20_7: init %i32 = converted %int_3.loc20, %int.convert_checked.loc20 [template = constants.%int_3.822] // CHECK:STDOUT: assign %.loc20_4, %.loc20_7 -// CHECK:STDOUT: %c.ref.loc21: ref %struct_type.a.b.3de = name_ref c, %c +// CHECK:STDOUT: %c.ref.loc21: ref %struct_type.a.b.501 = name_ref c, %c // CHECK:STDOUT: %.loc21_4: ref %i32 = struct_access %c.ref.loc21, element1 // CHECK:STDOUT: %int_4.loc21: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc21: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21: = bound_method %int_4.loc21, %impl.elem0.loc21 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc21: = specific_function %Convert.bound.loc21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %Convert.specific_fn.loc21(%int_4.loc21) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc21_7: init %i32 = converted %int_4.loc21, %int.convert_checked.loc21 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc21: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21: = bound_method %int_4.loc21, %impl.elem0.loc21 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc21: = specific_function %Convert.bound.loc21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %Convert.specific_fn.loc21(%int_4.loc21) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc21_7: init %i32 = converted %int_4.loc21, %int.convert_checked.loc21 [template = constants.%int_4.940] // CHECK:STDOUT: assign %.loc21_4, %.loc21_7 -// CHECK:STDOUT: %p.var: ref %ptr.dc3 = var p -// CHECK:STDOUT: %p: ref %ptr.dc3 = bind_name p, %p.var +// CHECK:STDOUT: %p.var: ref %ptr.235 = var p +// CHECK:STDOUT: %p: ref %ptr.235 = bind_name p, %p.var // CHECK:STDOUT: %a.ref.loc23: ref %i32 = name_ref a, %a -// CHECK:STDOUT: %addr.loc23: %ptr.dc3 = addr_of %a.ref.loc23 +// CHECK:STDOUT: %addr.loc23: %ptr.235 = addr_of %a.ref.loc23 // CHECK:STDOUT: assign %p.var, %addr.loc23 -// CHECK:STDOUT: %p.ref.loc24: ref %ptr.dc3 = name_ref p, %p -// CHECK:STDOUT: %.loc24_4: %ptr.dc3 = bind_value %p.ref.loc24 +// CHECK:STDOUT: %p.ref.loc24: ref %ptr.235 = name_ref p, %p +// CHECK:STDOUT: %.loc24_4: %ptr.235 = bind_value %p.ref.loc24 // CHECK:STDOUT: %.loc24_3: ref %i32 = deref %.loc24_4 // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc24: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc24: = bound_method %int_5, %impl.elem0.loc24 [template = constants.%Convert.bound.b33] -// CHECK:STDOUT: %Convert.specific_fn.loc24: = specific_function %Convert.bound.loc24, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.89d] -// CHECK:STDOUT: %int.convert_checked.loc24: init %i32 = call %Convert.specific_fn.loc24(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc24_6: init %i32 = converted %int_5, %int.convert_checked.loc24 [template = constants.%int_5.70b] +// CHECK:STDOUT: %impl.elem0.loc24: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc24: = bound_method %int_5, %impl.elem0.loc24 [template = constants.%Convert.bound.4e6] +// CHECK:STDOUT: %Convert.specific_fn.loc24: = specific_function %Convert.bound.loc24, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.ba9] +// CHECK:STDOUT: %int.convert_checked.loc24: init %i32 = call %Convert.specific_fn.loc24(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc24_6: init %i32 = converted %int_5, %int.convert_checked.loc24 [template = constants.%int_5.0f6] // CHECK:STDOUT: assign %.loc24_3, %.loc24_6 // CHECK:STDOUT: %true: bool = bool_literal true [template = 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.loc26: ref %ptr.dc3 = name_ref p, %p -// CHECK:STDOUT: %.loc26_18: %ptr.dc3 = bind_value %p.ref.loc26 +// CHECK:STDOUT: %p.ref.loc26: ref %ptr.235 = name_ref p, %p +// CHECK:STDOUT: %.loc26_18: %ptr.235 = bind_value %p.ref.loc26 // CHECK:STDOUT: br !if.expr.result(%.loc26_18) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else: // CHECK:STDOUT: %a.ref.loc26: ref %i32 = name_ref a, %a -// CHECK:STDOUT: %addr.loc26: %ptr.dc3 = addr_of %a.ref.loc26 +// CHECK:STDOUT: %addr.loc26: %ptr.235 = addr_of %a.ref.loc26 // CHECK:STDOUT: br !if.expr.result(%addr.loc26) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: -// CHECK:STDOUT: %.loc26_5: %ptr.dc3 = block_arg !if.expr.result +// CHECK:STDOUT: %.loc26_5: %ptr.235 = block_arg !if.expr.result // CHECK:STDOUT: %.loc26_3: ref %i32 = deref %.loc26_5 // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [template = constants.%int_10.64f] -// CHECK:STDOUT: %impl.elem0.loc26: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc26: = bound_method %int_10, %impl.elem0.loc26 [template = constants.%Convert.bound.d24] -// CHECK:STDOUT: %Convert.specific_fn.loc26: = specific_function %Convert.bound.loc26, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.970] -// CHECK:STDOUT: %int.convert_checked.loc26: init %i32 = call %Convert.specific_fn.loc26(%int_10) [template = constants.%int_10.55a] -// CHECK:STDOUT: %.loc26_29: init %i32 = converted %int_10, %int.convert_checked.loc26 [template = constants.%int_10.55a] +// CHECK:STDOUT: %impl.elem0.loc26: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc26: = bound_method %int_10, %impl.elem0.loc26 [template = constants.%Convert.bound.491] +// CHECK:STDOUT: %Convert.specific_fn.loc26: = specific_function %Convert.bound.loc26, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.e67] +// CHECK:STDOUT: %int.convert_checked.loc26: init %i32 = call %Convert.specific_fn.loc26(%int_10) [template = constants.%int_10.265] +// CHECK:STDOUT: %.loc26_29: init %i32 = converted %int_10, %int.convert_checked.loc26 [template = constants.%int_10.265] // CHECK:STDOUT: assign %.loc26_3, %.loc26_29 // 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 ea565bc71e68..0330e1bc949e 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 @@ -79,9 +79,9 @@ var or_val: bool = true or true; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Float = %import_ref.20b +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon b/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon index 9d7477a04540..e69caa6032a0 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 @@ -67,45 +67,45 @@ fn Main() { // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template] // CHECK:STDOUT: %tuple.302: %tuple.type.f94 = tuple_value (%int_3.1ba, %int_4) [template] // CHECK:STDOUT: %tuple.ad8: %tuple.type.f94 = tuple_value (%int_1.5b8, %int_2.ecc) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %tuple.58e: %tuple.type.471 = tuple_value (%int_1.c60, %int_2.166) [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %tuple.21c: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_2.ef8) [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: Core.IntLiteral, .y: Core.IntLiteral} [template] // CHECK:STDOUT: %struct.a0d: %struct_type.x.y = struct_value (%int_3.1ba, %int_4) [template] // CHECK:STDOUT: %struct.004: %struct_type.x.y = struct_value (%int_1.5b8, %int_2.ecc) [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] // CHECK:STDOUT: %int_10.64f: Core.IntLiteral = int_value 10 [template] -// CHECK:STDOUT: %Convert.bound.d24: = bound_method %int_10.64f, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.970: = specific_function %Convert.bound.d24, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_10.55a: %i32 = int_value 10 [template] +// CHECK:STDOUT: %Convert.bound.491: = bound_method %int_10.64f, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.e67: = specific_function %Convert.bound.491, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_10.265: %i32 = int_value 10 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -140,11 +140,11 @@ fn Main() { // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] // CHECK:STDOUT: %F.call: init %i32 = call %F.ref() // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc23: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc23: = bound_method %int_1.loc23, %impl.elem0.loc23 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc23: = specific_function %Convert.bound.loc23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %Convert.specific_fn.loc23(%int_1.loc23) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc23: init %i32 = converted %int_1.loc23, %int.convert_checked.loc23 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc23: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc23: = bound_method %int_1.loc23, %impl.elem0.loc23 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc23: = specific_function %Convert.bound.loc23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %Convert.specific_fn.loc23(%int_1.loc23) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc23: init %i32 = converted %int_1.loc23, %int.convert_checked.loc23 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %F.call, %.loc23 // CHECK:STDOUT: %int_1.loc28: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc28: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] @@ -164,44 +164,44 @@ fn Main() { // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %n: ref %i32 = bind_name n, %n.var // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc29: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc29: = bound_method %int_0, %impl.elem0.loc29 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc29: = specific_function %Convert.bound.loc29, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc29: init %i32 = call %Convert.specific_fn.loc29(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc29: init %i32 = converted %int_0, %int.convert_checked.loc29 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc29: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc29: = bound_method %int_0, %impl.elem0.loc29 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc29: = specific_function %Convert.bound.loc29, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc29: init %i32 = call %Convert.specific_fn.loc29(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc29: init %i32 = converted %int_0, %int.convert_checked.loc29 [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %n.var, %.loc29 // CHECK:STDOUT: %n.ref.loc34_4: ref %i32 = name_ref n, %n // CHECK:STDOUT: %n.ref.loc34_7: ref %i32 = name_ref n, %n -// CHECK:STDOUT: %.loc34_8.1: %tuple.type.471 = tuple_literal (%n.ref.loc34_4, %n.ref.loc34_7) +// CHECK:STDOUT: %.loc34_8.1: %tuple.type.d07 = tuple_literal (%n.ref.loc34_4, %n.ref.loc34_7) // CHECK:STDOUT: %int_1.loc34: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc34: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc34_17.1: %tuple.type.f94 = tuple_literal (%int_1.loc34, %int_2.loc34) -// CHECK:STDOUT: %impl.elem0.loc34_17.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc34_17.1: = bound_method %int_1.loc34, %impl.elem0.loc34_17.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc34_17.1: = specific_function %Convert.bound.loc34_17.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc34_17.1: init %i32 = call %Convert.specific_fn.loc34_17.1(%int_1.loc34) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc34_17.2: init %i32 = converted %int_1.loc34, %int.convert_checked.loc34_17.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc34_17.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc34_17.1: = bound_method %int_1.loc34, %impl.elem0.loc34_17.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc34_17.1: = specific_function %Convert.bound.loc34_17.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc34_17.1: init %i32 = call %Convert.specific_fn.loc34_17.1(%int_1.loc34) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc34_17.2: init %i32 = converted %int_1.loc34, %int.convert_checked.loc34_17.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc34: %i32 = tuple_access %.loc34_8.1, element0 -// CHECK:STDOUT: %.loc34_17.3: init %i32 = initialize_from %.loc34_17.2 to %tuple.elem0.loc34 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc34_17.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc34_17.2: = bound_method %int_2.loc34, %impl.elem0.loc34_17.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc34_17.2: = specific_function %Convert.bound.loc34_17.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc34_17.2: init %i32 = call %Convert.specific_fn.loc34_17.2(%int_2.loc34) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc34_17.4: init %i32 = converted %int_2.loc34, %int.convert_checked.loc34_17.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc34_17.3: init %i32 = initialize_from %.loc34_17.2 to %tuple.elem0.loc34 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc34_17.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc34_17.2: = bound_method %int_2.loc34, %impl.elem0.loc34_17.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc34_17.2: = specific_function %Convert.bound.loc34_17.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc34_17.2: init %i32 = call %Convert.specific_fn.loc34_17.2(%int_2.loc34) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc34_17.4: init %i32 = converted %int_2.loc34, %int.convert_checked.loc34_17.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1.loc34: %i32 = tuple_access %.loc34_8.1, element1 -// CHECK:STDOUT: %.loc34_17.5: init %i32 = initialize_from %.loc34_17.4 to %tuple.elem1.loc34 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc34_17.6: init %tuple.type.471 = tuple_init (%.loc34_17.3, %.loc34_17.5) to %.loc34_8.1 [template = constants.%tuple.58e] -// CHECK:STDOUT: %.loc34_10: init %tuple.type.471 = converted %.loc34_17.1, %.loc34_17.6 [template = constants.%tuple.58e] +// CHECK:STDOUT: %.loc34_17.5: init %i32 = initialize_from %.loc34_17.4 to %tuple.elem1.loc34 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc34_17.6: init %tuple.type.d07 = tuple_init (%.loc34_17.3, %.loc34_17.5) to %.loc34_8.1 [template = constants.%tuple.21c] +// CHECK:STDOUT: %.loc34_10: init %tuple.type.d07 = converted %.loc34_17.1, %.loc34_17.6 [template = constants.%tuple.21c] // CHECK:STDOUT: assign %.loc34_8.1, %.loc34_10 // CHECK:STDOUT: %.loc34_4: %i32 = bind_value %n.ref.loc34_4 // CHECK:STDOUT: %.loc34_7: %i32 = bind_value %n.ref.loc34_7 -// CHECK:STDOUT: %tuple.loc34: %tuple.type.471 = tuple_value (%.loc34_4, %.loc34_7) -// CHECK:STDOUT: %.loc34_8.2: %tuple.type.471 = converted %.loc34_8.1, %tuple.loc34 +// CHECK:STDOUT: %tuple.loc34: %tuple.type.d07 = tuple_value (%.loc34_4, %.loc34_7) +// CHECK:STDOUT: %.loc34_8.2: %tuple.type.d07 = converted %.loc34_8.1, %tuple.loc34 // CHECK:STDOUT: %int_32.loc39_3: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc39_3: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc39_9: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc39_9: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32 [template = constants.%ptr.dc3] +// CHECK:STDOUT: %ptr: type = ptr_type %i32 [template = constants.%ptr.235] // CHECK:STDOUT: assign %i32.loc39_3, %ptr // CHECK:STDOUT: %int_1.loc44: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc44: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] @@ -225,32 +225,32 @@ fn Main() { // CHECK:STDOUT: %int_1.loc49: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc49: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc49: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc49_12: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc49_12: = bound_method %int_1.loc49, %impl.elem0.loc49_12 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc49_12: = specific_function %Convert.bound.loc49_12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc49_12: init %i32 = call %Convert.specific_fn.loc49_12(%int_1.loc49) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc49_12.1: %i32 = value_of_initializer %int.convert_checked.loc49_12 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc49_12.2: %i32 = converted %int_1.loc49, %.loc49_12.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc49_12: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc49_12: = bound_method %int_1.loc49, %impl.elem0.loc49_12 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc49_12: = specific_function %Convert.bound.loc49_12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc49_12: init %i32 = call %Convert.specific_fn.loc49_12(%int_1.loc49) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc49_12.1: %i32 = value_of_initializer %int.convert_checked.loc49_12 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc49_12.2: %i32 = converted %int_1.loc49, %.loc49_12.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: br !if.expr.result.loc49(%.loc49_12.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc49: // CHECK:STDOUT: %int_2.loc49: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc49_19: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc49_19: = bound_method %int_2.loc49, %impl.elem0.loc49_19 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc49_19: = specific_function %Convert.bound.loc49_19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc49_19: init %i32 = call %Convert.specific_fn.loc49_19(%int_2.loc49) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc49_19.1: %i32 = value_of_initializer %int.convert_checked.loc49_19 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc49_19.2: %i32 = converted %int_2.loc49, %.loc49_19.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc49_19: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc49_19: = bound_method %int_2.loc49, %impl.elem0.loc49_19 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc49_19: = specific_function %Convert.bound.loc49_19, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc49_19: init %i32 = call %Convert.specific_fn.loc49_19(%int_2.loc49) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc49_19.1: %i32 = value_of_initializer %int.convert_checked.loc49_19 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc49_19.2: %i32 = converted %int_2.loc49, %.loc49_19.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: br !if.expr.result.loc49(%.loc49_19.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc49: -// CHECK:STDOUT: %.loc49_4: %i32 = block_arg !if.expr.result.loc49 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc49_4: %i32 = block_arg !if.expr.result.loc49 [template = constants.%int_1.5d2] // CHECK:STDOUT: %int_3.loc49: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc49_27: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc49_27: = bound_method %int_3.loc49, %impl.elem0.loc49_27 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc49_27: = specific_function %Convert.bound.loc49_27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc49_27: init %i32 = call %Convert.specific_fn.loc49_27(%int_3.loc49) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc49_27: init %i32 = converted %int_3.loc49, %int.convert_checked.loc49_27 [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0.loc49_27: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc49_27: = bound_method %int_3.loc49, %impl.elem0.loc49_27 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc49_27: = specific_function %Convert.bound.loc49_27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc49_27: init %i32 = call %Convert.specific_fn.loc49_27(%int_3.loc49) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc49_27: init %i32 = converted %int_3.loc49, %int.convert_checked.loc49_27 [template = constants.%int_3.822] // CHECK:STDOUT: assign %.loc49_4, %.loc49_27 // CHECK:STDOUT: %a.var: ref %i32 = var a // CHECK:STDOUT: %a: ref %i32 = bind_name a, %a.var @@ -270,11 +270,11 @@ fn Main() { // CHECK:STDOUT: !if.expr.result.loc56: // CHECK:STDOUT: %.loc56_4: %i32 = block_arg !if.expr.result.loc56 // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [template = constants.%int_10.64f] -// CHECK:STDOUT: %impl.elem0.loc56: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc56: = bound_method %int_10, %impl.elem0.loc56 [template = constants.%Convert.bound.d24] -// CHECK:STDOUT: %Convert.specific_fn.loc56: = specific_function %Convert.bound.loc56, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.970] -// CHECK:STDOUT: %int.convert_checked.loc56: init %i32 = call %Convert.specific_fn.loc56(%int_10) [template = constants.%int_10.55a] -// CHECK:STDOUT: %.loc56_27: init %i32 = converted %int_10, %int.convert_checked.loc56 [template = constants.%int_10.55a] +// CHECK:STDOUT: %impl.elem0.loc56: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc56: = bound_method %int_10, %impl.elem0.loc56 [template = constants.%Convert.bound.491] +// CHECK:STDOUT: %Convert.specific_fn.loc56: = specific_function %Convert.bound.loc56, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.e67] +// CHECK:STDOUT: %int.convert_checked.loc56: init %i32 = call %Convert.specific_fn.loc56(%int_10) [template = constants.%int_10.265] +// CHECK:STDOUT: %.loc56_27: init %i32 = converted %int_10, %int.convert_checked.loc56 [template = constants.%int_10.265] // CHECK:STDOUT: assign %.loc56_4, %.loc56_27 // 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 922d6d620914..cd4bd77a95f1 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -31,25 +31,25 @@ fn Main() { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -77,12 +77,12 @@ fn Main() { // CHECK:STDOUT: fn @F() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_25.2: %i32 = converted %int_0, %.loc11_25.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_25.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_25.2: %i32 = converted %int_0, %.loc11_25.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc11_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -91,11 +91,11 @@ fn Main() { // CHECK:STDOUT: %a.var: ref %i32 = var a // CHECK:STDOUT: %a: ref %i32 = bind_name a, %a.var // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_3, %impl.elem0 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc14: init %i32 = converted %int_3, %int.convert_checked [template = constants.%int_3.25b] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_3, %impl.elem0 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc14: init %i32 = converted %int_3, %int.convert_checked [template = constants.%int_3.822] // CHECK:STDOUT: assign %a.var, %.loc14 // CHECK:STDOUT: %a.ref.loc19_3: ref %i32 = name_ref a, %a // CHECK:STDOUT: %a.ref.loc19_7: ref %i32 = name_ref a, %a diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon index 2453f89b5728..d11f4131fc72 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon @@ -28,8 +28,8 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // 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 457d1f969f23..b71ffdcb6cfa 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon @@ -27,20 +27,20 @@ fn Main() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_3.1ba, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_3.1ba, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] // CHECK:STDOUT: %float: f64 = float_literal 5.6000000000000005 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -60,11 +60,11 @@ fn Main() { // CHECK:STDOUT: %a.var: ref %i32 = var a // CHECK:STDOUT: %a: ref %i32 = bind_name a, %a.var // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_3, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_3, %int.convert_checked [template = constants.%int_3.25b] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_3, %int.convert_checked [template = constants.%int_3.822] // CHECK:STDOUT: assign %a.var, %.loc12 // CHECK:STDOUT: %a.ref: ref %i32 = name_ref a, %a // CHECK:STDOUT: %float: f64 = float_literal 5.6000000000000005 [template = constants.%float] 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 499d1dba1220..ee7e9c3761a1 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon @@ -32,8 +32,8 @@ fn Main() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Add = %import_ref.4b5 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Add = %import_ref.fe6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // 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 30b5750bb9f1..023c25472562 100644 --- a/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon @@ -28,8 +28,8 @@ fn Main() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Add = %import_ref.4b5 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Add = %import_ref.fe6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/add.carbon b/toolchain/check/testdata/operators/overloaded/add.carbon index 5b25f44e3773..4303d8541b1b 100644 --- a/toolchain/check/testdata/operators/overloaded/add.carbon +++ b/toolchain/check/testdata/operators/overloaded/add.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.88c: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.603: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.6dd: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.ec5: %Op.type.6dd = struct_value () [template] +// CHECK:STDOUT: %Op.type.545: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.796: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.7a3: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.c84: %Op.type.7a3 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %AddAssign.type: type = facet_type <@AddAssign> [template] -// CHECK:STDOUT: %Op.type.374: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.b09: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.421: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.95d: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.e24: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.f0f: %Op.type.e24 = struct_value () [template] +// CHECK:STDOUT: %Op.type.0b8: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.d8e: %Op.type.0b8 = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Add = %import_ref.4b5 -// CHECK:STDOUT: .AddAssign = %import_ref.48d +// CHECK:STDOUT: .Add = %import_ref.fe6 +// CHECK:STDOUT: .AddAssign = %import_ref.e1b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.4b5: type = import_ref Core//prelude/operators/arithmetic, Add, loaded [template = constants.%Add.type] -// CHECK:STDOUT: %import_ref.48d: type = import_ref Core//prelude/operators/arithmetic, AddAssign, loaded [template = constants.%AddAssign.type] +// CHECK:STDOUT: %import_ref.fe6: type = import_ref Core//prelude/operators/arithmetic, Add, loaded [template = constants.%Add.type] +// CHECK:STDOUT: %import_ref.e1b: type = import_ref Core//prelude/operators/arithmetic, AddAssign, loaded [template = constants.%AddAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.4b5 [template = constants.%Add.type] +// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.fe6 [template = constants.%Add.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.603] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.796] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %AddAssign.ref: type = name_ref AddAssign, imports.%import_ref.48d [template = constants.%AddAssign.type] +// CHECK:STDOUT: %AddAssign.ref: type = name_ref AddAssign, imports.%import_ref.e1b [template = constants.%AddAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.b09] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.95d] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Add.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.6dd = fn_decl @Op.2 [template = constants.%Op.ec5] { +// CHECK:STDOUT: %Op.decl: %Op.type.7a3 = fn_decl @Op.2 [template = constants.%Op.c84] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %AddAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.e24 = fn_decl @Op.4 [template = constants.%Op.f0f] { +// CHECK:STDOUT: %Op.decl: %Op.type.0b8 = fn_decl @Op.4 [template = constants.%Op.d8e] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.88c = impl_witness_access constants.%impl_witness.603, element0 [template = constants.%Op.ec5] +// CHECK:STDOUT: %impl.elem0: %Op.type.545 = impl_witness_access constants.%impl_witness.796, element0 [template = constants.%Op.c84] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.374 = impl_witness_access constants.%impl_witness.b09, element0 [template = constants.%Op.f0f] +// CHECK:STDOUT: %impl.elem0: %Op.type.421 = impl_witness_access constants.%impl_witness.95d, element0 [template = constants.%Op.d8e] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/bit_and.carbon b/toolchain/check/testdata/operators/overloaded/bit_and.carbon index 897a187c557c..a636fee98794 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_and.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_and.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %BitAnd.type: type = facet_type <@BitAnd> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.fce: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.3bd: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.157: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.e2c: %Op.type.157 = struct_value () [template] +// CHECK:STDOUT: %Op.type.27a: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.5af: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.45e: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.c43: %Op.type.45e = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %BitAndAssign.type: type = facet_type <@BitAndAssign> [template] -// CHECK:STDOUT: %Op.type.160: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.862: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.93f: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.762: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.608: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.477: %Op.type.608 = struct_value () [template] +// CHECK:STDOUT: %Op.type.969: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.747: %Op.type.969 = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .BitAnd = %import_ref.45c -// CHECK:STDOUT: .BitAndAssign = %import_ref.fab +// CHECK:STDOUT: .BitAnd = %import_ref.b14 +// CHECK:STDOUT: .BitAndAssign = %import_ref.d81 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.45c: type = import_ref Core//prelude/operators/bitwise, BitAnd, loaded [template = constants.%BitAnd.type] -// CHECK:STDOUT: %import_ref.fab: type = import_ref Core//prelude/operators/bitwise, BitAndAssign, loaded [template = constants.%BitAndAssign.type] +// CHECK:STDOUT: %import_ref.b14: type = import_ref Core//prelude/operators/bitwise, BitAnd, loaded [template = constants.%BitAnd.type] +// CHECK:STDOUT: %import_ref.d81: type = import_ref Core//prelude/operators/bitwise, BitAndAssign, loaded [template = constants.%BitAndAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %BitAnd.ref: type = name_ref BitAnd, imports.%import_ref.45c [template = constants.%BitAnd.type] +// CHECK:STDOUT: %BitAnd.ref: type = name_ref BitAnd, imports.%import_ref.b14 [template = constants.%BitAnd.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.3bd] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.5af] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %BitAndAssign.ref: type = name_ref BitAndAssign, imports.%import_ref.fab [template = constants.%BitAndAssign.type] +// CHECK:STDOUT: %BitAndAssign.ref: type = name_ref BitAndAssign, imports.%import_ref.d81 [template = constants.%BitAndAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.862] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.762] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %BitAnd.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.157 = fn_decl @Op.2 [template = constants.%Op.e2c] { +// CHECK:STDOUT: %Op.decl: %Op.type.45e = fn_decl @Op.2 [template = constants.%Op.c43] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %BitAndAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.608 = fn_decl @Op.4 [template = constants.%Op.477] { +// CHECK:STDOUT: %Op.decl: %Op.type.969 = fn_decl @Op.4 [template = constants.%Op.747] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.fce = impl_witness_access constants.%impl_witness.3bd, element0 [template = constants.%Op.e2c] +// CHECK:STDOUT: %impl.elem0: %Op.type.27a = impl_witness_access constants.%impl_witness.5af, element0 [template = constants.%Op.c43] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.160 = impl_witness_access constants.%impl_witness.862, element0 [template = constants.%Op.477] +// CHECK:STDOUT: %impl.elem0: %Op.type.93f = impl_witness_access constants.%impl_witness.762, element0 [template = constants.%Op.747] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon index 28c4ddf7a63e..42c0a013a1d2 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon @@ -31,10 +31,10 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %BitComplement.type: type = facet_type <@BitComplement> [template] -// CHECK:STDOUT: %Op.type.408: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.type.f25: type = fn_type @Op.1 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.fa6: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.ecf: %Op.type.fa6 = struct_value () [template] +// CHECK:STDOUT: %Op.type.544: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.bf2: %Op.type.544 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] @@ -42,11 +42,11 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .BitComplement = %import_ref.7f8 +// CHECK:STDOUT: .BitComplement = %import_ref.009 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.7f8: type = import_ref Core//prelude/operators/bitwise, BitComplement, loaded [template = constants.%BitComplement.type] +// CHECK:STDOUT: %import_ref.009: type = import_ref Core//prelude/operators/bitwise, BitComplement, loaded [template = constants.%BitComplement.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -60,7 +60,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %BitComplement.ref: type = name_ref BitComplement, imports.%import_ref.7f8 [template = constants.%BitComplement.type] +// CHECK:STDOUT: %BitComplement.ref: type = name_ref BitComplement, imports.%import_ref.009 [template = constants.%BitComplement.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { @@ -79,7 +79,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %BitComplement.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.fa6 = fn_decl @Op.2 [template = constants.%Op.ecf] { +// CHECK:STDOUT: %Op.decl: %Op.type.544 = fn_decl @Op.2 [template = constants.%Op.bf2] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %C = return_slot_pattern @@ -117,7 +117,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: fn @TestOp(%a.param_patt: %C) -> %return.param_patt: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem0: %Op.type.408 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.ecf] +// CHECK:STDOUT: %impl.elem0: %Op.type.f25 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.bf2] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc23: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref) to %.loc23 diff --git a/toolchain/check/testdata/operators/overloaded/bit_or.carbon b/toolchain/check/testdata/operators/overloaded/bit_or.carbon index 4e6b4ef2e2a3..d3fa0fea1027 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_or.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_or.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %BitOr.type: type = facet_type <@BitOr> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.933: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.cad: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.875: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.35d: %Op.type.875 = struct_value () [template] +// CHECK:STDOUT: %Op.type.9bb: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.e68: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.951: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.59a: %Op.type.951 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %BitOrAssign.type: type = facet_type <@BitOrAssign> [template] -// CHECK:STDOUT: %Op.type.27c: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.2d6: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.099: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.85b: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.d3b: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.93e: %Op.type.d3b = struct_value () [template] +// CHECK:STDOUT: %Op.type.8ba: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.b27: %Op.type.8ba = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .BitOr = %import_ref.6fc -// CHECK:STDOUT: .BitOrAssign = %import_ref.fed +// CHECK:STDOUT: .BitOr = %import_ref.8fa +// CHECK:STDOUT: .BitOrAssign = %import_ref.545 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.6fc: type = import_ref Core//prelude/operators/bitwise, BitOr, loaded [template = constants.%BitOr.type] -// CHECK:STDOUT: %import_ref.fed: type = import_ref Core//prelude/operators/bitwise, BitOrAssign, loaded [template = constants.%BitOrAssign.type] +// CHECK:STDOUT: %import_ref.8fa: type = import_ref Core//prelude/operators/bitwise, BitOr, loaded [template = constants.%BitOr.type] +// CHECK:STDOUT: %import_ref.545: type = import_ref Core//prelude/operators/bitwise, BitOrAssign, loaded [template = constants.%BitOrAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %BitOr.ref: type = name_ref BitOr, imports.%import_ref.6fc [template = constants.%BitOr.type] +// CHECK:STDOUT: %BitOr.ref: type = name_ref BitOr, imports.%import_ref.8fa [template = constants.%BitOr.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.cad] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.e68] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %BitOrAssign.ref: type = name_ref BitOrAssign, imports.%import_ref.fed [template = constants.%BitOrAssign.type] +// CHECK:STDOUT: %BitOrAssign.ref: type = name_ref BitOrAssign, imports.%import_ref.545 [template = constants.%BitOrAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.2d6] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.85b] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %BitOr.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.875 = fn_decl @Op.2 [template = constants.%Op.35d] { +// CHECK:STDOUT: %Op.decl: %Op.type.951 = fn_decl @Op.2 [template = constants.%Op.59a] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %BitOrAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.d3b = fn_decl @Op.4 [template = constants.%Op.93e] { +// CHECK:STDOUT: %Op.decl: %Op.type.8ba = fn_decl @Op.4 [template = constants.%Op.b27] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.933 = impl_witness_access constants.%impl_witness.cad, element0 [template = constants.%Op.35d] +// CHECK:STDOUT: %impl.elem0: %Op.type.9bb = impl_witness_access constants.%impl_witness.e68, element0 [template = constants.%Op.59a] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.27c = impl_witness_access constants.%impl_witness.2d6, element0 [template = constants.%Op.93e] +// CHECK:STDOUT: %impl.elem0: %Op.type.099 = impl_witness_access constants.%impl_witness.85b, element0 [template = constants.%Op.b27] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon index a85c6f4f0003..cbfc56d6b30b 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %BitXor.type: type = facet_type <@BitXor> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.e5e: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.8a1: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.bba: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.6c5: %Op.type.bba = struct_value () [template] +// CHECK:STDOUT: %Op.type.e96: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.01d: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.672: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.442: %Op.type.672 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %BitXorAssign.type: type = facet_type <@BitXorAssign> [template] -// CHECK:STDOUT: %Op.type.0c9: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.7ad: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.58d: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.8dc: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.b9b: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.622: %Op.type.b9b = struct_value () [template] +// CHECK:STDOUT: %Op.type.8ab: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.67d: %Op.type.8ab = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .BitXor = %import_ref.ebe -// CHECK:STDOUT: .BitXorAssign = %import_ref.a51 +// CHECK:STDOUT: .BitXor = %import_ref.73c +// CHECK:STDOUT: .BitXorAssign = %import_ref.9b8d // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.ebe: type = import_ref Core//prelude/operators/bitwise, BitXor, loaded [template = constants.%BitXor.type] -// CHECK:STDOUT: %import_ref.a51: type = import_ref Core//prelude/operators/bitwise, BitXorAssign, loaded [template = constants.%BitXorAssign.type] +// CHECK:STDOUT: %import_ref.73c: type = import_ref Core//prelude/operators/bitwise, BitXor, loaded [template = constants.%BitXor.type] +// CHECK:STDOUT: %import_ref.9b8d: type = import_ref Core//prelude/operators/bitwise, BitXorAssign, loaded [template = constants.%BitXorAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %BitXor.ref: type = name_ref BitXor, imports.%import_ref.ebe [template = constants.%BitXor.type] +// CHECK:STDOUT: %BitXor.ref: type = name_ref BitXor, imports.%import_ref.73c [template = constants.%BitXor.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.8a1] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.01d] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %BitXorAssign.ref: type = name_ref BitXorAssign, imports.%import_ref.a51 [template = constants.%BitXorAssign.type] +// CHECK:STDOUT: %BitXorAssign.ref: type = name_ref BitXorAssign, imports.%import_ref.9b8d [template = constants.%BitXorAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.7ad] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.8dc] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %BitXor.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.bba = fn_decl @Op.2 [template = constants.%Op.6c5] { +// CHECK:STDOUT: %Op.decl: %Op.type.672 = fn_decl @Op.2 [template = constants.%Op.442] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %BitXorAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.b9b = fn_decl @Op.4 [template = constants.%Op.622] { +// CHECK:STDOUT: %Op.decl: %Op.type.8ab = fn_decl @Op.4 [template = constants.%Op.67d] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.e5e = impl_witness_access constants.%impl_witness.8a1, element0 [template = constants.%Op.6c5] +// CHECK:STDOUT: %impl.elem0: %Op.type.e96 = impl_witness_access constants.%impl_witness.01d, element0 [template = constants.%Op.442] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.0c9 = impl_witness_access constants.%impl_witness.7ad, element0 [template = constants.%Op.622] +// CHECK:STDOUT: %impl.elem0: %Op.type.58d = impl_witness_access constants.%impl_witness.8dc, element0 [template = constants.%Op.67d] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/dec.carbon b/toolchain/check/testdata/operators/overloaded/dec.carbon index 5d56e258c3e8..84e7bdb49b1b 100644 --- a/toolchain/check/testdata/operators/overloaded/dec.carbon +++ b/toolchain/check/testdata/operators/overloaded/dec.carbon @@ -31,11 +31,11 @@ fn TestOp() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Dec.type: type = facet_type <@Dec> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.b37: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.type.633: type = fn_type @Op.1 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.921: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.053: %Op.type.921 = struct_value () [template] +// CHECK:STDOUT: %Op.type.9e0: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.cf9: %Op.type.9e0 = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] @@ -43,11 +43,11 @@ fn TestOp() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Dec = %import_ref.c7b +// CHECK:STDOUT: .Dec = %import_ref.64d // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.c7b: type = import_ref Core//prelude/operators/arithmetic, Dec, loaded [template = constants.%Dec.type] +// CHECK:STDOUT: %import_ref.64d: type = import_ref Core//prelude/operators/arithmetic, Dec, loaded [template = constants.%Dec.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -61,14 +61,14 @@ fn TestOp() { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Dec.ref: type = name_ref Dec, imports.%import_ref.c7b [template = constants.%Dec.type] +// CHECK:STDOUT: %Dec.ref: type = name_ref Dec, imports.%import_ref.64d [template = constants.%Dec.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Dec.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.921 = fn_decl @Op.2 [template = constants.%Op.053] { +// CHECK:STDOUT: %Op.decl: %Op.type.9e0 = fn_decl @Op.2 [template = constants.%Op.cf9] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc18_9: auto = addr_pattern %self.param_patt @@ -105,7 +105,7 @@ fn TestOp() { // CHECK:STDOUT: %.loc22_16: init %C = converted %.loc22_15.1, %.loc22_15.2 [template = constants.%C.val] // CHECK:STDOUT: assign %c.var, %.loc22_16 // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %impl.elem0: %Op.type.b37 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.053] +// CHECK:STDOUT: %impl.elem0: %Op.type.633 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.cf9] // CHECK:STDOUT: %Op.bound: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.ref // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr) diff --git a/toolchain/check/testdata/operators/overloaded/div.carbon b/toolchain/check/testdata/operators/overloaded/div.carbon index 97d252f12018..980bbfa502cb 100644 --- a/toolchain/check/testdata/operators/overloaded/div.carbon +++ b/toolchain/check/testdata/operators/overloaded/div.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Div.type: type = facet_type <@Div> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.96a: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.7ea: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.4a4: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.740: %Op.type.4a4 = struct_value () [template] +// CHECK:STDOUT: %Op.type.784: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.745: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.750: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.21e: %Op.type.750 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %DivAssign.type: type = facet_type <@DivAssign> [template] -// CHECK:STDOUT: %Op.type.1c7: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.33c: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.b95: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.d13: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.5ac: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.378: %Op.type.5ac = struct_value () [template] +// CHECK:STDOUT: %Op.type.b04: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.27c: %Op.type.b04 = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Div = %import_ref.f0c -// CHECK:STDOUT: .DivAssign = %import_ref.227 +// CHECK:STDOUT: .Div = %import_ref.abc +// CHECK:STDOUT: .DivAssign = %import_ref.ed3 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.f0c: type = import_ref Core//prelude/operators/arithmetic, Div, loaded [template = constants.%Div.type] -// CHECK:STDOUT: %import_ref.227: type = import_ref Core//prelude/operators/arithmetic, DivAssign, loaded [template = constants.%DivAssign.type] +// CHECK:STDOUT: %import_ref.abc: type = import_ref Core//prelude/operators/arithmetic, Div, loaded [template = constants.%Div.type] +// CHECK:STDOUT: %import_ref.ed3: type = import_ref Core//prelude/operators/arithmetic, DivAssign, loaded [template = constants.%DivAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Div.ref: type = name_ref Div, imports.%import_ref.f0c [template = constants.%Div.type] +// CHECK:STDOUT: %Div.ref: type = name_ref Div, imports.%import_ref.abc [template = constants.%Div.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.7ea] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.745] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %DivAssign.ref: type = name_ref DivAssign, imports.%import_ref.227 [template = constants.%DivAssign.type] +// CHECK:STDOUT: %DivAssign.ref: type = name_ref DivAssign, imports.%import_ref.ed3 [template = constants.%DivAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.33c] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.d13] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Div.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.4a4 = fn_decl @Op.2 [template = constants.%Op.740] { +// CHECK:STDOUT: %Op.decl: %Op.type.750 = fn_decl @Op.2 [template = constants.%Op.21e] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %DivAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.5ac = fn_decl @Op.4 [template = constants.%Op.378] { +// CHECK:STDOUT: %Op.decl: %Op.type.b04 = fn_decl @Op.4 [template = constants.%Op.27c] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.96a = impl_witness_access constants.%impl_witness.7ea, element0 [template = constants.%Op.740] +// CHECK:STDOUT: %impl.elem0: %Op.type.784 = impl_witness_access constants.%impl_witness.745, element0 [template = constants.%Op.21e] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.1c7 = impl_witness_access constants.%impl_witness.33c, element0 [template = constants.%Op.378] +// CHECK:STDOUT: %impl.elem0: %Op.type.b95 = impl_witness_access constants.%impl_witness.d13, element0 [template = constants.%Op.27c] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/eq.carbon b/toolchain/check/testdata/operators/overloaded/eq.carbon index 6c6b35005fd0..068f697e5c57 100644 --- a/toolchain/check/testdata/operators/overloaded/eq.carbon +++ b/toolchain/check/testdata/operators/overloaded/eq.carbon @@ -89,15 +89,15 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Eq.type: type = facet_type <@Eq> [template] -// CHECK:STDOUT: %Equal.type.91b: type = fn_type @Equal.1 [template] -// CHECK:STDOUT: %NotEqual.type.d35: type = fn_type @NotEqual.1 [template] +// CHECK:STDOUT: %Equal.type.79c: type = fn_type @Equal.1 [template] +// CHECK:STDOUT: %NotEqual.type.e6c: type = fn_type @NotEqual.1 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Equal.decl, @impl.1.%NotEqual.decl) [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [template] -// CHECK:STDOUT: %Equal.type.e09: type = fn_type @Equal.2 [template] -// CHECK:STDOUT: %Equal.960: %Equal.type.e09 = struct_value () [template] -// CHECK:STDOUT: %NotEqual.type.3bf: type = fn_type @NotEqual.2 [template] -// CHECK:STDOUT: %NotEqual.ba6: %NotEqual.type.3bf = struct_value () [template] +// CHECK:STDOUT: %Equal.type.b4a: type = fn_type @Equal.2 [template] +// CHECK:STDOUT: %Equal.f96: %Equal.type.b4a = struct_value () [template] +// CHECK:STDOUT: %NotEqual.type.a7d: type = fn_type @NotEqual.2 [template] +// CHECK:STDOUT: %NotEqual.c3f: %NotEqual.type.a7d = struct_value () [template] // CHECK:STDOUT: %TestEqual.type: type = fn_type @TestEqual [template] // CHECK:STDOUT: %TestEqual: %TestEqual.type = struct_value () [template] // CHECK:STDOUT: %TestNotEqual.type: type = fn_type @TestNotEqual [template] @@ -106,12 +106,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Eq = %import_ref.32e -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Eq = %import_ref.822 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.32e: type = import_ref Core//prelude/operators/comparison, Eq, loaded [template = constants.%Eq.type] +// CHECK:STDOUT: %import_ref.822: type = import_ref Core//prelude/operators/comparison, Eq, loaded [template = constants.%Eq.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -126,7 +126,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Eq.ref: type = name_ref Eq, imports.%import_ref.32e [template = constants.%Eq.type] +// CHECK:STDOUT: %Eq.ref: type = name_ref Eq, imports.%import_ref.822 [template = constants.%Eq.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Equal.decl, @impl.1.%NotEqual.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %TestEqual.decl: %TestEqual.type = fn_decl @TestEqual [template = constants.%TestEqual] { @@ -172,7 +172,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Eq.ref { -// CHECK:STDOUT: %Equal.decl: %Equal.type.e09 = fn_decl @Equal.2 [template = constants.%Equal.960] { +// CHECK:STDOUT: %Equal.decl: %Equal.type.b4a = fn_decl @Equal.2 [template = constants.%Equal.f96] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -192,7 +192,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return.param: ref bool = out_param runtime_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %NotEqual.decl: %NotEqual.type.3bf = fn_decl @NotEqual.2 [template = constants.%NotEqual.ba6] { +// CHECK:STDOUT: %NotEqual.decl: %NotEqual.type.a7d = fn_decl @NotEqual.2 [template = constants.%NotEqual.c3f] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -235,7 +235,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: %Equal.type.91b = impl_witness_access constants.%impl_witness, element0 [template = constants.%Equal.960] +// CHECK:STDOUT: %impl.elem0: %Equal.type.79c = impl_witness_access constants.%impl_witness, element0 [template = constants.%Equal.f96] // CHECK:STDOUT: %Equal.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %Equal.call: init bool = call %Equal.bound(%a.ref, %b.ref) // CHECK:STDOUT: %.loc12_16.1: bool = value_of_initializer %Equal.call @@ -247,7 +247,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: %NotEqual.type.d35 = impl_witness_access constants.%impl_witness, element1 [template = constants.%NotEqual.ba6] +// CHECK:STDOUT: %impl.elem1: %NotEqual.type.e6c = impl_witness_access constants.%impl_witness, element1 [template = constants.%NotEqual.c3f] // CHECK:STDOUT: %NotEqual.bound: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: %NotEqual.call: init bool = call %NotEqual.bound(%a.ref, %b.ref) // CHECK:STDOUT: %.loc16_16.1: bool = value_of_initializer %NotEqual.call @@ -271,8 +271,8 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Eq = %import_ref.32e +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Eq = %import_ref.822 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -359,14 +359,14 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %Eq.type: type = facet_type <@Eq> [template] -// CHECK:STDOUT: %Equal.type.91b: type = fn_type @Equal.1 [template] +// CHECK:STDOUT: %Equal.type.79c: type = fn_type @Equal.1 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Equal.decl, @impl.1.%NotEqual.decl) [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [template] -// CHECK:STDOUT: %Equal.type.e09: type = fn_type @Equal.2 [template] -// CHECK:STDOUT: %Equal.960: %Equal.type.e09 = struct_value () [template] -// CHECK:STDOUT: %NotEqual.type.3bf: type = fn_type @NotEqual.2 [template] -// CHECK:STDOUT: %NotEqual.ba6: %NotEqual.type.3bf = struct_value () [template] +// CHECK:STDOUT: %Equal.type.b4a: type = fn_type @Equal.2 [template] +// CHECK:STDOUT: %Equal.f96: %Equal.type.b4a = struct_value () [template] +// CHECK:STDOUT: %NotEqual.type.a7d: type = fn_type @NotEqual.2 [template] +// CHECK:STDOUT: %NotEqual.c3f: %NotEqual.type.a7d = struct_value () [template] // CHECK:STDOUT: %TestRhsBad.type: type = fn_type @TestRhsBad [template] // CHECK:STDOUT: %TestRhsBad: %TestRhsBad.type = struct_value () [template] // CHECK:STDOUT: %TestLhsBad.type: type = fn_type @TestLhsBad [template] @@ -375,13 +375,13 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Eq = %import_ref.32e -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Eq = %import_ref.822 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.32e: type = import_ref Core//prelude/operators/comparison, Eq, loaded [template = constants.%Eq.type] +// CHECK:STDOUT: %import_ref.822: type = import_ref Core//prelude/operators/comparison, Eq, loaded [template = constants.%Eq.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -398,7 +398,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Eq.ref: type = name_ref Eq, imports.%import_ref.32e [template = constants.%Eq.type] +// CHECK:STDOUT: %Eq.ref: type = name_ref Eq, imports.%import_ref.822 [template = constants.%Eq.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Equal.decl, @impl.1.%NotEqual.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %TestRhsBad.decl: %TestRhsBad.type = fn_decl @TestRhsBad [template = constants.%TestRhsBad] { @@ -444,7 +444,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Eq.ref { -// CHECK:STDOUT: %Equal.decl: %Equal.type.e09 = fn_decl @Equal.2 [template = constants.%Equal.960] { +// CHECK:STDOUT: %Equal.decl: %Equal.type.b4a = fn_decl @Equal.2 [template = constants.%Equal.f96] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -464,7 +464,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return.param: ref bool = out_param runtime_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %NotEqual.decl: %NotEqual.type.3bf = fn_decl @NotEqual.2 [template = constants.%NotEqual.ba6] { +// CHECK:STDOUT: %NotEqual.decl: %NotEqual.type.a7d = fn_decl @NotEqual.2 [template = constants.%NotEqual.c3f] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -515,7 +515,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %D = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Equal.type.91b = impl_witness_access constants.%impl_witness, element0 [template = constants.%Equal.960] +// CHECK:STDOUT: %impl.elem0: %Equal.type.79c = impl_witness_access constants.%impl_witness, element0 [template = constants.%Equal.f96] // CHECK:STDOUT: %Equal.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc23_15: %C = converted %b.ref, [template = ] // CHECK:STDOUT: %Equal.call: init bool = call %Equal.bound(%a.ref, ) diff --git a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon index 8aa0f7853a60..c339b1fe56cb 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon @@ -48,16 +48,16 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.4c0: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.9de: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.e3a: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.ec3: = impl_witness (@impl.1.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.d99: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.a92: %Op.type.d99 = struct_value () [template] +// CHECK:STDOUT: %Op.type.73a: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.0c9: %Op.type.73a = struct_value () [template] // CHECK:STDOUT: %AddAssign.type: type = facet_type <@AddAssign> [template] -// CHECK:STDOUT: %Op.type.374: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.b09: = impl_witness (@impl.2.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.e24: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.f0f: %Op.type.e24 = struct_value () [template] +// CHECK:STDOUT: %Op.type.421: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.95d: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.0b8: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.d8e: %Op.type.0b8 = struct_value () [template] // CHECK:STDOUT: %TestIncNonRef.type: type = fn_type @TestIncNonRef [template] // CHECK:STDOUT: %TestIncNonRef: %TestIncNonRef.type = struct_value () [template] // CHECK:STDOUT: %TestAddAssignNonRef.type: type = fn_type @TestAddAssignNonRef [template] @@ -66,13 +66,13 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Inc = %import_ref.ce2 -// CHECK:STDOUT: .AddAssign = %import_ref.48d +// CHECK:STDOUT: .Inc = %import_ref.04f +// CHECK:STDOUT: .AddAssign = %import_ref.e1b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.ce2: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [template = constants.%Inc.type] -// CHECK:STDOUT: %import_ref.48d: type = import_ref Core//prelude/operators/arithmetic, AddAssign, loaded [template = constants.%AddAssign.type] +// CHECK:STDOUT: %import_ref.04f: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [template = constants.%Inc.type] +// CHECK:STDOUT: %import_ref.e1b: type = import_ref Core//prelude/operators/arithmetic, AddAssign, loaded [template = constants.%AddAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -87,15 +87,15 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Inc.ref: type = name_ref Inc, imports.%import_ref.ce2 [template = constants.%Inc.type] +// CHECK:STDOUT: %Inc.ref: type = name_ref Inc, imports.%import_ref.04f [template = constants.%Inc.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.9de] +// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.ec3] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %AddAssign.ref: type = name_ref AddAssign, imports.%import_ref.48d [template = constants.%AddAssign.type] +// CHECK:STDOUT: %AddAssign.ref: type = name_ref AddAssign, imports.%import_ref.e1b [template = constants.%AddAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc18: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.b09] +// CHECK:STDOUT: %impl_witness.loc18: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.95d] // CHECK:STDOUT: %TestIncNonRef.decl: %TestIncNonRef.type = fn_decl @TestIncNonRef [template = constants.%TestIncNonRef] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -120,7 +120,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Inc.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.d99 = fn_decl @Op.2 [template = constants.%Op.a92] { +// CHECK:STDOUT: %Op.decl: %Op.type.73a = fn_decl @Op.2 [template = constants.%Op.0c9] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc16_9: auto = addr_pattern %self.param_patt @@ -139,7 +139,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %AddAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.e24 = fn_decl @Op.4 [template = constants.%Op.f0f] { +// CHECK:STDOUT: %Op.decl: %Op.type.0b8 = fn_decl @Op.4 [template = constants.%Op.d8e] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc19_9: auto = addr_pattern %self.param_patt @@ -177,7 +177,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: fn @TestIncNonRef(%a.param_patt: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem0: %Op.type.4c0 = impl_witness_access constants.%impl_witness.9de, element0 [template = constants.%Op.a92] +// CHECK:STDOUT: %impl.elem0: %Op.type.e3a = impl_witness_access constants.%impl_witness.ec3, element0 [template = constants.%Op.0c9] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound() // CHECK:STDOUT: return @@ -187,7 +187,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: %Op.type.374 = impl_witness_access constants.%impl_witness.b09, element0 [template = constants.%Op.f0f] +// CHECK:STDOUT: %impl.elem0: %Op.type.421 = impl_witness_access constants.%impl_witness.95d, element0 [template = constants.%Op.d8e] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(, %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 f9cd4a504779..f3cdce58b4ad 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon @@ -32,20 +32,20 @@ fn G(n: i32) { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Op.type.88c: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.type.545: type = fn_type @Op.1 [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %impl_witness.a03: = impl_witness (imports.%import_ref.c16), @impl.14(%int_32) [template] -// CHECK:STDOUT: %Op.type.16e: type = fn_type @Op.2, @impl.14(%int_32) [template] -// CHECK:STDOUT: %Op.ceb: %Op.type.16e = struct_value () [template] +// CHECK:STDOUT: %impl_witness.01d: = impl_witness (imports.%import_ref.344), @impl.14(%int_32) [template] +// CHECK:STDOUT: %Op.type.210: type = fn_type @Op.2, @impl.14(%int_32) [template] +// CHECK:STDOUT: %Op.c82: %Op.type.210 = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Add = %import_ref.4b5 -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Add = %import_ref.fe6 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -76,7 +76,7 @@ fn G(n: i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %undeclared.ref: = name_ref undeclared, [template = ] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1] -// CHECK:STDOUT: %impl.elem0: %Op.type.88c = impl_witness_access , element0 [template = ] +// CHECK:STDOUT: %impl.elem0: %Op.type.545 = impl_witness_access , element0 [template = ] // CHECK:STDOUT: %Op.bound: = bound_method %undeclared.ref, %impl.elem0 [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -85,7 +85,7 @@ fn G(n: i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %undeclared.ref: = name_ref undeclared, [template = ] -// CHECK:STDOUT: %impl.elem0: %Op.type.88c = impl_witness_access constants.%impl_witness.a03, element0 [template = constants.%Op.ceb] +// CHECK:STDOUT: %impl.elem0: %Op.type.545 = impl_witness_access constants.%impl_witness.01d, element0 [template = constants.%Op.c82] // CHECK:STDOUT: %Op.bound: = bound_method %n.ref, %impl.elem0 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index 5daaf4febb72..42ab973e6242 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -58,10 +58,10 @@ fn TestRef(b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Negate = %import_ref.a96 -// CHECK:STDOUT: .Add = %import_ref.4b5 -// CHECK:STDOUT: .AddAssign = %import_ref.48d -// CHECK:STDOUT: .Inc = %import_ref.ce2 +// CHECK:STDOUT: .Negate = %import_ref.6e9 +// CHECK:STDOUT: .Add = %import_ref.fe6 +// CHECK:STDOUT: .AddAssign = %import_ref.e1b +// CHECK:STDOUT: .Inc = %import_ref.04f // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon index bf54adb52633..95e2646d3a41 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon @@ -57,16 +57,16 @@ fn TestAssign(b: D) { // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.88c: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.603: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.6dd: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.ec5: %Op.type.6dd = struct_value () [template] +// CHECK:STDOUT: %Op.type.545: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.796: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.7a3: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.c84: %Op.type.7a3 = struct_value () [template] // CHECK:STDOUT: %AddAssign.type: type = facet_type <@AddAssign> [template] -// CHECK:STDOUT: %Op.type.374: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.b09: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.421: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.95d: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.e24: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.f0f: %Op.type.e24 = struct_value () [template] +// CHECK:STDOUT: %Op.type.0b8: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.d8e: %Op.type.0b8 = struct_value () [template] // CHECK:STDOUT: %Test.type: type = fn_type @Test [template] // CHECK:STDOUT: %Test: %Test.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -76,14 +76,14 @@ fn TestAssign(b: D) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Add = %import_ref.4b5 -// CHECK:STDOUT: .AddAssign = %import_ref.48d -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Add = %import_ref.fe6 +// CHECK:STDOUT: .AddAssign = %import_ref.e1b +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.4b5: type = import_ref Core//prelude/operators/arithmetic, Add, loaded [template = constants.%Add.type] -// CHECK:STDOUT: %import_ref.48d: type = import_ref Core//prelude/operators/arithmetic, AddAssign, loaded [template = constants.%AddAssign.type] +// CHECK:STDOUT: %import_ref.fe6: type = import_ref Core//prelude/operators/arithmetic, Add, loaded [template = constants.%Add.type] +// CHECK:STDOUT: %import_ref.e1b: type = import_ref Core//prelude/operators/arithmetic, AddAssign, loaded [template = constants.%AddAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -100,15 +100,15 @@ fn TestAssign(b: D) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.4b5 [template = constants.%Add.type] +// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%import_ref.fe6 [template = constants.%Add.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc16: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.603] +// CHECK:STDOUT: %impl_witness.loc16: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.796] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %AddAssign.ref: type = name_ref AddAssign, imports.%import_ref.48d [template = constants.%AddAssign.type] +// CHECK:STDOUT: %AddAssign.ref: type = name_ref AddAssign, imports.%import_ref.e1b [template = constants.%AddAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.b09] +// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.95d] // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [template = constants.%Test] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -138,7 +138,7 @@ fn TestAssign(b: D) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Add.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.6dd = fn_decl @Op.2 [template = constants.%Op.ec5] { +// CHECK:STDOUT: %Op.decl: %Op.type.7a3 = fn_decl @Op.2 [template = constants.%Op.c84] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -163,7 +163,7 @@ fn TestAssign(b: D) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %AddAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.e24 = fn_decl @Op.4 [template = constants.%Op.f0f] { +// CHECK:STDOUT: %Op.decl: %Op.type.0b8 = fn_decl @Op.4 [template = constants.%Op.d8e] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc20_9: auto = addr_pattern %self.param_patt @@ -210,7 +210,7 @@ fn TestAssign(b: D) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %D = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.88c = impl_witness_access constants.%impl_witness.603, element0 [template = constants.%Op.ec5] +// CHECK:STDOUT: %impl.elem0: %Op.type.545 = impl_witness_access constants.%impl_witness.796, element0 [template = constants.%Op.c84] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc23: ref %C = splice_block %return {} // CHECK:STDOUT: %.loc34: %C = converted %b.ref, [template = ] @@ -228,7 +228,7 @@ fn TestAssign(b: D) { // CHECK:STDOUT: assign %a.var, %.loc38_16 // CHECK:STDOUT: %a.ref: ref %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %D = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.374 = impl_witness_access constants.%impl_witness.b09, element0 [template = constants.%Op.f0f] +// CHECK:STDOUT: %impl.elem0: %Op.type.421 = impl_witness_access constants.%impl_witness.95d, element0 [template = constants.%Op.d8e] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %a.ref // CHECK:STDOUT: %.loc48: %C = converted %b.ref, [template = ] diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index e718085cadf6..5ff9edcde9d3 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -42,19 +42,19 @@ fn Test() { // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [template] // CHECK:STDOUT: %X.elem: type = unbound_element_type %X, %i32 [template] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [template] -// CHECK:STDOUT: %complete_type.9b7: = complete_type_witness %struct_type.n [template] +// CHECK:STDOUT: %complete_type.54b: = complete_type_witness %struct_type.n [template] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [template] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.type.e31: type = facet_type <@ImplicitAs, @ImplicitAs(%X)> [template] -// CHECK:STDOUT: %Convert.type.c7d: type = fn_type @Convert.1, @ImplicitAs(%X) [template] -// CHECK:STDOUT: %impl_witness.766: = impl_witness (@impl.1.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.4fa: type = fn_type @Convert.2 [template] -// CHECK:STDOUT: %Convert.7cd: %Convert.type.4fa = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.type.912: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.8f0: = impl_witness (@impl.2.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.02e: type = fn_type @Convert.3 [template] -// CHECK:STDOUT: %Convert.7a7: %Convert.type.02e = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.type.ac8: type = facet_type <@ImplicitAs, @ImplicitAs(%X)> [template] +// CHECK:STDOUT: %Convert.type.665: type = fn_type @Convert.1, @ImplicitAs(%X) [template] +// CHECK:STDOUT: %impl_witness.226: = impl_witness (@impl.1.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.853: type = fn_type @Convert.2 [template] +// CHECK:STDOUT: %Convert.08a: %Convert.type.853 = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.c53: = impl_witness (@impl.2.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.8a1: type = fn_type @Convert.3 [template] +// CHECK:STDOUT: %Convert.c7a: %Convert.type.8a1 = struct_value () [template] // CHECK:STDOUT: %Sink_i32.type: type = fn_type @Sink_i32 [template] // CHECK:STDOUT: %Sink_i32: %Sink_i32.type = struct_value () [template] // CHECK:STDOUT: %Sink_X.type: type = fn_type @Sink_X [template] @@ -63,22 +63,22 @@ fn Test() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Source.type: type = fn_type @Source [template] // CHECK:STDOUT: %Source: %Source.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.db1: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Source.specific_fn.7e6: = specific_function %Source, @Source(%T) [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] +// CHECK:STDOUT: %Source.specific_fn.ff0: = specific_function %Source, @Source(%T) [symbolic] // CHECK:STDOUT: %Test.type: type = fn_type @Test [template] // CHECK:STDOUT: %Test: %Test.type = struct_value () [template] -// CHECK:STDOUT: %Source.specific_fn.8f0: = specific_function %Source, @Source(%X) [template] -// CHECK:STDOUT: %Source.specific_fn.76e: = specific_function %Source, @Source(%i32) [template] +// CHECK:STDOUT: %Source.specific_fn.363: = specific_function %Source, @Source(%X) [template] +// CHECK:STDOUT: %Source.specific_fn.cc7: = specific_function %Source, @Source(%i32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.a69: %ImplicitAs.type.cc7 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %import_ref.d44: %ImplicitAs.type.cc7 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -96,20 +96,20 @@ fn Test() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.a69 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%X)> [template = constants.%ImplicitAs.type.e31] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%X)> [template = constants.%ImplicitAs.type.ac8] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.1.%Convert.decl) [template = constants.%impl_witness.766] +// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.1.%Convert.decl) [template = constants.%impl_witness.226] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.a69 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32)> [template = constants.%ImplicitAs.type.912] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32)> [template = constants.%ImplicitAs.type.205] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.2.%Convert.decl) [template = constants.%impl_witness.8f0] +// CHECK:STDOUT: %impl_witness.loc19: = impl_witness (@impl.2.%Convert.decl) [template = constants.%impl_witness.c53] // CHECK:STDOUT: %Sink_i32.decl: %Sink_i32.type = fn_decl @Sink_i32 [template = constants.%Sink_i32] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, runtime_param0 @@ -145,7 +145,7 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %i32 as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.4fa = fn_decl @Convert.2 [template = constants.%Convert.7cd] { +// CHECK:STDOUT: %Convert.decl: %Convert.type.853 = fn_decl @Convert.2 [template = constants.%Convert.08a] { // CHECK:STDOUT: %self.patt: %i32 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %i32 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %X = return_slot_pattern @@ -168,7 +168,7 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %X.ref as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.02e = fn_decl @Convert.3 [template = constants.%Convert.7a7] { +// CHECK:STDOUT: %Convert.decl: %Convert.type.8a1 = fn_decl @Convert.3 [template = constants.%Convert.c7a] { // CHECK:STDOUT: %self.patt: %X = binding_pattern self // CHECK:STDOUT: %self.param_patt: %X = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -190,7 +190,7 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: class @X { // CHECK:STDOUT: %.loc12: %X.elem = field_decl n, element0 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.9b7] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [template = constants.%complete_type.54b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X @@ -227,14 +227,14 @@ fn Test() { // CHECK:STDOUT: %T.patt.loc27_11.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc27_11.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @Source.%T.loc27_11.2 (%T) [symbolic = %require_complete (constants.%require_complete.db1)] -// CHECK:STDOUT: %Source.specific_fn.loc27_35.2: = specific_function constants.%Source, @Source(%T.loc27_11.2) [symbolic = %Source.specific_fn.loc27_35.2 (constants.%Source.specific_fn.7e6)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Source.%T.loc27_11.2 (%T) [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Source.specific_fn.loc27_35.2: = specific_function constants.%Source, @Source(%T.loc27_11.2) [symbolic = %Source.specific_fn.loc27_35.2 (constants.%Source.specific_fn.ff0)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.param_patt: type) -> @Source.%T.loc27_11.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Source.ref: %Source.type = name_ref Source, file.%Source.decl [template = constants.%Source] // CHECK:STDOUT: %T.ref.loc27_42: type = name_ref T, %T.loc27_11.1 [symbolic = %T.loc27_11.2 (constants.%T)] -// CHECK:STDOUT: %Source.specific_fn.loc27_35.1: = specific_function %Source.ref, @Source(constants.%T) [symbolic = %Source.specific_fn.loc27_35.2 (constants.%Source.specific_fn.7e6)] +// CHECK:STDOUT: %Source.specific_fn.loc27_35.1: = specific_function %Source.ref, @Source(constants.%T) [symbolic = %Source.specific_fn.loc27_35.2 (constants.%Source.specific_fn.ff0)] // CHECK:STDOUT: %Source.call: init @Source.%T.loc27_11.2 (%T) = call %Source.specific_fn.loc27_35.1() // CHECK:STDOUT: %.loc27_44.1: @Source.%T.loc27_11.2 (%T) = value_of_initializer %Source.call // CHECK:STDOUT: %.loc27_44.2: @Source.%T.loc27_11.2 (%T) = converted %Source.call, %.loc27_44.1 @@ -247,10 +247,10 @@ fn Test() { // CHECK:STDOUT: %Sink_i32.ref: %Sink_i32.type = name_ref Sink_i32, file.%Sink_i32.decl [template = constants.%Sink_i32] // CHECK:STDOUT: %Source.ref.loc30: %Source.type = name_ref Source, file.%Source.decl [template = constants.%Source] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X] -// CHECK:STDOUT: %Source.specific_fn.loc30: = specific_function %Source.ref.loc30, @Source(constants.%X) [template = constants.%Source.specific_fn.8f0] +// CHECK:STDOUT: %Source.specific_fn.loc30: = specific_function %Source.ref.loc30, @Source(constants.%X) [template = constants.%Source.specific_fn.363] // CHECK:STDOUT: %.loc30_20.1: ref %X = temporary_storage // CHECK:STDOUT: %Source.call.loc30: init %X = call %Source.specific_fn.loc30() to %.loc30_20.1 -// CHECK:STDOUT: %impl.elem0.loc30: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.8f0, element0 [template = constants.%Convert.7a7] +// CHECK:STDOUT: %impl.elem0.loc30: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.c53, element0 [template = constants.%Convert.c7a] // CHECK:STDOUT: %Convert.bound.loc30: = bound_method %Source.call.loc30, %impl.elem0.loc30 // CHECK:STDOUT: %.loc30_20.2: ref %X = temporary %.loc30_20.1, %Source.call.loc30 // CHECK:STDOUT: %.loc30_20.3: %X = bind_value %.loc30_20.2 @@ -262,9 +262,9 @@ fn Test() { // CHECK:STDOUT: %Source.ref.loc31: %Source.type = name_ref Source, file.%Source.decl [template = constants.%Source] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Source.specific_fn.loc31: = specific_function %Source.ref.loc31, @Source(constants.%i32) [template = constants.%Source.specific_fn.76e] +// CHECK:STDOUT: %Source.specific_fn.loc31: = specific_function %Source.ref.loc31, @Source(constants.%i32) [template = constants.%Source.specific_fn.cc7] // CHECK:STDOUT: %Source.call.loc31: init %i32 = call %Source.specific_fn.loc31() -// CHECK:STDOUT: %impl.elem0.loc31: %Convert.type.c7d = impl_witness_access constants.%impl_witness.766, element0 [template = constants.%Convert.7cd] +// CHECK:STDOUT: %impl.elem0.loc31: %Convert.type.665 = impl_witness_access constants.%impl_witness.226, element0 [template = constants.%Convert.08a] // CHECK:STDOUT: %Convert.bound.loc31: = bound_method %Source.call.loc31, %impl.elem0.loc31 // CHECK:STDOUT: %.loc31_20.1: ref %X = temporary_storage // CHECK:STDOUT: %.loc31_20.2: %i32 = value_of_initializer %Source.call.loc31 @@ -282,8 +282,8 @@ fn Test() { // CHECK:STDOUT: %T.patt.loc27_11.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 -// CHECK:STDOUT: %Source.specific_fn.loc27_35.2 => constants.%Source.specific_fn.7e6 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae +// CHECK:STDOUT: %Source.specific_fn.loc27_35.2 => constants.%Source.specific_fn.ff0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(%T.loc27_11.2) {} @@ -293,8 +293,8 @@ fn Test() { // CHECK:STDOUT: %T.patt.loc27_11.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.9b7 -// CHECK:STDOUT: %Source.specific_fn.loc27_35.2 => constants.%Source.specific_fn.8f0 +// CHECK:STDOUT: %require_complete => constants.%complete_type.54b +// CHECK:STDOUT: %Source.specific_fn.loc27_35.2 => constants.%Source.specific_fn.363 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(constants.%i32) { @@ -303,6 +303,6 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Source.specific_fn.loc27_35.2 => constants.%Source.specific_fn.76e +// CHECK:STDOUT: %Source.specific_fn.loc27_35.2 => constants.%Source.specific_fn.cc7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/inc.carbon b/toolchain/check/testdata/operators/overloaded/inc.carbon index 84df4c9a26bd..799271c2cd78 100644 --- a/toolchain/check/testdata/operators/overloaded/inc.carbon +++ b/toolchain/check/testdata/operators/overloaded/inc.carbon @@ -31,11 +31,11 @@ fn TestOp() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.4c0: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.type.e3a: type = fn_type @Op.1 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.d99: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.a92: %Op.type.d99 = struct_value () [template] +// CHECK:STDOUT: %Op.type.73a: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.0c9: %Op.type.73a = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] @@ -43,11 +43,11 @@ fn TestOp() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Inc = %import_ref.ce2 +// CHECK:STDOUT: .Inc = %import_ref.04f // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.ce2: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [template = constants.%Inc.type] +// CHECK:STDOUT: %import_ref.04f: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [template = constants.%Inc.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -61,14 +61,14 @@ fn TestOp() { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Inc.ref: type = name_ref Inc, imports.%import_ref.ce2 [template = constants.%Inc.type] +// CHECK:STDOUT: %Inc.ref: type = name_ref Inc, imports.%import_ref.04f [template = constants.%Inc.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Inc.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.d99 = fn_decl @Op.2 [template = constants.%Op.a92] { +// CHECK:STDOUT: %Op.decl: %Op.type.73a = fn_decl @Op.2 [template = constants.%Op.0c9] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc18_9: auto = addr_pattern %self.param_patt @@ -105,7 +105,7 @@ fn TestOp() { // CHECK:STDOUT: %.loc22_16: init %C = converted %.loc22_15.1, %.loc22_15.2 [template = constants.%C.val] // CHECK:STDOUT: assign %c.var, %.loc22_16 // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %impl.elem0: %Op.type.4c0 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.a92] +// CHECK:STDOUT: %impl.elem0: %Op.type.e3a = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.0c9] // CHECK:STDOUT: %Op.bound: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.ref // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr) diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index 39b87ef684e0..4002090c92a9 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -86,11 +86,11 @@ let x: i32 = c[0]; // CHECK:STDOUT: %SubscriptType.8ee: type = class_type @SubscriptType [template] // CHECK:STDOUT: %IndexWith.type.504: type = generic_interface_type @IndexWith [template] // CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.504 = struct_value () [template] -// CHECK:STDOUT: %IndexWith.type.2d3: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.8ee, %ElementType.e6b)> [template] -// CHECK:STDOUT: %At.type.38e: type = fn_type @At.1, @IndexWith(%SubscriptType.8ee, %ElementType.e6b) [template] +// CHECK:STDOUT: %IndexWith.type.e80: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.8ee, %ElementType.e6b)> [template] +// CHECK:STDOUT: %At.type.b3f: type = fn_type @At.1, @IndexWith(%SubscriptType.8ee, %ElementType.e6b) [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [template] -// CHECK:STDOUT: %At.type.afe: type = fn_type @At.2 [template] -// CHECK:STDOUT: %At.9bf: %At.type.afe = struct_value () [template] +// CHECK:STDOUT: %At.type.178: type = fn_type @At.2 [template] +// CHECK:STDOUT: %At.d43: %At.type.178 = struct_value () [template] // CHECK:STDOUT: %ElementType.val: %ElementType.e6b = struct_value () [template] // CHECK:STDOUT: %SubscriptType.val: %SubscriptType.8ee = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] @@ -98,11 +98,11 @@ let x: i32 = c[0]; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IndexWith = %import_ref.76d +// CHECK:STDOUT: .IndexWith = %import_ref.671 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.76d: %IndexWith.type.504 = import_ref Core//prelude/operators/index, IndexWith, loaded [template = constants.%IndexWith.generic] +// CHECK:STDOUT: %import_ref.671: %IndexWith.type.504 = import_ref Core//prelude/operators/index, IndexWith, loaded [template = constants.%IndexWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -122,16 +122,16 @@ let x: i32 = c[0]; // CHECK:STDOUT: impl_decl @impl [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.504 = name_ref IndexWith, imports.%import_ref.76d [template = constants.%IndexWith.generic] +// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.504 = name_ref IndexWith, imports.%import_ref.671 [template = constants.%IndexWith.generic] // CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [template = constants.%SubscriptType.8ee] // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, file.%ElementType.decl [template = constants.%ElementType.e6b] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.8ee, constants.%ElementType.e6b)> [template = constants.%IndexWith.type.2d3] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.8ee, constants.%ElementType.e6b)> [template = constants.%IndexWith.type.e80] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref as %IndexWith.type { -// CHECK:STDOUT: %At.decl: %At.type.afe = fn_decl @At.2 [template = constants.%At.9bf] { +// CHECK:STDOUT: %At.decl: %At.type.178 = fn_decl @At.2 [template = constants.%At.d43] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %subscript.patt: %SubscriptType.8ee = binding_pattern subscript @@ -205,7 +205,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %c: %C = bind_name c, %.loc15_14.2 // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %s.ref: %SubscriptType.8ee = name_ref s, %s -// CHECK:STDOUT: %impl.elem0: %At.type.38e = impl_witness_access constants.%impl_witness, element0 [template = constants.%At.9bf] +// CHECK:STDOUT: %impl.elem0: %At.type.b3f = impl_witness_access constants.%impl_witness, element0 [template = constants.%At.d43] // CHECK:STDOUT: %At.bound: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc16_25.1: ref %ElementType.e6b = temporary_storage // CHECK:STDOUT: %At.call: init %ElementType.e6b = call %At.bound(%c.ref, %s.ref) to %.loc16_25.1 @@ -221,43 +221,43 @@ let x: i32 = c[0]; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %IndexWith.type.504: type = generic_interface_type @IndexWith [template] // CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.504 = struct_value () [template] -// CHECK:STDOUT: %IndexWith.type.d22: type = facet_type <@IndexWith, @IndexWith(%i32, %i32)> [template] -// CHECK:STDOUT: %At.type.740: type = fn_type @At.1, @IndexWith(%i32, %i32) [template] -// CHECK:STDOUT: %impl_witness.d5f: = impl_witness (@impl.1.%At.decl) [template] -// CHECK:STDOUT: %At.type.37e: type = fn_type @At.2 [template] -// CHECK:STDOUT: %At.065: %At.type.37e = struct_value () [template] +// CHECK:STDOUT: %IndexWith.type.917: type = facet_type <@IndexWith, @IndexWith(%i32, %i32)> [template] +// CHECK:STDOUT: %At.type.d77: type = fn_type @At.1, @IndexWith(%i32, %i32) [template] +// CHECK:STDOUT: %impl_witness.123: = impl_witness (@impl.1.%At.decl) [template] +// CHECK:STDOUT: %At.type.9ac: type = fn_type @At.2 [template] +// CHECK:STDOUT: %At.642: %At.type.9ac = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.b33: = bound_method %int_5.64b, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.89d: = specific_function %Convert.bound.b33, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_1.c60, %int_5.70b) [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.ba9: = specific_function %Convert.bound.4e6, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_5.0f6) [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .IndexWith = %import_ref.76d -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .IndexWith = %import_ref.671 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.76d: %IndexWith.type.504 = import_ref Core//prelude/operators/index, IndexWith, loaded [template = constants.%IndexWith.generic] +// CHECK:STDOUT: %import_ref.671: %IndexWith.type.504 = import_ref Core//prelude/operators/index, IndexWith, loaded [template = constants.%IndexWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -273,22 +273,22 @@ let x: i32 = c[0]; // CHECK:STDOUT: %int_32.loc4_12: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc4_12: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc4_15.1: %tuple.type.24b = tuple_literal (%i32.loc4_7, %i32.loc4_12) -// CHECK:STDOUT: %.loc4_15.2: type = converted %.loc4_15.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc4_15.2: type = converted %.loc4_15.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.504 = name_ref IndexWith, imports.%import_ref.76d [template = constants.%IndexWith.generic] +// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.504 = name_ref IndexWith, imports.%import_ref.671 [template = constants.%IndexWith.generic] // CHECK:STDOUT: %int_32.loc4_35: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc4_35: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc4_40: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc4_40: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%i32, constants.%i32)> [template = constants.%IndexWith.type.d22] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%i32, constants.%i32)> [template = constants.%IndexWith.type.917] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%At.decl) [template = constants.%impl_witness.d5f] +// CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%At.decl) [template = constants.%impl_witness.123] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %.loc4_15.2 as %IndexWith.type { -// CHECK:STDOUT: %At.decl: %At.type.37e = fn_decl @At.2 [template = constants.%At.065] { -// CHECK:STDOUT: %self.patt: %tuple.type.471 = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %tuple.type.471 = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %At.decl: %At.type.9ac = fn_decl @At.2 [template = constants.%At.642] { +// CHECK:STDOUT: %self.patt: %tuple.type.d07 = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %tuple.type.d07 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %subscript.patt: %i32 = binding_pattern subscript // CHECK:STDOUT: %subscript.param_patt: %i32 = value_param_pattern %subscript.patt, runtime_param1 // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -296,9 +296,9 @@ let x: i32 = c[0]; // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc5_40: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc5_40: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %self.param: %tuple.type.471 = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.1.%.loc4_15.2 [template = constants.%tuple.type.471] -// CHECK:STDOUT: %self: %tuple.type.471 = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %tuple.type.d07 = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.1.%.loc4_15.2 [template = constants.%tuple.type.d07] +// CHECK:STDOUT: %self: %tuple.type.d07 = bind_name self, %self.param // CHECK:STDOUT: %subscript.param: %i32 = value_param runtime_param1 // CHECK:STDOUT: %.loc5: type = splice_block %i32.loc5_32 [template = constants.%i32] { // CHECK:STDOUT: %int_32.loc5_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] @@ -314,9 +314,9 @@ let x: i32 = c[0]; // CHECK:STDOUT: witness = file.%impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @At.2[%self.param_patt: %tuple.type.471](%subscript.param_patt: %i32) -> %i32 { +// CHECK:STDOUT: fn @At.2[%self.param_patt: %tuple.type.d07](%subscript.param_patt: %i32) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: %tuple.type.471 = name_ref self, %self +// CHECK:STDOUT: %self.ref: %tuple.type.d07 = name_ref self, %self // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %tuple.elem0: %i32 = tuple_access %self.ref, element0 // CHECK:STDOUT: return %tuple.elem0 @@ -327,30 +327,30 @@ let x: i32 = c[0]; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] // CHECK:STDOUT: %.loc10_26.1: %tuple.type.f94 = tuple_literal (%int_1, %int_5) -// CHECK:STDOUT: %impl.elem0.loc10_26.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc10_26.1: = bound_method %int_1, %impl.elem0.loc10_26.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc10_26.1: = specific_function %Convert.bound.loc10_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc10_26.1: init %i32 = call %Convert.specific_fn.loc10_26.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc10_26.2: %i32 = value_of_initializer %int.convert_checked.loc10_26.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc10_26.3: %i32 = converted %int_1, %.loc10_26.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc10_26.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc10_26.2: = bound_method %int_5, %impl.elem0.loc10_26.2 [template = constants.%Convert.bound.b33] -// CHECK:STDOUT: %Convert.specific_fn.loc10_26.2: = specific_function %Convert.bound.loc10_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.89d] -// CHECK:STDOUT: %int.convert_checked.loc10_26.2: init %i32 = call %Convert.specific_fn.loc10_26.2(%int_5) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc10_26.4: %i32 = value_of_initializer %int.convert_checked.loc10_26.2 [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc10_26.5: %i32 = converted %int_5, %.loc10_26.4 [template = constants.%int_5.70b] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%.loc10_26.3, %.loc10_26.5) [template = constants.%tuple] -// CHECK:STDOUT: %.loc10_27: %tuple.type.471 = converted %.loc10_26.1, %tuple [template = constants.%tuple] -// CHECK:STDOUT: %s: %tuple.type.471 = bind_name s, %.loc10_27 -// CHECK:STDOUT: %s.ref: %tuple.type.471 = name_ref s, %s +// CHECK:STDOUT: %impl.elem0.loc10_26.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc10_26.1: = bound_method %int_1, %impl.elem0.loc10_26.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc10_26.1: = specific_function %Convert.bound.loc10_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc10_26.1: init %i32 = call %Convert.specific_fn.loc10_26.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc10_26.2: %i32 = value_of_initializer %int.convert_checked.loc10_26.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc10_26.3: %i32 = converted %int_1, %.loc10_26.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc10_26.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc10_26.2: = bound_method %int_5, %impl.elem0.loc10_26.2 [template = constants.%Convert.bound.4e6] +// CHECK:STDOUT: %Convert.specific_fn.loc10_26.2: = specific_function %Convert.bound.loc10_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.ba9] +// CHECK:STDOUT: %int.convert_checked.loc10_26.2: init %i32 = call %Convert.specific_fn.loc10_26.2(%int_5) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc10_26.4: %i32 = value_of_initializer %int.convert_checked.loc10_26.2 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc10_26.5: %i32 = converted %int_5, %.loc10_26.4 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%.loc10_26.3, %.loc10_26.5) [template = constants.%tuple] +// CHECK:STDOUT: %.loc10_27: %tuple.type.d07 = converted %.loc10_26.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %s: %tuple.type.d07 = bind_name s, %.loc10_27 +// CHECK:STDOUT: %s.ref: %tuple.type.d07 = name_ref s, %s // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc11_17.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_0, %impl.elem0.loc11_17.1 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_17.1: %i32 = value_of_initializer %int.convert_checked.loc11 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_17.2: %i32 = converted %int_0, %.loc11_17.1 [template = constants.%int_0.f61] -// CHECK:STDOUT: %impl.elem0.loc11_17.2: %At.type.740 = impl_witness_access constants.%impl_witness.d5f, element0 [template = constants.%At.065] +// CHECK:STDOUT: %impl.elem0.loc11_17.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_0, %impl.elem0.loc11_17.1 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_17.1: %i32 = value_of_initializer %int.convert_checked.loc11 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_17.2: %i32 = converted %int_0, %.loc11_17.1 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %impl.elem0.loc11_17.2: %At.type.d77 = impl_witness_access constants.%impl_witness.123, element0 [template = constants.%At.642] // CHECK:STDOUT: %At.bound: = bound_method %s.ref, %impl.elem0.loc11_17.2 // CHECK:STDOUT: %At.call: init %i32 = call %At.bound(%s.ref, %.loc11_17.2) // CHECK:STDOUT: %.loc11_18.1: %i32 = value_of_initializer %At.call @@ -369,11 +369,11 @@ let x: i32 = c[0]; // CHECK:STDOUT: %SubscriptType.8ee: type = class_type @SubscriptType [template] // CHECK:STDOUT: %IndexWith.type.504: type = generic_interface_type @IndexWith [template] // CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.504 = struct_value () [template] -// CHECK:STDOUT: %IndexWith.type.2d3: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.8ee, %ElementType.e6b)> [template] -// CHECK:STDOUT: %At.type.38e: type = fn_type @At.1, @IndexWith(%SubscriptType.8ee, %ElementType.e6b) [template] +// CHECK:STDOUT: %IndexWith.type.e80: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.8ee, %ElementType.e6b)> [template] +// CHECK:STDOUT: %At.type.b3f: type = fn_type @At.1, @IndexWith(%SubscriptType.8ee, %ElementType.e6b) [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [template] -// CHECK:STDOUT: %At.type.afe: type = fn_type @At.2 [template] -// CHECK:STDOUT: %At.9bf: %At.type.afe = struct_value () [template] +// CHECK:STDOUT: %At.type.178: type = fn_type @At.2 [template] +// CHECK:STDOUT: %At.d43: %At.type.178 = struct_value () [template] // CHECK:STDOUT: %ElementType.val: %ElementType.e6b = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] @@ -381,12 +381,12 @@ let x: i32 = c[0]; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IndexWith = %import_ref.76d -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .IndexWith = %import_ref.671 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.76d: %IndexWith.type.504 = import_ref Core//prelude/operators/index, IndexWith, loaded [template = constants.%IndexWith.generic] +// CHECK:STDOUT: %import_ref.671: %IndexWith.type.504 = import_ref Core//prelude/operators/index, IndexWith, loaded [template = constants.%IndexWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -405,16 +405,16 @@ let x: i32 = c[0]; // CHECK:STDOUT: impl_decl @impl [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.504 = name_ref IndexWith, imports.%import_ref.76d [template = constants.%IndexWith.generic] +// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.504 = name_ref IndexWith, imports.%import_ref.671 [template = constants.%IndexWith.generic] // CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [template = constants.%SubscriptType.8ee] // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, file.%ElementType.decl [template = constants.%ElementType.e6b] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.8ee, constants.%ElementType.e6b)> [template = constants.%IndexWith.type.2d3] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.8ee, constants.%ElementType.e6b)> [template = constants.%IndexWith.type.e80] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %C.ref as %IndexWith.type { -// CHECK:STDOUT: %At.decl: %At.type.afe = fn_decl @At.2 [template = constants.%At.9bf] { +// CHECK:STDOUT: %At.decl: %At.type.178 = fn_decl @At.2 [template = constants.%At.d43] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %subscript.patt: %SubscriptType.8ee = binding_pattern subscript @@ -482,7 +482,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc22_25.1: %SubscriptType.8ee = converted %int_0, [template = ] -// CHECK:STDOUT: %impl.elem0: %At.type.38e = impl_witness_access constants.%impl_witness, element0 [template = constants.%At.9bf] +// CHECK:STDOUT: %impl.elem0: %At.type.b3f = impl_witness_access constants.%impl_witness, element0 [template = constants.%At.d43] // CHECK:STDOUT: %At.bound: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc22_25.2: ref %ElementType.e6b = temporary_storage // CHECK:STDOUT: %At.call: init %ElementType.e6b = call %At.bound(%c.ref, ) to %.loc22_25.2 @@ -506,8 +506,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .IndexWith = %import_ref.76d +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .IndexWith = %import_ref.671 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/left_shift.carbon b/toolchain/check/testdata/operators/overloaded/left_shift.carbon index 6eb1a177c476..2f2b8be2abc2 100644 --- a/toolchain/check/testdata/operators/overloaded/left_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/left_shift.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %LeftShift.type: type = facet_type <@LeftShift> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.1d8: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.0fc: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.01c: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.55b: %Op.type.01c = struct_value () [template] +// CHECK:STDOUT: %Op.type.789: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.df4: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.de2: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.df9: %Op.type.de2 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %LeftShiftAssign.type: type = facet_type <@LeftShiftAssign> [template] -// CHECK:STDOUT: %Op.type.ff3: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.c55: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.1de: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.842: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.816: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.a2e: %Op.type.816 = struct_value () [template] +// CHECK:STDOUT: %Op.type.386: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.8fc: %Op.type.386 = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .LeftShift = %import_ref.f19 -// CHECK:STDOUT: .LeftShiftAssign = %import_ref.737 +// CHECK:STDOUT: .LeftShift = %import_ref.644 +// CHECK:STDOUT: .LeftShiftAssign = %import_ref.269 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.f19: type = import_ref Core//prelude/operators/bitwise, LeftShift, loaded [template = constants.%LeftShift.type] -// CHECK:STDOUT: %import_ref.737: type = import_ref Core//prelude/operators/bitwise, LeftShiftAssign, loaded [template = constants.%LeftShiftAssign.type] +// CHECK:STDOUT: %import_ref.644: type = import_ref Core//prelude/operators/bitwise, LeftShift, loaded [template = constants.%LeftShift.type] +// CHECK:STDOUT: %import_ref.269: type = import_ref Core//prelude/operators/bitwise, LeftShiftAssign, loaded [template = constants.%LeftShiftAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %LeftShift.ref: type = name_ref LeftShift, imports.%import_ref.f19 [template = constants.%LeftShift.type] +// CHECK:STDOUT: %LeftShift.ref: type = name_ref LeftShift, imports.%import_ref.644 [template = constants.%LeftShift.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.0fc] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.df4] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %LeftShiftAssign.ref: type = name_ref LeftShiftAssign, imports.%import_ref.737 [template = constants.%LeftShiftAssign.type] +// CHECK:STDOUT: %LeftShiftAssign.ref: type = name_ref LeftShiftAssign, imports.%import_ref.269 [template = constants.%LeftShiftAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.c55] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.842] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %LeftShift.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.01c = fn_decl @Op.2 [template = constants.%Op.55b] { +// CHECK:STDOUT: %Op.decl: %Op.type.de2 = fn_decl @Op.2 [template = constants.%Op.df9] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %LeftShiftAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.816 = fn_decl @Op.4 [template = constants.%Op.a2e] { +// CHECK:STDOUT: %Op.decl: %Op.type.386 = fn_decl @Op.4 [template = constants.%Op.8fc] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.1d8 = impl_witness_access constants.%impl_witness.0fc, element0 [template = constants.%Op.55b] +// CHECK:STDOUT: %impl.elem0: %Op.type.789 = impl_witness_access constants.%impl_witness.df4, element0 [template = constants.%Op.df9] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.ff3 = impl_witness_access constants.%impl_witness.c55, element0 [template = constants.%Op.a2e] +// CHECK:STDOUT: %impl.elem0: %Op.type.1de = impl_witness_access constants.%impl_witness.842, element0 [template = constants.%Op.8fc] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/mod.carbon b/toolchain/check/testdata/operators/overloaded/mod.carbon index 5c9b1aeef765..39e516e678e8 100644 --- a/toolchain/check/testdata/operators/overloaded/mod.carbon +++ b/toolchain/check/testdata/operators/overloaded/mod.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Mod.type: type = facet_type <@Mod> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.10b: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.d28: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.8d9: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.97c: %Op.type.8d9 = struct_value () [template] +// CHECK:STDOUT: %Op.type.860: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.5d5: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.fd2: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.777: %Op.type.fd2 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %ModAssign.type: type = facet_type <@ModAssign> [template] -// CHECK:STDOUT: %Op.type.3ec: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.32b: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.fae: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.5ee: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.f4b: %Op.type.e42 = struct_value () [template] +// CHECK:STDOUT: %Op.type.fa2: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.d6c: %Op.type.fa2 = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Mod = %import_ref.169 -// CHECK:STDOUT: .ModAssign = %import_ref.c74 +// CHECK:STDOUT: .Mod = %import_ref.a4e +// CHECK:STDOUT: .ModAssign = %import_ref.246 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.169: type = import_ref Core//prelude/operators/arithmetic, Mod, loaded [template = constants.%Mod.type] -// CHECK:STDOUT: %import_ref.c74: type = import_ref Core//prelude/operators/arithmetic, ModAssign, loaded [template = constants.%ModAssign.type] +// CHECK:STDOUT: %import_ref.a4e: type = import_ref Core//prelude/operators/arithmetic, Mod, loaded [template = constants.%Mod.type] +// CHECK:STDOUT: %import_ref.246: type = import_ref Core//prelude/operators/arithmetic, ModAssign, loaded [template = constants.%ModAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Mod.ref: type = name_ref Mod, imports.%import_ref.169 [template = constants.%Mod.type] +// CHECK:STDOUT: %Mod.ref: type = name_ref Mod, imports.%import_ref.a4e [template = constants.%Mod.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.d28] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.5d5] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ModAssign.ref: type = name_ref ModAssign, imports.%import_ref.c74 [template = constants.%ModAssign.type] +// CHECK:STDOUT: %ModAssign.ref: type = name_ref ModAssign, imports.%import_ref.246 [template = constants.%ModAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.32b] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.5ee] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Mod.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.8d9 = fn_decl @Op.2 [template = constants.%Op.97c] { +// CHECK:STDOUT: %Op.decl: %Op.type.fd2 = fn_decl @Op.2 [template = constants.%Op.777] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %ModAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.e42 = fn_decl @Op.4 [template = constants.%Op.f4b] { +// CHECK:STDOUT: %Op.decl: %Op.type.fa2 = fn_decl @Op.4 [template = constants.%Op.d6c] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.10b = impl_witness_access constants.%impl_witness.d28, element0 [template = constants.%Op.97c] +// CHECK:STDOUT: %impl.elem0: %Op.type.860 = impl_witness_access constants.%impl_witness.5d5, element0 [template = constants.%Op.777] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.3ec = impl_witness_access constants.%impl_witness.32b, element0 [template = constants.%Op.f4b] +// CHECK:STDOUT: %impl.elem0: %Op.type.fae = impl_witness_access constants.%impl_witness.5ee, element0 [template = constants.%Op.d6c] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/mul.carbon b/toolchain/check/testdata/operators/overloaded/mul.carbon index 82a89bb5bf38..d8039439ac6e 100644 --- a/toolchain/check/testdata/operators/overloaded/mul.carbon +++ b/toolchain/check/testdata/operators/overloaded/mul.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Mul.type: type = facet_type <@Mul> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.090: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.631: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.ee3: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.2c0: %Op.type.ee3 = struct_value () [template] +// CHECK:STDOUT: %Op.type.3ae: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.289: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.fa5: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.550: %Op.type.fa5 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %MulAssign.type: type = facet_type <@MulAssign> [template] -// CHECK:STDOUT: %Op.type.398: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.9dd: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.340: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.de9: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.b05: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.cba: %Op.type.b05 = struct_value () [template] +// CHECK:STDOUT: %Op.type.c02: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.a8c: %Op.type.c02 = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Mul = %import_ref.103 -// CHECK:STDOUT: .MulAssign = %import_ref.fb2 +// CHECK:STDOUT: .Mul = %import_ref.45c +// CHECK:STDOUT: .MulAssign = %import_ref.e02 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.103: type = import_ref Core//prelude/operators/arithmetic, Mul, loaded [template = constants.%Mul.type] -// CHECK:STDOUT: %import_ref.fb2: type = import_ref Core//prelude/operators/arithmetic, MulAssign, loaded [template = constants.%MulAssign.type] +// CHECK:STDOUT: %import_ref.45c: type = import_ref Core//prelude/operators/arithmetic, Mul, loaded [template = constants.%Mul.type] +// CHECK:STDOUT: %import_ref.e02: type = import_ref Core//prelude/operators/arithmetic, MulAssign, loaded [template = constants.%MulAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Mul.ref: type = name_ref Mul, imports.%import_ref.103 [template = constants.%Mul.type] +// CHECK:STDOUT: %Mul.ref: type = name_ref Mul, imports.%import_ref.45c [template = constants.%Mul.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.631] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.289] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %MulAssign.ref: type = name_ref MulAssign, imports.%import_ref.fb2 [template = constants.%MulAssign.type] +// CHECK:STDOUT: %MulAssign.ref: type = name_ref MulAssign, imports.%import_ref.e02 [template = constants.%MulAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.9dd] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.de9] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Mul.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.ee3 = fn_decl @Op.2 [template = constants.%Op.2c0] { +// CHECK:STDOUT: %Op.decl: %Op.type.fa5 = fn_decl @Op.2 [template = constants.%Op.550] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %MulAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.b05 = fn_decl @Op.4 [template = constants.%Op.cba] { +// CHECK:STDOUT: %Op.decl: %Op.type.c02 = fn_decl @Op.4 [template = constants.%Op.a8c] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.090 = impl_witness_access constants.%impl_witness.631, element0 [template = constants.%Op.2c0] +// CHECK:STDOUT: %impl.elem0: %Op.type.3ae = impl_witness_access constants.%impl_witness.289, element0 [template = constants.%Op.550] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.398 = impl_witness_access constants.%impl_witness.9dd, element0 [template = constants.%Op.cba] +// CHECK:STDOUT: %impl.elem0: %Op.type.340 = impl_witness_access constants.%impl_witness.de9, element0 [template = constants.%Op.a8c] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/negate.carbon b/toolchain/check/testdata/operators/overloaded/negate.carbon index 3a3bf2352883..4e8e4f46de00 100644 --- a/toolchain/check/testdata/operators/overloaded/negate.carbon +++ b/toolchain/check/testdata/operators/overloaded/negate.carbon @@ -31,10 +31,10 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [template] -// CHECK:STDOUT: %Op.type.4d0: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.1 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.454: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.793: %Op.type.454 = struct_value () [template] +// CHECK:STDOUT: %Op.type.67d: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.64c: %Op.type.67d = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] @@ -42,11 +42,11 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Negate = %import_ref.a96 +// CHECK:STDOUT: .Negate = %import_ref.6e9 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.a96: type = import_ref Core//prelude/operators/arithmetic, Negate, loaded [template = constants.%Negate.type] +// CHECK:STDOUT: %import_ref.6e9: type = import_ref Core//prelude/operators/arithmetic, Negate, loaded [template = constants.%Negate.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -60,7 +60,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Negate.ref: type = name_ref Negate, imports.%import_ref.a96 [template = constants.%Negate.type] +// CHECK:STDOUT: %Negate.ref: type = name_ref Negate, imports.%import_ref.6e9 [template = constants.%Negate.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { @@ -79,7 +79,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Negate.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.454 = fn_decl @Op.2 [template = constants.%Op.793] { +// CHECK:STDOUT: %Op.decl: %Op.type.67d = fn_decl @Op.2 [template = constants.%Op.64c] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %C = return_slot_pattern @@ -117,7 +117,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: fn @TestOp(%a.param_patt: %C) -> %return.param_patt: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem0: %Op.type.4d0 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.793] +// CHECK:STDOUT: %impl.elem0: %Op.type.e42 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Op.64c] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc23: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref) to %.loc23 diff --git a/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon b/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon index 8f71aca8ad8a..264804df2150 100644 --- a/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon @@ -120,26 +120,26 @@ fn F() { ()[()]; } // CHECK:STDOUT: %IndexWith.type.232: type = generic_interface_type @IndexWith [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.232 = struct_value () [template] -// CHECK:STDOUT: %IndexWith.type.4f1: type = facet_type <@IndexWith, @IndexWith(%SubscriptType)> [symbolic] -// CHECK:STDOUT: %Self: %IndexWith.type.4f1 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %IndexWith.type.518: type = facet_type <@IndexWith, @IndexWith(%SubscriptType)> [symbolic] +// CHECK:STDOUT: %Self: %IndexWith.type.518 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %At.type.ca2: type = fn_type @At.1, @IndexWith(%SubscriptType) [symbolic] -// CHECK:STDOUT: %At.5ab: %At.type.ca2 = struct_value () [symbolic] -// CHECK:STDOUT: %At.assoc_type.2b4: type = assoc_entity_type %IndexWith.type.4f1, %At.type.ca2 [symbolic] -// CHECK:STDOUT: %assoc0.d12: %At.assoc_type.2b4 = assoc_entity element0, @IndexWith.%At.decl [symbolic] -// CHECK:STDOUT: %IndexWith.type.63e: type = facet_type <@IndexWith, @IndexWith(%empty_tuple.type)> [template] -// CHECK:STDOUT: %At.type.87b: type = fn_type @At.1, @IndexWith(%empty_tuple.type) [template] -// CHECK:STDOUT: %At.d3b: %At.type.87b = struct_value () [template] -// CHECK:STDOUT: %At.assoc_type.837: type = assoc_entity_type %IndexWith.type.63e, %At.type.87b [template] -// CHECK:STDOUT: %assoc0.df5: %At.assoc_type.837 = assoc_entity element0, @IndexWith.%At.decl [template] +// CHECK:STDOUT: %At.type.b28: type = fn_type @At.1, @IndexWith(%SubscriptType) [symbolic] +// CHECK:STDOUT: %At.921: %At.type.b28 = struct_value () [symbolic] +// CHECK:STDOUT: %At.assoc_type.315: type = assoc_entity_type %IndexWith.type.518, %At.type.b28 [symbolic] +// CHECK:STDOUT: %assoc0.d83: %At.assoc_type.315 = assoc_entity element0, @IndexWith.%At.decl [symbolic] +// CHECK:STDOUT: %IndexWith.type.4ab: type = facet_type <@IndexWith, @IndexWith(%empty_tuple.type)> [template] +// CHECK:STDOUT: %At.type.082: type = fn_type @At.1, @IndexWith(%empty_tuple.type) [template] +// CHECK:STDOUT: %At.d80: %At.type.082 = struct_value () [template] +// CHECK:STDOUT: %At.assoc_type.61a: type = assoc_entity_type %IndexWith.type.4ab, %At.type.082 [template] +// CHECK:STDOUT: %assoc0.ca3: %At.assoc_type.61a = assoc_entity element0, @IndexWith.%At.decl [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [template] -// CHECK:STDOUT: %At.type.304: type = fn_type @At.2 [template] -// CHECK:STDOUT: %At.4cb: %At.type.304 = struct_value () [template] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.4f1 = facet_value %empty_tuple.type, %impl_witness [symbolic] +// CHECK:STDOUT: %At.type.8fc: type = fn_type @At.2 [template] +// CHECK:STDOUT: %At.8ba: %At.type.8fc = struct_value () [template] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.518 = facet_value %empty_tuple.type, %impl_witness [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %At.bound: = bound_method %empty_tuple, %At.4cb [template] +// CHECK:STDOUT: %At.bound: = bound_method %empty_tuple, %At.8ba [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -164,7 +164,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.232 = name_ref IndexWith, file.%IndexWith.decl [template = constants.%IndexWith.generic] // CHECK:STDOUT: %.loc9_28: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_29: type = converted %.loc9_28, constants.%empty_tuple.type [template = constants.%empty_tuple.type] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%empty_tuple.type)> [template = constants.%IndexWith.type.63e] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%empty_tuple.type)> [template = constants.%IndexWith.type.4ab] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} @@ -175,16 +175,16 @@ fn F() { ()[()]; } // CHECK:STDOUT: %SubscriptType.patt.loc5_26.2: type = symbolic_binding_pattern SubscriptType, 0 [symbolic = %SubscriptType.patt.loc5_26.2 (constants.%SubscriptType.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.loc5_26.2)> [symbolic = %IndexWith.type (constants.%IndexWith.type.4f1)] -// CHECK:STDOUT: %Self.2: %IndexWith.type.4f1 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %At.type: type = fn_type @At.1, @IndexWith(%SubscriptType.loc5_26.2) [symbolic = %At.type (constants.%At.type.ca2)] -// CHECK:STDOUT: %At: @IndexWith.%At.type (%At.type.ca2) = struct_value () [symbolic = %At (constants.%At.5ab)] -// CHECK:STDOUT: %At.assoc_type: type = assoc_entity_type @IndexWith.%IndexWith.type (%IndexWith.type.4f1), @IndexWith.%At.type (%At.type.ca2) [symbolic = %At.assoc_type (constants.%At.assoc_type.2b4)] -// CHECK:STDOUT: %assoc0.loc6_52.2: @IndexWith.%At.assoc_type (%At.assoc_type.2b4) = assoc_entity element0, %At.decl [symbolic = %assoc0.loc6_52.2 (constants.%assoc0.d12)] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.loc5_26.2)> [symbolic = %IndexWith.type (constants.%IndexWith.type.518)] +// CHECK:STDOUT: %Self.2: %IndexWith.type.518 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %At.type: type = fn_type @At.1, @IndexWith(%SubscriptType.loc5_26.2) [symbolic = %At.type (constants.%At.type.b28)] +// CHECK:STDOUT: %At: @IndexWith.%At.type (%At.type.b28) = struct_value () [symbolic = %At (constants.%At.921)] +// CHECK:STDOUT: %At.assoc_type: type = assoc_entity_type @IndexWith.%IndexWith.type (%IndexWith.type.518), @IndexWith.%At.type (%At.type.b28) [symbolic = %At.assoc_type (constants.%At.assoc_type.315)] +// CHECK:STDOUT: %assoc0.loc6_52.2: @IndexWith.%At.assoc_type (%At.assoc_type.315) = assoc_entity element0, %At.decl [symbolic = %assoc0.loc6_52.2 (constants.%assoc0.d83)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @IndexWith.%IndexWith.type (%IndexWith.type.4f1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %At.decl: @IndexWith.%At.type (%At.type.ca2) = fn_decl @At.1 [symbolic = @IndexWith.%At (constants.%At.5ab)] { +// CHECK:STDOUT: %Self.1: @IndexWith.%IndexWith.type (%IndexWith.type.518) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %At.decl: @IndexWith.%At.type (%At.type.b28) = fn_decl @At.1 [symbolic = @IndexWith.%At (constants.%At.921)] { // CHECK:STDOUT: %self.patt: @At.1.%Self.as_type.loc6_15.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @At.1.%Self.as_type.loc6_15.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %subscript.patt: @At.1.%SubscriptType (%SubscriptType) = binding_pattern subscript @@ -196,8 +196,8 @@ fn F() { ()[()]; } // CHECK:STDOUT: %.loc6_51.2: type = converted %.loc6_51.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type] // CHECK:STDOUT: %self.param: @At.1.%Self.as_type.loc6_15.1 (%Self.as_type) = value_param runtime_param0 // CHECK:STDOUT: %.loc6_15.1: type = splice_block %.loc6_15.3 [symbolic = %Self.as_type.loc6_15.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc6_15.2: @At.1.%IndexWith.type (%IndexWith.type.4f1) = specific_constant @IndexWith.%Self.1, @IndexWith(constants.%SubscriptType) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @At.1.%IndexWith.type (%IndexWith.type.4f1) = name_ref Self, %.loc6_15.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc6_15.2: @At.1.%IndexWith.type (%IndexWith.type.518) = specific_constant @IndexWith.%Self.1, @IndexWith(constants.%SubscriptType) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @At.1.%IndexWith.type (%IndexWith.type.518) = name_ref Self, %.loc6_15.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc6_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc6_15.3: type = converted %Self.ref, %Self.as_type.loc6_15.2 [symbolic = %Self.as_type.loc6_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -208,7 +208,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param runtime_param2 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc6_52.1: @IndexWith.%At.assoc_type (%At.assoc_type.2b4) = assoc_entity element0, %At.decl [symbolic = %assoc0.loc6_52.2 (constants.%assoc0.d12)] +// CHECK:STDOUT: %assoc0.loc6_52.1: @IndexWith.%At.assoc_type (%At.assoc_type.315) = assoc_entity element0, %At.decl [symbolic = %assoc0.loc6_52.2 (constants.%assoc0.d83)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -218,7 +218,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %.loc9_7.2 as %IndexWith.type { -// CHECK:STDOUT: %At.decl: %At.type.304 = fn_decl @At.2 [template = constants.%At.4cb] { +// CHECK:STDOUT: %At.decl: %At.type.8fc = fn_decl @At.2 [template = constants.%At.8ba] { // CHECK:STDOUT: %self.patt: %empty_tuple.type = binding_pattern self // CHECK:STDOUT: %self.param_patt: %empty_tuple.type = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %subscript.patt: %empty_tuple.type = binding_pattern subscript @@ -246,10 +246,10 @@ fn F() { ()[()]; } // CHECK:STDOUT: witness = file.%impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @At.1(@IndexWith.%SubscriptType.loc5_26.1: type, @IndexWith.%Self.1: @IndexWith.%IndexWith.type (%IndexWith.type.4f1)) { +// CHECK:STDOUT: generic fn @At.1(@IndexWith.%SubscriptType.loc5_26.1: type, @IndexWith.%Self.1: @IndexWith.%IndexWith.type (%IndexWith.type.518)) { // CHECK:STDOUT: %SubscriptType: type = bind_symbolic_name SubscriptType, 0 [symbolic = %SubscriptType (constants.%SubscriptType)] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.4f1)] -// CHECK:STDOUT: %Self: %IndexWith.type.4f1 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.518)] +// CHECK:STDOUT: %Self: %IndexWith.type.518 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc6_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: @At.1.%Self.as_type.loc6_15.1 (%Self.as_type)](%subscript.param_patt: @At.1.%SubscriptType (%SubscriptType)) -> %empty_tuple.type; @@ -271,7 +271,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: %.loc15_11.2: %empty_tuple.type = converted %.loc15_11.1, %empty_tuple.loc15_11 [template = constants.%empty_tuple] // CHECK:STDOUT: %empty_tuple.loc15_14: %empty_tuple.type = tuple_value () [template = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_15: %empty_tuple.type = converted %.loc15_14, %empty_tuple.loc15_14 [template = constants.%empty_tuple] -// CHECK:STDOUT: %impl.elem0: %At.type.87b = impl_witness_access constants.%impl_witness, element0 [template = constants.%At.4cb] +// CHECK:STDOUT: %impl.elem0: %At.type.082 = impl_witness_access constants.%impl_witness, element0 [template = constants.%At.8ba] // CHECK:STDOUT: %At.bound: = bound_method %.loc15_11.2, %impl.elem0 [template = constants.%At.bound] // CHECK:STDOUT: %At.call: init %empty_tuple.type = call %At.bound(%.loc15_11.2, %.loc15_15) // CHECK:STDOUT: return @@ -284,7 +284,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: // CHECK:STDOUT: specific @At.1(constants.%SubscriptType, constants.%Self) { // CHECK:STDOUT: %SubscriptType => constants.%SubscriptType -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.4f1 +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.518 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc6_15.1 => constants.%Self.as_type // CHECK:STDOUT: } @@ -298,17 +298,17 @@ fn F() { ()[()]; } // CHECK:STDOUT: %SubscriptType.patt.loc5_26.2 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.63e +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.4ab // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %At.type => constants.%At.type.87b -// CHECK:STDOUT: %At => constants.%At.d3b -// CHECK:STDOUT: %At.assoc_type => constants.%At.assoc_type.837 -// CHECK:STDOUT: %assoc0.loc6_52.2 => constants.%assoc0.df5 +// CHECK:STDOUT: %At.type => constants.%At.type.082 +// CHECK:STDOUT: %At => constants.%At.d80 +// CHECK:STDOUT: %At.assoc_type => constants.%At.assoc_type.61a +// CHECK:STDOUT: %assoc0.loc6_52.2 => constants.%assoc0.ca3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @At.1(constants.%empty_tuple.type, constants.%IndexWith.facet) { // CHECK:STDOUT: %SubscriptType => constants.%empty_tuple.type -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.63e +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.4ab // CHECK:STDOUT: %Self => constants.%IndexWith.facet // CHECK:STDOUT: %Self.as_type.loc6_15.1 => constants.%empty_tuple.type // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/ordered.carbon b/toolchain/check/testdata/operators/overloaded/ordered.carbon index 1b9a095aa36d..e2e346445705 100644 --- a/toolchain/check/testdata/operators/overloaded/ordered.carbon +++ b/toolchain/check/testdata/operators/overloaded/ordered.carbon @@ -81,21 +81,21 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Ordered.type: type = facet_type <@Ordered> [template] -// CHECK:STDOUT: %Less.type.fa1: type = fn_type @Less.1 [template] -// CHECK:STDOUT: %LessOrEquivalent.type.bb5: type = fn_type @LessOrEquivalent.1 [template] -// CHECK:STDOUT: %Greater.type.751: type = fn_type @Greater.1 [template] -// CHECK:STDOUT: %GreaterOrEquivalent.type.b22: type = fn_type @GreaterOrEquivalent.1 [template] +// CHECK:STDOUT: %Less.type.341: type = fn_type @Less.1 [template] +// CHECK:STDOUT: %LessOrEquivalent.type.859: type = fn_type @LessOrEquivalent.1 [template] +// CHECK:STDOUT: %Greater.type.270: type = fn_type @Greater.1 [template] +// CHECK:STDOUT: %GreaterOrEquivalent.type.8af: type = fn_type @GreaterOrEquivalent.1 [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Less.decl, @impl.1.%LessOrEquivalent.decl, @impl.1.%Greater.decl, @impl.1.%GreaterOrEquivalent.decl) [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [template] -// CHECK:STDOUT: %Less.type.e95: type = fn_type @Less.2 [template] -// CHECK:STDOUT: %Less.a74: %Less.type.e95 = struct_value () [template] -// CHECK:STDOUT: %LessOrEquivalent.type.cd4: type = fn_type @LessOrEquivalent.2 [template] -// CHECK:STDOUT: %LessOrEquivalent.765: %LessOrEquivalent.type.cd4 = struct_value () [template] -// CHECK:STDOUT: %Greater.type.86f: type = fn_type @Greater.2 [template] -// CHECK:STDOUT: %Greater.854: %Greater.type.86f = struct_value () [template] -// CHECK:STDOUT: %GreaterOrEquivalent.type.adc: type = fn_type @GreaterOrEquivalent.2 [template] -// CHECK:STDOUT: %GreaterOrEquivalent.742: %GreaterOrEquivalent.type.adc = struct_value () [template] +// CHECK:STDOUT: %Less.type.25a: type = fn_type @Less.2 [template] +// CHECK:STDOUT: %Less.738: %Less.type.25a = struct_value () [template] +// CHECK:STDOUT: %LessOrEquivalent.type.478: type = fn_type @LessOrEquivalent.2 [template] +// CHECK:STDOUT: %LessOrEquivalent.010: %LessOrEquivalent.type.478 = struct_value () [template] +// CHECK:STDOUT: %Greater.type.0a1: type = fn_type @Greater.2 [template] +// CHECK:STDOUT: %Greater.afe: %Greater.type.0a1 = struct_value () [template] +// CHECK:STDOUT: %GreaterOrEquivalent.type.caf: type = fn_type @GreaterOrEquivalent.2 [template] +// CHECK:STDOUT: %GreaterOrEquivalent.03b: %GreaterOrEquivalent.type.caf = struct_value () [template] // CHECK:STDOUT: %TestLess.type: type = fn_type @TestLess [template] // CHECK:STDOUT: %TestLess: %TestLess.type = struct_value () [template] // CHECK:STDOUT: %TestLessEqual.type: type = fn_type @TestLessEqual [template] @@ -108,12 +108,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Ordered = %import_ref.ca5 -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Ordered = %import_ref.467 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.ca5: type = import_ref Core//prelude/operators/comparison, Ordered, loaded [template = constants.%Ordered.type] +// CHECK:STDOUT: %import_ref.467: type = import_ref Core//prelude/operators/comparison, Ordered, loaded [template = constants.%Ordered.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -130,7 +130,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Ordered.ref: type = name_ref Ordered, imports.%import_ref.ca5 [template = constants.%Ordered.type] +// CHECK:STDOUT: %Ordered.ref: type = name_ref Ordered, imports.%import_ref.467 [template = constants.%Ordered.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.1.%Less.decl, @impl.1.%LessOrEquivalent.decl, @impl.1.%Greater.decl, @impl.1.%GreaterOrEquivalent.decl) [template = constants.%impl_witness] // CHECK:STDOUT: %TestLess.decl: %TestLess.type = fn_decl @TestLess [template = constants.%TestLess] { @@ -216,7 +216,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Ordered.ref { -// CHECK:STDOUT: %Less.decl: %Less.type.e95 = fn_decl @Less.2 [template = constants.%Less.a74] { +// CHECK:STDOUT: %Less.decl: %Less.type.25a = fn_decl @Less.2 [template = constants.%Less.738] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -236,7 +236,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return.param: ref bool = out_param runtime_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %LessOrEquivalent.decl: %LessOrEquivalent.type.cd4 = fn_decl @LessOrEquivalent.2 [template = constants.%LessOrEquivalent.765] { +// CHECK:STDOUT: %LessOrEquivalent.decl: %LessOrEquivalent.type.478 = fn_decl @LessOrEquivalent.2 [template = constants.%LessOrEquivalent.010] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -256,7 +256,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return.param: ref bool = out_param runtime_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Greater.decl: %Greater.type.86f = fn_decl @Greater.2 [template = constants.%Greater.854] { +// CHECK:STDOUT: %Greater.decl: %Greater.type.0a1 = fn_decl @Greater.2 [template = constants.%Greater.afe] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -276,7 +276,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return.param: ref bool = out_param runtime_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %GreaterOrEquivalent.decl: %GreaterOrEquivalent.type.adc = fn_decl @GreaterOrEquivalent.2 [template = constants.%GreaterOrEquivalent.742] { +// CHECK:STDOUT: %GreaterOrEquivalent.decl: %GreaterOrEquivalent.type.caf = fn_decl @GreaterOrEquivalent.2 [template = constants.%GreaterOrEquivalent.03b] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -325,7 +325,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: %Less.type.fa1 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Less.a74] +// CHECK:STDOUT: %impl.elem0: %Less.type.341 = impl_witness_access constants.%impl_witness, element0 [template = constants.%Less.738] // CHECK:STDOUT: %Less.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %Less.call: init bool = call %Less.bound(%a.ref, %b.ref) // CHECK:STDOUT: %.loc14_15.1: bool = value_of_initializer %Less.call @@ -337,7 +337,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: %LessOrEquivalent.type.bb5 = impl_witness_access constants.%impl_witness, element1 [template = constants.%LessOrEquivalent.765] +// CHECK:STDOUT: %impl.elem1: %LessOrEquivalent.type.859 = impl_witness_access constants.%impl_witness, element1 [template = constants.%LessOrEquivalent.010] // CHECK:STDOUT: %LessOrEquivalent.bound: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: %LessOrEquivalent.call: init bool = call %LessOrEquivalent.bound(%a.ref, %b.ref) // CHECK:STDOUT: %.loc18_16.1: bool = value_of_initializer %LessOrEquivalent.call @@ -349,7 +349,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: %Greater.type.751 = impl_witness_access constants.%impl_witness, element2 [template = constants.%Greater.854] +// CHECK:STDOUT: %impl.elem2: %Greater.type.270 = impl_witness_access constants.%impl_witness, element2 [template = constants.%Greater.afe] // CHECK:STDOUT: %Greater.bound: = bound_method %a.ref, %impl.elem2 // CHECK:STDOUT: %Greater.call: init bool = call %Greater.bound(%a.ref, %b.ref) // CHECK:STDOUT: %.loc22_15.1: bool = value_of_initializer %Greater.call @@ -361,7 +361,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: %GreaterOrEquivalent.type.b22 = impl_witness_access constants.%impl_witness, element3 [template = constants.%GreaterOrEquivalent.742] +// CHECK:STDOUT: %impl.elem3: %GreaterOrEquivalent.type.8af = impl_witness_access constants.%impl_witness, element3 [template = constants.%GreaterOrEquivalent.03b] // CHECK:STDOUT: %GreaterOrEquivalent.bound: = bound_method %a.ref, %impl.elem3 // CHECK:STDOUT: %GreaterOrEquivalent.call: init bool = call %GreaterOrEquivalent.bound(%a.ref, %b.ref) // CHECK:STDOUT: %.loc26_16.1: bool = value_of_initializer %GreaterOrEquivalent.call @@ -389,8 +389,8 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Ordered = %import_ref.ca5 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Ordered = %import_ref.467 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/right_shift.carbon b/toolchain/check/testdata/operators/overloaded/right_shift.carbon index fc29028aaa1e..b1e7cb76acc2 100644 --- a/toolchain/check/testdata/operators/overloaded/right_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/right_shift.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %RightShift.type: type = facet_type <@RightShift> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.194: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.1e1: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.ab2: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.14a: %Op.type.ab2 = struct_value () [template] +// CHECK:STDOUT: %Op.type.4f4: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.404: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.092: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.79a: %Op.type.092 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %RightShiftAssign.type: type = facet_type <@RightShiftAssign> [template] -// CHECK:STDOUT: %Op.type.b9e: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.b59: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.6f6: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.686: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.46c: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.2fa: %Op.type.46c = struct_value () [template] +// CHECK:STDOUT: %Op.type.aab: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.7b2: %Op.type.aab = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .RightShift = %import_ref.1dd -// CHECK:STDOUT: .RightShiftAssign = %import_ref.046 +// CHECK:STDOUT: .RightShift = %import_ref.fe3 +// CHECK:STDOUT: .RightShiftAssign = %import_ref.9f1 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.1dd: type = import_ref Core//prelude/operators/bitwise, RightShift, loaded [template = constants.%RightShift.type] -// CHECK:STDOUT: %import_ref.046: type = import_ref Core//prelude/operators/bitwise, RightShiftAssign, loaded [template = constants.%RightShiftAssign.type] +// CHECK:STDOUT: %import_ref.fe3: type = import_ref Core//prelude/operators/bitwise, RightShift, loaded [template = constants.%RightShift.type] +// CHECK:STDOUT: %import_ref.9f1: type = import_ref Core//prelude/operators/bitwise, RightShiftAssign, loaded [template = constants.%RightShiftAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %RightShift.ref: type = name_ref RightShift, imports.%import_ref.1dd [template = constants.%RightShift.type] +// CHECK:STDOUT: %RightShift.ref: type = name_ref RightShift, imports.%import_ref.fe3 [template = constants.%RightShift.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.1e1] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.404] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %RightShiftAssign.ref: type = name_ref RightShiftAssign, imports.%import_ref.046 [template = constants.%RightShiftAssign.type] +// CHECK:STDOUT: %RightShiftAssign.ref: type = name_ref RightShiftAssign, imports.%import_ref.9f1 [template = constants.%RightShiftAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.b59] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.686] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %RightShift.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.ab2 = fn_decl @Op.2 [template = constants.%Op.14a] { +// CHECK:STDOUT: %Op.decl: %Op.type.092 = fn_decl @Op.2 [template = constants.%Op.79a] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %RightShiftAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.46c = fn_decl @Op.4 [template = constants.%Op.2fa] { +// CHECK:STDOUT: %Op.decl: %Op.type.aab = fn_decl @Op.4 [template = constants.%Op.7b2] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.194 = impl_witness_access constants.%impl_witness.1e1, element0 [template = constants.%Op.14a] +// CHECK:STDOUT: %impl.elem0: %Op.type.4f4 = impl_witness_access constants.%impl_witness.404, element0 [template = constants.%Op.79a] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.b9e = impl_witness_access constants.%impl_witness.b59, element0 [template = constants.%Op.2fa] +// CHECK:STDOUT: %impl.elem0: %Op.type.6f6 = impl_witness_access constants.%impl_witness.686, element0 [template = constants.%Op.7b2] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/sub.carbon b/toolchain/check/testdata/operators/overloaded/sub.carbon index f4150ce36df9..ec98a2789187 100644 --- a/toolchain/check/testdata/operators/overloaded/sub.carbon +++ b/toolchain/check/testdata/operators/overloaded/sub.carbon @@ -39,17 +39,17 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %Sub.type: type = facet_type <@Sub> [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] -// CHECK:STDOUT: %Op.type.14b: type = fn_type @Op.1 [template] -// CHECK:STDOUT: %impl_witness.66d: = impl_witness (@impl.1.%Op.decl) [template] -// CHECK:STDOUT: %Op.type.79a: type = fn_type @Op.2 [template] -// CHECK:STDOUT: %Op.fb2: %Op.type.79a = struct_value () [template] +// CHECK:STDOUT: %Op.type.111: type = fn_type @Op.1 [template] +// CHECK:STDOUT: %impl_witness.3b8: = impl_witness (@impl.1.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.c74: type = fn_type @Op.2 [template] +// CHECK:STDOUT: %Op.151: %Op.type.c74 = struct_value () [template] // CHECK:STDOUT: %C.val: %C = struct_value () [template] // CHECK:STDOUT: %SubAssign.type: type = facet_type <@SubAssign> [template] -// CHECK:STDOUT: %Op.type.170: type = fn_type @Op.3 [template] -// CHECK:STDOUT: %impl_witness.16f: = impl_witness (@impl.2.%Op.decl) [template] +// CHECK:STDOUT: %Op.type.f0d: type = fn_type @Op.3 [template] +// CHECK:STDOUT: %impl_witness.91c: = impl_witness (@impl.2.%Op.decl) [template] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [template] -// CHECK:STDOUT: %Op.type.cc5: type = fn_type @Op.4 [template] -// CHECK:STDOUT: %Op.8d8: %Op.type.cc5 = struct_value () [template] +// CHECK:STDOUT: %Op.type.966: type = fn_type @Op.4 [template] +// CHECK:STDOUT: %Op.a55: %Op.type.966 = struct_value () [template] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [template] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [template] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [template] @@ -58,13 +58,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Sub = %import_ref.c15 -// CHECK:STDOUT: .SubAssign = %import_ref.046 +// CHECK:STDOUT: .Sub = %import_ref.59c +// CHECK:STDOUT: .SubAssign = %import_ref.941 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.c15: type = import_ref Core//prelude/operators/arithmetic, Sub, loaded [template = constants.%Sub.type] -// CHECK:STDOUT: %import_ref.046: type = import_ref Core//prelude/operators/arithmetic, SubAssign, loaded [template = constants.%SubAssign.type] +// CHECK:STDOUT: %import_ref.59c: type = import_ref Core//prelude/operators/arithmetic, Sub, loaded [template = constants.%Sub.type] +// CHECK:STDOUT: %import_ref.941: type = import_ref Core//prelude/operators/arithmetic, SubAssign, loaded [template = constants.%SubAssign.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,15 +79,15 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: impl_decl @impl.1 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %Sub.ref: type = name_ref Sub, imports.%import_ref.c15 [template = constants.%Sub.type] +// CHECK:STDOUT: %Sub.ref: type = name_ref Sub, imports.%import_ref.59c [template = constants.%Sub.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.66d] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.1.%Op.decl) [template = constants.%impl_witness.3b8] // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %SubAssign.ref: type = name_ref SubAssign, imports.%import_ref.046 [template = constants.%SubAssign.type] +// CHECK:STDOUT: %SubAssign.ref: type = name_ref SubAssign, imports.%import_ref.941 [template = constants.%SubAssign.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.16f] +// CHECK:STDOUT: %impl_witness.loc22: = impl_witness (@impl.2.%Op.decl) [template = constants.%impl_witness.91c] // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [template = constants.%TestOp] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0 @@ -125,7 +125,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.1: %C.ref as %Sub.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.79a = fn_decl @Op.2 [template = constants.%Op.fb2] { +// CHECK:STDOUT: %Op.decl: %Op.type.c74 = fn_decl @Op.2 [template = constants.%Op.151] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %other.patt: %C = binding_pattern other @@ -150,7 +150,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C.ref as %SubAssign.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.cc5 = fn_decl @Op.4 [template = constants.%Op.8d8] { +// CHECK:STDOUT: %Op.decl: %Op.type.966 = fn_decl @Op.4 [template = constants.%Op.a55] { // CHECK:STDOUT: %self.patt: %ptr.019 = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.019 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %.loc23_9: auto = addr_pattern %self.param_patt @@ -198,7 +198,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.14b = impl_witness_access constants.%impl_witness.66d, element0 [template = constants.%Op.fb2] +// CHECK:STDOUT: %impl.elem0: %Op.type.111 = impl_witness_access constants.%impl_witness.3b8, element0 [template = constants.%Op.151] // CHECK:STDOUT: %Op.bound: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26 @@ -210,7 +210,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %Op.type.170 = impl_witness_access constants.%impl_witness.16f, element0 [template = constants.%Op.8d8] +// CHECK:STDOUT: %impl.elem0: %Op.type.f0d = impl_witness_access constants.%impl_witness.91c, element0 [template = constants.%Op.a55] // CHECK:STDOUT: %Op.bound: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %Op.bound(%addr, %b.ref) diff --git a/toolchain/check/testdata/package_expr/fail_not_found.carbon b/toolchain/check/testdata/package_expr/fail_not_found.carbon index 91dbb24d2dca..e379190c621c 100644 --- a/toolchain/check/testdata/package_expr/fail_not_found.carbon +++ b/toolchain/check/testdata/package_expr/fail_not_found.carbon @@ -26,7 +26,7 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index 3046876806b0..c0593c0d7a10 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -47,19 +47,19 @@ fn Main() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -81,11 +81,11 @@ fn Main() { // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign file.%x.var, %.loc4 // CHECK:STDOUT: %package.ref: = name_ref package, package [template = package] // CHECK:STDOUT: %x.ref: ref %i32 = name_ref x, file.%x @@ -100,25 +100,25 @@ fn Main() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -141,11 +141,11 @@ fn Main() { // CHECK:STDOUT: %x.var: ref %i32 = var x // CHECK:STDOUT: %x: ref %i32 = bind_name x, %x.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc7: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc7: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %x.var, %.loc7 // CHECK:STDOUT: %y.var: ref %i32 = var y // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var @@ -159,11 +159,11 @@ fn Main() { // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign file.%x.var, %.loc4 // CHECK:STDOUT: return // 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 b7bd766b5ce8..844d752c3227 100644 --- a/toolchain/check/testdata/packages/fail_conflict_no_namespaces.carbon +++ b/toolchain/check/testdata/packages/fail_conflict_no_namespaces.carbon @@ -69,7 +69,7 @@ import library "var"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -88,7 +88,7 @@ import library "var"; // CHECK:STDOUT: --- fail_conflict.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.ee0 = import_ref Example//fn, Foo, unloaded +// CHECK:STDOUT: %import_ref.a7d = import_ref Example//fn, Foo, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -97,7 +97,7 @@ import library "var"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .Foo = imports.%import_ref.ee0 +// CHECK:STDOUT: .Foo = imports.%import_ref.a7d // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core diff --git a/toolchain/check/testdata/packages/fail_import_type_error.carbon b/toolchain/check/testdata/packages/fail_import_type_error.carbon index 149a474ebcd6..2234b3d2d675 100644 --- a/toolchain/check/testdata/packages/fail_import_type_error.carbon +++ b/toolchain/check/testdata/packages/fail_import_type_error.carbon @@ -84,7 +84,7 @@ var d: i32 = d_ref; // CHECK:STDOUT: %import_ref.a99: ref = import_ref Implicit//default, c_ref, loaded // CHECK:STDOUT: %import_ref.9a8: ref = import_ref Implicit//default, d_ref, loaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/packages/implicit_imports_prelude.carbon b/toolchain/check/testdata/packages/implicit_imports_prelude.carbon index 63cd981b69a0..91e7d6dab675 100644 --- a/toolchain/check/testdata/packages/implicit_imports_prelude.carbon +++ b/toolchain/check/testdata/packages/implicit_imports_prelude.carbon @@ -28,19 +28,19 @@ var b: i32 = a; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -59,11 +59,11 @@ var b: i32 = a; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign file.%a.var, %.loc4 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -76,9 +76,9 @@ var b: i32 = a; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.f58: ref %i32 = import_ref Main//lib, a, loaded +// CHECK:STDOUT: %import_ref.40d: ref %i32 = import_ref Main//lib, a, loaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 +// CHECK:STDOUT: .Int = %import_ref.2c8 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -86,7 +86,7 @@ var b: i32 = a; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .a = imports.%import_ref.f58 +// CHECK:STDOUT: .a = imports.%import_ref.40d // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } @@ -99,7 +99,7 @@ var b: i32 = a; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: ref %i32 = name_ref a, imports.%import_ref.f58 +// CHECK:STDOUT: %a.ref: ref %i32 = name_ref a, imports.%import_ref.40d // CHECK:STDOUT: %.loc4: %i32 = bind_value %a.ref // CHECK:STDOUT: assign file.%b.var, %.loc4 // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon b/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon index a0b93f6351c0..d5f4b080fbe1 100644 --- a/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon +++ b/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon @@ -286,7 +286,7 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Other//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Other//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Other//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Other//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Other//base, loc5_8, unloaded @@ -297,7 +297,7 @@ alias C = Other.C; // CHECK:STDOUT: .C = %C // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -317,7 +317,7 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Other//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Other//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Other//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Other//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Other//base, loc5_8, unloaded @@ -328,7 +328,7 @@ alias C = Other.C; // CHECK:STDOUT: .C = %C // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -348,7 +348,7 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Other//export_name, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Other//export_name, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.ad3: = import_ref Other//export_name, inst20 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Other//export_name, inst21 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Other//export_name, inst22 [indirect], unloaded @@ -359,7 +359,7 @@ alias C = Other.C; // CHECK:STDOUT: .C = %C // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.4a7 [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.06e [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "export_name.carbon"] { @@ -382,7 +382,7 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac +// CHECK:STDOUT: .C = %import_ref.3b0 // CHECK:STDOUT: import Other//export_import // CHECK:STDOUT: import Other//base // CHECK:STDOUT: } @@ -434,7 +434,7 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac +// CHECK:STDOUT: .C = %import_ref.3b0 // CHECK:STDOUT: import Other//export_import // CHECK:STDOUT: import Other//export_import_copy // CHECK:STDOUT: import Other//base @@ -487,7 +487,7 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0ac +// CHECK:STDOUT: .C = %import_ref.3b0 // CHECK:STDOUT: import Other//export_import_indirect // CHECK:STDOUT: import Other//export_import // CHECK:STDOUT: import Other//base @@ -540,7 +540,7 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.4a7 +// CHECK:STDOUT: .C = %import_ref.06e // CHECK:STDOUT: import Other//export_name // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.ad3: = import_ref Other//export_name, inst20 [indirect], loaded [template = constants.%complete_type] @@ -591,7 +591,7 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.4a7 +// CHECK:STDOUT: .C = %import_ref.06e // CHECK:STDOUT: import Other//export_name // CHECK:STDOUT: import Other//export_name_copy // CHECK:STDOUT: } @@ -643,7 +643,7 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.050 +// CHECK:STDOUT: .C = %import_ref.f43 // CHECK:STDOUT: import Other//export_name_indirect // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.328: = import_ref Other//export_name_indirect, inst20 [indirect], loaded [template = constants.%complete_type] @@ -694,7 +694,7 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.4a7 +// CHECK:STDOUT: .C = %import_ref.06e // CHECK:STDOUT: import Other//export_import // CHECK:STDOUT: import Other//export_name // CHECK:STDOUT: import Other//export_import_copy @@ -780,12 +780,12 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.0c1 +// CHECK:STDOUT: .C = %import_ref.991 // CHECK:STDOUT: import Other//export_import // CHECK:STDOUT: import Other//conflict // CHECK:STDOUT: import Other//base // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.0c1: %C.type = import_ref Other//conflict, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.991: %C.type = import_ref Other//conflict, C, loaded [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -795,8 +795,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.import = import Other // CHECK:STDOUT: %Other.ref: = name_ref Other, imports.%Other [template = imports.%Other] -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.0c1 [template = constants.%C] -// CHECK:STDOUT: %C: %C.type = bind_alias C, imports.%import_ref.0c1 [template = constants.%C] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.991 [template = constants.%C] +// CHECK:STDOUT: %C: %C.type = bind_alias C, imports.%import_ref.991 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C() [from "conflict.carbon"]; @@ -812,11 +812,11 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .C = %import_ref.4a7 +// CHECK:STDOUT: .C = %import_ref.06e // CHECK:STDOUT: import Other//export_name // CHECK:STDOUT: import Other//conflict // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Other//export_name, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Other//export_name, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.ad3: = import_ref Other//export_name, inst20 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Other//export_name, inst21 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Other//export_name, inst22 [indirect], unloaded @@ -829,8 +829,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.import = import Other // CHECK:STDOUT: %Other.ref: = name_ref Other, imports.%Other [template = imports.%Other] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.4a7 [template = constants.%C] -// CHECK:STDOUT: %C: type = bind_alias C, imports.%import_ref.4a7 [template = constants.%C] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.06e [template = constants.%C] +// CHECK:STDOUT: %C: type = bind_alias C, imports.%import_ref.06e [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "export_name.carbon"] { diff --git a/toolchain/check/testdata/packages/no_prelude/cross_package_import.carbon b/toolchain/check/testdata/packages/no_prelude/cross_package_import.carbon index f073db178ace..249c42d6a17a 100644 --- a/toolchain/check/testdata/packages/no_prelude/cross_package_import.carbon +++ b/toolchain/check/testdata/packages/no_prelude/cross_package_import.carbon @@ -345,13 +345,13 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .F = %import_ref.5c2 -// CHECK:STDOUT: .F2 = %import_ref.3d3 +// CHECK:STDOUT: .F = %import_ref.f04 +// CHECK:STDOUT: .F2 = %import_ref.b85 // CHECK:STDOUT: import Other//other_fn // CHECK:STDOUT: import Other//other_fn2 // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.5c2: %F.type = import_ref Other//other_fn, F, loaded [template = constants.%F] -// CHECK:STDOUT: %import_ref.3d3: %F2.type = import_ref Other//other_fn2, F2, loaded [template = constants.%F2] +// CHECK:STDOUT: %import_ref.f04: %F.type = import_ref Other//other_fn, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.b85: %F2.type = import_ref Other//other_fn2, F2, loaded [template = constants.%F2] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -366,10 +366,10 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Other.ref.loc8: = name_ref Other, imports.%Other [template = imports.%Other] -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.5c2 [template = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.f04 [template = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: %Other.ref.loc9: = name_ref Other, imports.%Other [template = imports.%Other] -// CHECK:STDOUT: %F2.ref: %F2.type = name_ref F2, imports.%import_ref.3d3 [template = constants.%F2] +// CHECK:STDOUT: %F2.ref: %F2.type = name_ref F2, imports.%import_ref.b85 [template = constants.%F2] // CHECK:STDOUT: %F2.call: init %empty_tuple.type = call %F2.ref() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -390,11 +390,11 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .F = %import_ref.5c2 +// CHECK:STDOUT: .F = %import_ref.f04 // CHECK:STDOUT: import Other//other_fn // CHECK:STDOUT: import Other//other_fn_extern // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.5c2: %F.type = import_ref Other//other_fn, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.f04: %F.type = import_ref Other//other_fn, F, loaded [template = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -409,7 +409,7 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Other.ref: = name_ref Other, imports.%Other [template = imports.%Other] -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.5c2 [template = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.f04 [template = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -444,11 +444,11 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .F = %import_ref.5c2 +// CHECK:STDOUT: .F = %import_ref.f04 // CHECK:STDOUT: import Other//other_fn // CHECK:STDOUT: import Other//other_fn_conflict // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.5c2: %F.type = import_ref Other//other_fn, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.f04: %F.type = import_ref Other//other_fn, F, loaded [template = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -463,7 +463,7 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Other.ref: = name_ref Other, imports.%Other [template = imports.%Other] -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.5c2 [template = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.f04 [template = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/packages/no_prelude/export_import.carbon b/toolchain/check/testdata/packages/no_prelude/export_import.carbon index e715e393f0eb..dee20dab6899 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_import.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_import.carbon @@ -280,7 +280,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -288,7 +288,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -332,7 +332,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.d92: type = import_ref Main//export_export, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f68: type = import_ref Main//export_export, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -340,7 +340,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.d92 +// CHECK:STDOUT: .C = imports.%import_ref.f68 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import @@ -381,7 +381,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -389,7 +389,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -429,7 +429,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -437,7 +437,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -477,7 +477,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -485,7 +485,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -525,7 +525,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -533,7 +533,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -573,7 +573,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -581,7 +581,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -621,7 +621,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -629,7 +629,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -680,7 +680,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -688,7 +688,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -729,7 +729,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.39e = import_ref Main//use_non_export_then_base, c, unloaded -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -738,7 +738,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { // CHECK:STDOUT: .c = imports.%import_ref.39e -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .indirect_c = %indirect_c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import diff --git a/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon b/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon index 6082fd43cd0c..ac3e67d67d93 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon @@ -159,14 +159,14 @@ var d: D = {.y = ()}; // CHECK:STDOUT: --- export_import.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//base, C, unloaded -// CHECK:STDOUT: %import_ref.5de = import_ref Main//base, D, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//base, C, unloaded +// CHECK:STDOUT: %import_ref.e8f = import_ref Main//base, D, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d -// CHECK:STDOUT: .D = imports.%import_ref.5de +// CHECK:STDOUT: .C = imports.%import_ref.f42 +// CHECK:STDOUT: .D = imports.%import_ref.e8f // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: } @@ -181,8 +181,8 @@ var d: D = {.y = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.5de = import_ref Main//base, D, unloaded +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.e8f = import_ref Main//base, D, unloaded // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -191,10 +191,10 @@ var d: D = {.y = ()}; // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { // CHECK:STDOUT: .C = %C -// CHECK:STDOUT: .D = imports.%import_ref.5de +// CHECK:STDOUT: .D = imports.%import_ref.e8f // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -214,8 +214,8 @@ var d: D = {.y = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.5de = import_ref Main//base, D, unloaded +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.e8f = import_ref Main//base, D, unloaded // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -224,10 +224,10 @@ var d: D = {.y = ()}; // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { // CHECK:STDOUT: .C = %C -// CHECK:STDOUT: .D = imports.%import_ref.5de +// CHECK:STDOUT: .D = imports.%import_ref.e8f // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -262,7 +262,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export_import_then_name, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export_import_then_name, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//export_import_then_name, inst21 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export_import_then_name, inst22 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded @@ -270,7 +270,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -310,7 +310,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export_name, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export_name, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//export_name, inst21 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export_name, inst22 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Main//export_name, inst23 [indirect], unloaded @@ -318,7 +318,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -358,7 +358,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export_import_then_name, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export_import_then_name, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//export_import_then_name, inst21 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export_import_then_name, inst22 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded @@ -366,7 +366,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -435,7 +435,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export_import_then_name, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export_import_then_name, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//export_import_then_name, inst21 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export_import_then_name, inst22 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded @@ -443,7 +443,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -487,8 +487,8 @@ var d: D = {.y = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export_import_then_name, C, loaded [template = constants.%C] -// CHECK:STDOUT: %import_ref.275: type = import_ref Main//base, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export_import_then_name, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.b0a: type = import_ref Main//base, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//export_import_then_name, inst21 [indirect], loaded [template = constants.%complete_type.9be] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export_import_then_name, inst22 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded @@ -499,8 +499,8 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 -// CHECK:STDOUT: .D = imports.%import_ref.275 +// CHECK:STDOUT: .C = imports.%import_ref.06e +// CHECK:STDOUT: .D = imports.%import_ref.b0a // CHECK:STDOUT: .c = %c // CHECK:STDOUT: .d = %d // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/packages/no_prelude/export_name.carbon b/toolchain/check/testdata/packages/no_prelude/export_name.carbon index 39010aeb4411..ef32d249b4d3 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_name.carbon @@ -259,12 +259,12 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.d58: = import_ref Main//base, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { // CHECK:STDOUT: .NSC = file.%NSC // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.88a: type = import_ref Main//base, NSC, loaded [template = constants.%NSC] +// CHECK:STDOUT: %import_ref.1a1: type = import_ref Main//base, NSC, loaded [template = constants.%NSC] // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type.9be] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.276 = import_ref Main//base, loc5_8, unloaded @@ -279,8 +279,8 @@ private export C; // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] -// CHECK:STDOUT: %NSC: type = export NSC, imports.%import_ref.88a [template = constants.%NSC] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] +// CHECK:STDOUT: %NSC: type = export NSC, imports.%import_ref.1a1 [template = constants.%NSC] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -300,16 +300,16 @@ private export C; // CHECK:STDOUT: --- not_reexporting.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.ec9 = import_ref Main//export, C, unloaded +// CHECK:STDOUT: %import_ref.be7 = import_ref Main//export, C, unloaded // CHECK:STDOUT: %import_ref.0f6: = import_ref Main//export, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.0f6, [template] { -// CHECK:STDOUT: .NSC = %import_ref.4ef +// CHECK:STDOUT: .NSC = %import_ref.309 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.ec9 +// CHECK:STDOUT: .C = imports.%import_ref.be7 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -328,12 +328,12 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.0f6: = import_ref Main//export, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.0f6, [template] { // CHECK:STDOUT: .NSC = file.%NSC // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.833: type = import_ref Main//export, NSC, loaded [template = constants.%NSC] +// CHECK:STDOUT: %import_ref.231: type = import_ref Main//export, NSC, loaded [template = constants.%NSC] // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//export, inst23 [indirect], loaded [template = constants.%complete_type.9be] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export, inst24 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Main//export, inst25 [indirect], unloaded @@ -348,8 +348,8 @@ private export C; // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.4a7 [template = constants.%C] -// CHECK:STDOUT: %NSC: type = export NSC, imports.%import_ref.833 [template = constants.%NSC] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.06e [template = constants.%C] +// CHECK:STDOUT: %NSC: type = export NSC, imports.%import_ref.231 [template = constants.%NSC] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "export.carbon"] { @@ -388,10 +388,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.0f6: = import_ref Main//export, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.0f6, [template] { -// CHECK:STDOUT: .NSC = %import_ref.833 +// CHECK:STDOUT: .NSC = %import_ref.231 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//export, inst23 [indirect], loaded [template = constants.%complete_type.9be] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export, inst24 [indirect], unloaded @@ -403,7 +403,7 @@ private export C; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .c = %c // CHECK:STDOUT: .nsc = %nsc @@ -466,10 +466,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.050: type = import_ref Main//export_export, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f43: type = import_ref Main//export_export, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.06f: = import_ref Main//export_export, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.06f, [template] { -// CHECK:STDOUT: .NSC = %import_ref.17e +// CHECK:STDOUT: .NSC = %import_ref.bb8 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.328: = import_ref Main//export_export, inst23 [indirect], loaded [template = constants.%complete_type.9be] // CHECK:STDOUT: %import_ref.db8 = import_ref Main//export_export, inst24 [indirect], unloaded @@ -481,7 +481,7 @@ private export C; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.050 +// CHECK:STDOUT: .C = imports.%import_ref.f43 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .c = %c // CHECK:STDOUT: .nsc = %nsc @@ -545,10 +545,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.050: type = import_ref Main//export_export, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.f43: type = import_ref Main//export_export, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.06f: = import_ref Main//export_export, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.06f, [template] { -// CHECK:STDOUT: .NSC = %import_ref.17e +// CHECK:STDOUT: .NSC = %import_ref.bb8 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.328: = import_ref Main//export_export, inst23 [indirect], loaded [template = constants.%complete_type.9be] // CHECK:STDOUT: %import_ref.db8 = import_ref Main//export_export, inst24 [indirect], unloaded @@ -560,7 +560,7 @@ private export C; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.050 +// CHECK:STDOUT: .C = imports.%import_ref.f43 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .c = %c // CHECK:STDOUT: .nsc = %nsc @@ -610,16 +610,16 @@ private export C; // CHECK:STDOUT: --- fail_export_ns.carbon // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.85d = import_ref Main//base, C, unloaded +// CHECK:STDOUT: %import_ref.f42 = import_ref Main//base, C, unloaded // CHECK:STDOUT: %import_ref.d58: = import_ref Main//base, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .NSC = %import_ref.d31 +// CHECK:STDOUT: .NSC = %import_ref.461 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.85d +// CHECK:STDOUT: .C = imports.%import_ref.f42 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -658,10 +658,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.d58: = import_ref Main//base, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .NSC = %import_ref.d31 +// CHECK:STDOUT: .NSC = %import_ref.461 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded @@ -670,7 +670,7 @@ private export C; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -699,10 +699,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.d58: = import_ref Main//base, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .NSC = %import_ref.88a +// CHECK:STDOUT: .NSC = %import_ref.1a1 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type.9be] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded @@ -714,7 +714,7 @@ private export C; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .c = %c // CHECK:STDOUT: .nsc = %nsc @@ -777,10 +777,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//export, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//export, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.0f6: = import_ref Main//export, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.0f6, [template] { -// CHECK:STDOUT: .NSC = %import_ref.833 +// CHECK:STDOUT: .NSC = %import_ref.231 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//export, inst23 [indirect], loaded [template = constants.%complete_type.9be] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//export, inst24 [indirect], unloaded @@ -792,7 +792,7 @@ private export C; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: .c = %c // CHECK:STDOUT: .nsc = %nsc @@ -864,10 +864,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.d58: = import_ref Main//base, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .NSC = %import_ref.d31 +// CHECK:STDOUT: .NSC = %import_ref.461 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded @@ -880,7 +880,7 @@ private export C; // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { @@ -902,7 +902,7 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.4a7: type = import_ref Main//repeat_export, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.06e: type = import_ref Main//repeat_export, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.ad3: = import_ref Main//repeat_export, inst23 [indirect], loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.6a9 = import_ref Main//repeat_export, inst24 [indirect], unloaded // CHECK:STDOUT: %import_ref.f67 = import_ref Main//repeat_export, inst25 [indirect], unloaded @@ -910,7 +910,7 @@ private export C; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.4a7 +// CHECK:STDOUT: .C = imports.%import_ref.06e // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import @@ -948,10 +948,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Main//base, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//base, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.d58: = import_ref Main//base, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .NSC = %import_ref.d31 +// CHECK:STDOUT: .NSC = %import_ref.461 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.56d: = import_ref Main//base, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Main//base, inst14 [no loc], unloaded @@ -964,7 +964,7 @@ private export C; // CHECK:STDOUT: .NS = imports.%NS // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C: type = export C, imports.%import_ref.0ac [template = constants.%C] +// CHECK:STDOUT: %C: type = export C, imports.%import_ref.3b0 [template = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "base.carbon"] { diff --git a/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon b/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon index 67b5fb91f156..2cbfe4a235fd 100644 --- a/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon +++ b/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon @@ -70,7 +70,7 @@ export C.n; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.0ac: type = import_ref Foo//a, C, loaded [template = constants.%C] +// CHECK:STDOUT: %import_ref.3b0: type = import_ref Foo//a, C, loaded [template = constants.%C] // CHECK:STDOUT: %import_ref.9fc: = import_ref Foo//a, loc6_1, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2c4 = import_ref Foo//a, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.4cb = import_ref Foo//a, loc5_8, unloaded @@ -78,7 +78,7 @@ export C.n; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C = imports.%import_ref.0ac +// CHECK:STDOUT: .C = imports.%import_ref.3b0 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/packages/no_prelude/fail_export_name_params.carbon b/toolchain/check/testdata/packages/no_prelude/fail_export_name_params.carbon index 33d93c147b3c..9f30016e2f6c 100644 --- a/toolchain/check/testdata/packages/no_prelude/fail_export_name_params.carbon +++ b/toolchain/check/testdata/packages/no_prelude/fail_export_name_params.carbon @@ -96,8 +96,8 @@ export C2(T:! type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.c46: %C1.type = import_ref Foo//a, C1, loaded [template = constants.%C1.generic] -// CHECK:STDOUT: %import_ref.f3f: %C2.type = import_ref Foo//a, C2, loaded [template = constants.%C2.generic] +// CHECK:STDOUT: %import_ref.393: %C1.type = import_ref Foo//a, C1, loaded [template = constants.%C1.generic] +// CHECK:STDOUT: %import_ref.5d7: %C2.type = import_ref Foo//a, C2, loaded [template = constants.%C2.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -106,10 +106,10 @@ export C2(T:! type); // CHECK:STDOUT: .C2 = %C2 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %C1: %C1.type = export C1, imports.%import_ref.c46 [template = constants.%C1.generic] +// CHECK:STDOUT: %C1: %C1.type = export C1, imports.%import_ref.393 [template = constants.%C1.generic] // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0, %T.param [symbolic = constants.%T] -// CHECK:STDOUT: %C2: %C2.type = export C2, imports.%import_ref.f3f [template = constants.%C2.generic] +// CHECK:STDOUT: %C2: %C2.type = export C2, imports.%import_ref.5d7 [template = constants.%C2.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C1(constants.%T: type) [from "a.carbon"] { diff --git a/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon b/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon index bcb7d4dea7e4..d592365359ae 100644 --- a/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon +++ b/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon @@ -330,8 +330,8 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.2f0: type = import_ref Main//mix_current_package, C1, loaded [template = constants.%C1] -// CHECK:STDOUT: %import_ref.dcf: type = import_ref Main//c2, C2, loaded [template = constants.%C2] +// CHECK:STDOUT: %import_ref.0d9: type = import_ref Main//mix_current_package, C1, loaded [template = constants.%C1] +// CHECK:STDOUT: %import_ref.09c: type = import_ref Main//c2, C2, loaded [template = constants.%C2] // CHECK:STDOUT: %import_ref.8f24d3.1: = import_ref Main//c1, loc4_11, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.eb7 = import_ref Main//c1, inst14 [no loc], unloaded // CHECK:STDOUT: %import_ref.8f24d3.2: = import_ref Main//c2, loc4_11, loaded [template = constants.%complete_type] @@ -340,8 +340,8 @@ import Other library "o1"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C1 = imports.%import_ref.2f0 -// CHECK:STDOUT: .C2 = imports.%import_ref.dcf +// CHECK:STDOUT: .C1 = imports.%import_ref.0d9 +// CHECK:STDOUT: .C2 = imports.%import_ref.09c // CHECK:STDOUT: .c1 = %c1 // CHECK:STDOUT: .c2 = %c2 // CHECK:STDOUT: } @@ -401,14 +401,14 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.2f0: type = import_ref Main//dup_c1, C1, loaded [template = constants.%C1] +// CHECK:STDOUT: %import_ref.0d9: type = import_ref Main//dup_c1, C1, loaded [template = constants.%C1] // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//c1, loc4_11, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.eb7 = import_ref Main//c1, inst14 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .C1 = imports.%import_ref.2f0 +// CHECK:STDOUT: .C1 = imports.%import_ref.0d9 // CHECK:STDOUT: .c1 = %c1 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import @@ -437,7 +437,7 @@ import Other library "o1"; // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.d58: = import_ref Main//ns, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.d58, [template] { -// CHECK:STDOUT: .C = %import_ref.3c0 +// CHECK:STDOUT: .C = %import_ref.50d // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -460,7 +460,7 @@ import Other library "o1"; // CHECK:STDOUT: imports { // CHECK:STDOUT: %import_ref.0f6: = import_ref Main//use_ns, NS, loaded // CHECK:STDOUT: %NS: = namespace %import_ref.0f6, [template] { -// CHECK:STDOUT: .C = %import_ref.a76 +// CHECK:STDOUT: .C = %import_ref.1c4 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Main//ns, loc5_13, loaded [template = constants.%complete_type] // CHECK:STDOUT: %import_ref.2dd = import_ref Main//ns, inst15 [no loc], unloaded @@ -520,8 +520,8 @@ import Other library "o1"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .O1 = %import_ref.136 -// CHECK:STDOUT: .O2 = %import_ref.f3b +// CHECK:STDOUT: .O1 = %import_ref.880 +// CHECK:STDOUT: .O2 = %import_ref.328 // CHECK:STDOUT: import Other//o2 // CHECK:STDOUT: import Other//o1 // CHECK:STDOUT: } @@ -597,7 +597,7 @@ import Other library "o1"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other: = namespace file.%Other.import, [template] { -// CHECK:STDOUT: .O1 = %import_ref.136 +// CHECK:STDOUT: .O1 = %import_ref.880 // CHECK:STDOUT: import Other//o1 // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Other//o1, loc4_11, loaded [template = constants.%complete_type] diff --git a/toolchain/check/testdata/packages/no_prelude/missing_prelude.carbon b/toolchain/check/testdata/packages/no_prelude/missing_prelude.carbon index a819c9b980bc..32bbad05cf5b 100644 --- a/toolchain/check/testdata/packages/no_prelude/missing_prelude.carbon +++ b/toolchain/check/testdata/packages/no_prelude/missing_prelude.carbon @@ -196,7 +196,7 @@ var n: {} = i32; // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %N: %T = bind_symbolic_name N, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %N.patt.45169f.2: %T = symbolic_binding_pattern N, 1 [symbolic] +// CHECK:STDOUT: %N.patt.51ccc0.2: %T = symbolic_binding_pattern N, 1 [symbolic] // CHECK:STDOUT: %Int.specific_fn: = specific_function %Int, @Int(Core.IntLiteral, %int_32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -221,7 +221,7 @@ var n: {} = i32; // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: %N: %T = bind_symbolic_name N, 1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %N.patt: %T = symbolic_binding_pattern N, 1 [symbolic = %N.patt (constants.%N.patt.45169f.2)] +// CHECK:STDOUT: %N.patt: %T = symbolic_binding_pattern N, 1 [symbolic = %N.patt (constants.%N.patt.51ccc0.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index c54a673e30c6..636eee152e22 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -21,20 +21,20 @@ fn F() -> i32 { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -62,11 +62,11 @@ fn F() -> i32 { // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %n: ref %i32 = bind_name n, %n.var // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %n.var, %.loc12 // CHECK:STDOUT: %n.ref: ref %i32 = name_ref n, %n // CHECK:STDOUT: %addr.loc13_13: %ptr = addr_of %n.ref diff --git a/toolchain/check/testdata/pointer/address_of_lvalue.carbon b/toolchain/check/testdata/pointer/address_of_lvalue.carbon index 35f1a3b47be3..349a9a75e828 100644 --- a/toolchain/check/testdata/pointer/address_of_lvalue.carbon +++ b/toolchain/check/testdata/pointer/address_of_lvalue.carbon @@ -27,33 +27,33 @@ fn F() { // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %ptr.570: type = ptr_type %struct_type.a.b.3de [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %ptr.3ee: type = ptr_type %struct_type.a.b.501 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %struct: %struct_type.a.b.3de = struct_value (%int_1.c60, %int_2.166) [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %struct: %struct_type.a.b.501 = struct_value (%int_1.5d2, %int_2.ef8) [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -70,80 +70,80 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %s.var: ref %struct_type.a.b.3de = var s -// CHECK:STDOUT: %s: ref %struct_type.a.b.3de = bind_name s, %s.var +// CHECK:STDOUT: %s.var: ref %struct_type.a.b.501 = var s +// CHECK:STDOUT: %s: ref %struct_type.a.b.501 = bind_name s, %s.var // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc12: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc12_46.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc12, %int_2.loc12) -// CHECK:STDOUT: %impl.elem0.loc12_46.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_46.1: = bound_method %int_1.loc12, %impl.elem0.loc12_46.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc12_46.1: = specific_function %Convert.bound.loc12_46.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc12_46.1: init %i32 = call %Convert.specific_fn.loc12_46.1(%int_1.loc12) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc12_46.2: init %i32 = converted %int_1.loc12, %int.convert_checked.loc12_46.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc12_46.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_46.1: = bound_method %int_1.loc12, %impl.elem0.loc12_46.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc12_46.1: = specific_function %Convert.bound.loc12_46.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc12_46.1: init %i32 = call %Convert.specific_fn.loc12_46.1(%int_1.loc12) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc12_46.2: init %i32 = converted %int_1.loc12, %int.convert_checked.loc12_46.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc12_46.3: ref %i32 = struct_access %s.var, element0 -// CHECK:STDOUT: %.loc12_46.4: init %i32 = initialize_from %.loc12_46.2 to %.loc12_46.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc12_46.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12_46.2: = bound_method %int_2.loc12, %impl.elem0.loc12_46.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc12_46.2: = specific_function %Convert.bound.loc12_46.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc12_46.2: init %i32 = call %Convert.specific_fn.loc12_46.2(%int_2.loc12) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_46.5: init %i32 = converted %int_2.loc12, %int.convert_checked.loc12_46.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc12_46.4: init %i32 = initialize_from %.loc12_46.2 to %.loc12_46.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc12_46.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12_46.2: = bound_method %int_2.loc12, %impl.elem0.loc12_46.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc12_46.2: = specific_function %Convert.bound.loc12_46.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc12_46.2: init %i32 = call %Convert.specific_fn.loc12_46.2(%int_2.loc12) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_46.5: init %i32 = converted %int_2.loc12, %int.convert_checked.loc12_46.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc12_46.6: ref %i32 = struct_access %s.var, element1 -// CHECK:STDOUT: %.loc12_46.7: init %i32 = initialize_from %.loc12_46.5 to %.loc12_46.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc12_46.8: init %struct_type.a.b.3de = struct_init (%.loc12_46.4, %.loc12_46.7) to %s.var [template = constants.%struct] -// CHECK:STDOUT: %.loc12_47: init %struct_type.a.b.3de = converted %.loc12_46.1, %.loc12_46.8 [template = constants.%struct] +// CHECK:STDOUT: %.loc12_46.7: init %i32 = initialize_from %.loc12_46.5 to %.loc12_46.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc12_46.8: init %struct_type.a.b.501 = struct_init (%.loc12_46.4, %.loc12_46.7) to %s.var [template = constants.%struct] +// CHECK:STDOUT: %.loc12_47: init %struct_type.a.b.501 = converted %.loc12_46.1, %.loc12_46.8 [template = constants.%struct] // CHECK:STDOUT: assign %s.var, %.loc12_47 -// CHECK:STDOUT: %p.var: ref %ptr.570 = var p -// CHECK:STDOUT: %p: ref %ptr.570 = bind_name p, %p.var -// CHECK:STDOUT: %s.ref.loc14: ref %struct_type.a.b.3de = name_ref s, %s -// CHECK:STDOUT: %addr.loc14: %ptr.570 = addr_of %s.ref.loc14 +// CHECK:STDOUT: %p.var: ref %ptr.3ee = var p +// CHECK:STDOUT: %p: ref %ptr.3ee = bind_name p, %p.var +// CHECK:STDOUT: %s.ref.loc14: ref %struct_type.a.b.501 = name_ref s, %s +// CHECK:STDOUT: %addr.loc14: %ptr.3ee = addr_of %s.ref.loc14 // CHECK:STDOUT: assign %p.var, %addr.loc14 -// CHECK:STDOUT: %q.var: ref %ptr.dc3 = var q -// CHECK:STDOUT: %q: ref %ptr.dc3 = bind_name q, %q.var -// CHECK:STDOUT: %s.ref.loc15: ref %struct_type.a.b.3de = name_ref s, %s +// CHECK:STDOUT: %q.var: ref %ptr.235 = var q +// CHECK:STDOUT: %q: ref %ptr.235 = bind_name q, %q.var +// CHECK:STDOUT: %s.ref.loc15: ref %struct_type.a.b.501 = name_ref s, %s // CHECK:STDOUT: %.loc15: ref %i32 = struct_access %s.ref.loc15, element0 -// CHECK:STDOUT: %addr.loc15: %ptr.dc3 = addr_of %.loc15 +// CHECK:STDOUT: %addr.loc15: %ptr.235 = addr_of %.loc15 // CHECK:STDOUT: assign %q.var, %addr.loc15 -// CHECK:STDOUT: %r.var: ref %ptr.dc3 = var r -// CHECK:STDOUT: %r: ref %ptr.dc3 = bind_name r, %r.var -// CHECK:STDOUT: %s.ref.loc16: ref %struct_type.a.b.3de = name_ref s, %s +// CHECK:STDOUT: %r.var: ref %ptr.235 = var r +// CHECK:STDOUT: %r: ref %ptr.235 = bind_name r, %r.var +// CHECK:STDOUT: %s.ref.loc16: ref %struct_type.a.b.501 = name_ref s, %s // CHECK:STDOUT: %.loc16: ref %i32 = struct_access %s.ref.loc16, element1 -// CHECK:STDOUT: %addr.loc16: %ptr.dc3 = addr_of %.loc16 +// CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %.loc16 // CHECK:STDOUT: assign %r.var, %addr.loc16 -// CHECK:STDOUT: %t.var: ref %tuple.type.471 = var t -// CHECK:STDOUT: %t: ref %tuple.type.471 = bind_name t, %t.var +// CHECK:STDOUT: %t.var: ref %tuple.type.d07 = var t +// CHECK:STDOUT: %t: ref %tuple.type.d07 = bind_name t, %t.var // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc18: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc18_28.1: %tuple.type.f94 = tuple_literal (%int_1.loc18, %int_2.loc18) -// CHECK:STDOUT: %impl.elem0.loc18_28.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18_28.1: = bound_method %int_1.loc18, %impl.elem0.loc18_28.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc18_28.1: = specific_function %Convert.bound.loc18_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc18_28.1: init %i32 = call %Convert.specific_fn.loc18_28.1(%int_1.loc18) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc18_28.2: init %i32 = converted %int_1.loc18, %int.convert_checked.loc18_28.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc18_28.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18_28.1: = bound_method %int_1.loc18, %impl.elem0.loc18_28.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc18_28.1: = specific_function %Convert.bound.loc18_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc18_28.1: init %i32 = call %Convert.specific_fn.loc18_28.1(%int_1.loc18) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc18_28.2: init %i32 = converted %int_1.loc18, %int.convert_checked.loc18_28.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc18: ref %i32 = tuple_access %t.var, element0 -// CHECK:STDOUT: %.loc18_28.3: init %i32 = initialize_from %.loc18_28.2 to %tuple.elem0.loc18 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc18_28.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18_28.2: = bound_method %int_2.loc18, %impl.elem0.loc18_28.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc18_28.2: = specific_function %Convert.bound.loc18_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc18_28.2: init %i32 = call %Convert.specific_fn.loc18_28.2(%int_2.loc18) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc18_28.4: init %i32 = converted %int_2.loc18, %int.convert_checked.loc18_28.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc18_28.3: init %i32 = initialize_from %.loc18_28.2 to %tuple.elem0.loc18 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc18_28.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18_28.2: = bound_method %int_2.loc18, %impl.elem0.loc18_28.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc18_28.2: = specific_function %Convert.bound.loc18_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc18_28.2: init %i32 = call %Convert.specific_fn.loc18_28.2(%int_2.loc18) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc18_28.4: init %i32 = converted %int_2.loc18, %int.convert_checked.loc18_28.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1.loc18: ref %i32 = tuple_access %t.var, element1 -// CHECK:STDOUT: %.loc18_28.5: init %i32 = initialize_from %.loc18_28.4 to %tuple.elem1.loc18 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc18_28.6: init %tuple.type.471 = tuple_init (%.loc18_28.3, %.loc18_28.5) to %t.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc18_29: init %tuple.type.471 = converted %.loc18_28.1, %.loc18_28.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc18_28.5: init %i32 = initialize_from %.loc18_28.4 to %tuple.elem1.loc18 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc18_28.6: init %tuple.type.d07 = tuple_init (%.loc18_28.3, %.loc18_28.5) to %t.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc18_29: init %tuple.type.d07 = converted %.loc18_28.1, %.loc18_28.6 [template = constants.%tuple] // CHECK:STDOUT: assign %t.var, %.loc18_29 -// CHECK:STDOUT: %t0.var: ref %ptr.dc3 = var t0 -// CHECK:STDOUT: %t0: ref %ptr.dc3 = bind_name t0, %t0.var -// CHECK:STDOUT: %t.ref.loc19: ref %tuple.type.471 = name_ref t, %t +// CHECK:STDOUT: %t0.var: ref %ptr.235 = var t0 +// CHECK:STDOUT: %t0: ref %ptr.235 = bind_name t0, %t0.var +// CHECK:STDOUT: %t.ref.loc19: ref %tuple.type.d07 = name_ref t, %t // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %tuple.elem0.loc19: ref %i32 = tuple_access %t.ref.loc19, element0 -// CHECK:STDOUT: %addr.loc19: %ptr.dc3 = addr_of %tuple.elem0.loc19 +// CHECK:STDOUT: %addr.loc19: %ptr.235 = addr_of %tuple.elem0.loc19 // CHECK:STDOUT: assign %t0.var, %addr.loc19 -// CHECK:STDOUT: %t1.var: ref %ptr.dc3 = var t1 -// CHECK:STDOUT: %t1: ref %ptr.dc3 = bind_name t1, %t1.var -// CHECK:STDOUT: %t.ref.loc20: ref %tuple.type.471 = name_ref t, %t +// CHECK:STDOUT: %t1.var: ref %ptr.235 = var t1 +// CHECK:STDOUT: %t1: ref %ptr.235 = bind_name t1, %t1.var +// CHECK:STDOUT: %t.ref.loc20: ref %tuple.type.d07 = name_ref t, %t // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %tuple.elem1.loc20: ref %i32 = tuple_access %t.ref.loc20, element1 -// CHECK:STDOUT: %addr.loc20: %ptr.dc3 = addr_of %tuple.elem1.loc20 +// CHECK:STDOUT: %addr.loc20: %ptr.235 = addr_of %tuple.elem1.loc20 // CHECK:STDOUT: assign %t1.var, %addr.loc20 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index 0a1420b7d1be..4308e7db9e9c 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -23,20 +23,20 @@ fn F() -> i32 { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -64,11 +64,11 @@ fn F() -> i32 { // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %n: ref %i32 = bind_name n, %n.var // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %n.var, %.loc12 // CHECK:STDOUT: %p.var: ref %ptr = var p // CHECK:STDOUT: %p: ref %ptr = bind_name p, %p.var diff --git a/toolchain/check/testdata/pointer/fail_address_of_value.carbon b/toolchain/check/testdata/pointer/fail_address_of_value.carbon index 62d2c918a810..c99b905b2d46 100644 --- a/toolchain/check/testdata/pointer/fail_address_of_value.carbon +++ b/toolchain/check/testdata/pointer/fail_address_of_value.carbon @@ -106,7 +106,7 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %struct_type.a.7cc: type = struct_type {.a: %i32} [template] +// CHECK:STDOUT: %struct_type.a.ba9: type = struct_type {.a: %i32} [template] // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] // CHECK:STDOUT: %AddressOfLiteral.type: type = fn_type @AddressOfLiteral [template] @@ -129,14 +129,14 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: %AddressOfOperator.type: type = fn_type @AddressOfOperator [template] // CHECK:STDOUT: %AddressOfOperator: %AddressOfOperator.type = struct_value () [template] // CHECK:STDOUT: %false: bool = bool_literal false [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %AddressOfCall.type: type = fn_type @AddressOfCall [template] // CHECK:STDOUT: %AddressOfCall: %AddressOfCall.type = struct_value () [template] // CHECK:STDOUT: %AddressOfType.type: type = fn_type @AddressOfType [template] // CHECK:STDOUT: %AddressOfType: %AddressOfType.type = struct_value () [template] // CHECK:STDOUT: %ptr.db7: type = ptr_type type [template] // CHECK:STDOUT: %const: type = const_type %i32 [template] -// CHECK:STDOUT: %ptr.719: type = ptr_type %const [template] +// CHECK:STDOUT: %ptr.36b: type = ptr_type %const [template] // CHECK:STDOUT: %AddressOfTupleElementValue.type: type = fn_type @AddressOfTupleElementValue [template] // CHECK:STDOUT: %AddressOfTupleElementValue: %AddressOfTupleElementValue.type = struct_value () [template] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%int_1, %int_2) [template] @@ -146,7 +146,7 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -175,14 +175,14 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] { -// CHECK:STDOUT: %return.patt: %struct_type.a.7cc = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %struct_type.a.7cc = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %struct_type.a.ba9 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %struct_type.a.ba9 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template = constants.%struct_type.a.7cc] -// CHECK:STDOUT: %return.param: ref %struct_type.a.7cc = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %struct_type.a.7cc = return_slot %return.param +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template = constants.%struct_type.a.ba9] +// CHECK:STDOUT: %return.param: ref %struct_type.a.ba9 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %struct_type.a.ba9 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AddressOfLiteral.decl: %AddressOfLiteral.type = fn_decl @AddressOfLiteral [template = constants.%AddressOfLiteral] {} {} // CHECK:STDOUT: %AddressOfOperator.decl: %AddressOfOperator.type = fn_decl @AddressOfOperator [template = constants.%AddressOfOperator] {} {} @@ -204,7 +204,7 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: // CHECK:STDOUT: fn @G() -> %i32; // CHECK:STDOUT: -// CHECK:STDOUT: fn @H() -> %struct_type.a.7cc; +// CHECK:STDOUT: fn @H() -> %struct_type.a.ba9; // CHECK:STDOUT: // CHECK:STDOUT: fn @AddressOfLiteral() { // CHECK:STDOUT: !entry: @@ -240,11 +240,11 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: %.loc53: bool = block_arg !and.result [template = constants.%false] // CHECK:STDOUT: %addr.loc53: %ptr.bb2 = addr_of [template = ] // CHECK:STDOUT: %H.ref: %H.type = name_ref H, file.%H.decl [template = constants.%H] -// CHECK:STDOUT: %H.call: init %struct_type.a.7cc = call %H.ref() -// CHECK:STDOUT: %.loc58_6.1: ref %struct_type.a.7cc = temporary_storage -// CHECK:STDOUT: %.loc58_6.2: ref %struct_type.a.7cc = temporary %.loc58_6.1, %H.call +// CHECK:STDOUT: %H.call: init %struct_type.a.ba9 = call %H.ref() +// CHECK:STDOUT: %.loc58_6.1: ref %struct_type.a.ba9 = temporary_storage +// CHECK:STDOUT: %.loc58_6.2: ref %struct_type.a.ba9 = temporary %.loc58_6.1, %H.call // CHECK:STDOUT: %.loc58_7: ref %i32 = struct_access %.loc58_6.2, element0 -// CHECK:STDOUT: %addr.loc58: %ptr.dc3 = addr_of [template = ] +// CHECK:STDOUT: %addr.loc58: %ptr.235 = addr_of [template = ] // CHECK:STDOUT: %true.loc63: bool = bool_literal true [template = constants.%true] // CHECK:STDOUT: %.loc63: bool = not %true.loc63 [template = constants.%false] // CHECK:STDOUT: %addr.loc63: %ptr.bb2 = addr_of [template = ] @@ -255,7 +255,7 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [template = constants.%G] // CHECK:STDOUT: %G.call: init %i32 = call %G.ref() -// CHECK:STDOUT: %addr: %ptr.dc3 = addr_of [template = ] +// CHECK:STDOUT: %addr: %ptr.235 = addr_of [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -267,7 +267,7 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: %int_32.loc84: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc84: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %const: type = const_type %i32 [template = constants.%const] -// CHECK:STDOUT: %ptr: type = ptr_type %const [template = constants.%ptr.719] +// CHECK:STDOUT: %ptr: type = ptr_type %const [template = constants.%ptr.36b] // CHECK:STDOUT: %addr.loc84: %ptr.db7 = addr_of [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -287,10 +287,10 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: // CHECK:STDOUT: fn @AddressOfParam(%param.param_patt: %i32) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %param_addr.var: ref %ptr.dc3 = var param_addr -// CHECK:STDOUT: %param_addr: ref %ptr.dc3 = bind_name param_addr, %param_addr.var +// CHECK:STDOUT: %param_addr.var: ref %ptr.235 = var param_addr +// CHECK:STDOUT: %param_addr: ref %ptr.235 = bind_name param_addr, %param_addr.var // CHECK:STDOUT: %param.ref: %i32 = name_ref param, %param -// CHECK:STDOUT: %addr: %ptr.dc3 = addr_of [template = ] +// CHECK:STDOUT: %addr: %ptr.235 = addr_of [template = ] // CHECK:STDOUT: assign %param_addr.var, %addr // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/fail_deref_error.carbon b/toolchain/check/testdata/pointer/fail_deref_error.carbon index 6c18a036baaf..31473a4c01cd 100644 --- a/toolchain/check/testdata/pointer/fail_deref_error.carbon +++ b/toolchain/check/testdata/pointer/fail_deref_error.carbon @@ -27,7 +27,7 @@ let n2: i32 = undeclared->foo; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon b/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon index 677967a9e83f..0d78d003e1e0 100644 --- a/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon +++ b/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon @@ -55,7 +55,7 @@ fn Deref(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/fail_deref_type.carbon b/toolchain/check/testdata/pointer/fail_deref_type.carbon index ee24a3c9fabc..7ad5b4df857f 100644 --- a/toolchain/check/testdata/pointer/fail_deref_type.carbon +++ b/toolchain/check/testdata/pointer/fail_deref_type.carbon @@ -28,7 +28,7 @@ var p2: i32->foo; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/fail_type_mismatch.carbon b/toolchain/check/testdata/pointer/fail_type_mismatch.carbon index cdd696590764..c81f6f0a8f6b 100644 --- a/toolchain/check/testdata/pointer/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/pointer/fail_type_mismatch.carbon @@ -32,7 +32,7 @@ fn ConstMismatch(p: const {}*) -> const ({}*) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/import.carbon b/toolchain/check/testdata/pointer/import.carbon index 1961af21fdd1..05a2d9eb9483 100644 --- a/toolchain/check/testdata/pointer/import.carbon +++ b/toolchain/check/testdata/pointer/import.carbon @@ -27,20 +27,20 @@ var a: i32* = a_ref; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -62,11 +62,11 @@ var a: i32* = a_ref; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign file.%a_orig.var, %.loc4 // CHECK:STDOUT: %a_orig.ref: ref %i32 = name_ref a_orig, file.%a_orig // CHECK:STDOUT: %addr: %ptr = addr_of %a_orig.ref @@ -83,10 +83,10 @@ var a: i32* = a_ref; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.ae6 = import_ref Implicit//default, a_orig, unloaded -// CHECK:STDOUT: %import_ref.b22: ref %ptr = import_ref Implicit//default, a_ref, loaded +// CHECK:STDOUT: %import_ref.505 = import_ref Implicit//default, a_orig, unloaded +// CHECK:STDOUT: %import_ref.524: ref %ptr = import_ref Implicit//default, a_ref, loaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 +// CHECK:STDOUT: .Int = %import_ref.2c8 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -94,8 +94,8 @@ var a: i32* = a_ref; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .a_orig = imports.%import_ref.ae6 -// CHECK:STDOUT: .a_ref = imports.%import_ref.b22 +// CHECK:STDOUT: .a_orig = imports.%import_ref.505 +// CHECK:STDOUT: .a_ref = imports.%import_ref.524 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a // CHECK:STDOUT: } @@ -108,7 +108,7 @@ var a: i32* = a_ref; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a_ref.ref: ref %ptr = name_ref a_ref, imports.%import_ref.b22 +// CHECK:STDOUT: %a_ref.ref: ref %ptr = name_ref a_ref, imports.%import_ref.524 // CHECK:STDOUT: %.loc4: %ptr = bind_value %a_ref.ref // CHECK:STDOUT: assign file.%a.var, %.loc4 // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/pointer/nested_const.carbon b/toolchain/check/testdata/pointer/nested_const.carbon index e7037615045d..836d39eaabe5 100644 --- a/toolchain/check/testdata/pointer/nested_const.carbon +++ b/toolchain/check/testdata/pointer/nested_const.carbon @@ -18,18 +18,18 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %const.105: type = const_type %i32 [template] -// CHECK:STDOUT: %ptr.719: type = ptr_type %const.105 [template] -// CHECK:STDOUT: %const.5f0: type = const_type %ptr.719 [template] -// CHECK:STDOUT: %ptr.fa4: type = ptr_type %const.5f0 [template] -// CHECK:STDOUT: %const.297: type = const_type %ptr.fa4 [template] +// CHECK:STDOUT: %const.20a: type = const_type %i32 [template] +// CHECK:STDOUT: %ptr.36b: type = ptr_type %const.20a [template] +// CHECK:STDOUT: %const.58f: type = const_type %ptr.36b [template] +// CHECK:STDOUT: %ptr.6e8: type = ptr_type %const.58f [template] +// CHECK:STDOUT: %const.fa2: type = const_type %ptr.6e8 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -42,37 +42,37 @@ 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 [template = constants.%F] { -// CHECK:STDOUT: %p.patt: %const.297 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %const.297 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %const.105 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %const.105 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: %const.fa2 = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %const.fa2 = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %const.20a = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %const.20a = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc12_47: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_47: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %const.loc12_41: type = const_type %i32 [template = constants.%const.105] -// CHECK:STDOUT: %p.param: %const.297 = value_param runtime_param0 -// CHECK:STDOUT: %.loc12: type = splice_block %const.loc12_9 [template = constants.%const.297] { +// CHECK:STDOUT: %const.loc12_41: type = const_type %i32 [template = constants.%const.20a] +// CHECK:STDOUT: %p.param: %const.fa2 = value_param runtime_param0 +// CHECK:STDOUT: %.loc12: type = splice_block %const.loc12_9 [template = constants.%const.fa2] { // CHECK:STDOUT: %int_32.loc12_29: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_29: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %const.loc12_23: type = const_type %i32 [template = constants.%const.105] -// CHECK:STDOUT: %ptr.loc12_32: type = ptr_type %const.105 [template = constants.%ptr.719] -// CHECK:STDOUT: %const.loc12_16: type = const_type %ptr.719 [template = constants.%const.5f0] -// CHECK:STDOUT: %ptr.loc12_34: type = ptr_type %const.5f0 [template = constants.%ptr.fa4] -// CHECK:STDOUT: %const.loc12_9: type = const_type %ptr.fa4 [template = constants.%const.297] +// CHECK:STDOUT: %const.loc12_23: type = const_type %i32 [template = constants.%const.20a] +// CHECK:STDOUT: %ptr.loc12_32: type = ptr_type %const.20a [template = constants.%ptr.36b] +// CHECK:STDOUT: %const.loc12_16: type = const_type %ptr.36b [template = constants.%const.58f] +// CHECK:STDOUT: %ptr.loc12_34: type = ptr_type %const.58f [template = constants.%ptr.6e8] +// CHECK:STDOUT: %const.loc12_9: type = const_type %ptr.6e8 [template = constants.%const.fa2] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %const.297 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %const.105 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %const.105 = return_slot %return.param +// CHECK:STDOUT: %p: %const.fa2 = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref %const.20a = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %const.20a = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%p.param_patt: %const.297) -> %const.105 { +// CHECK:STDOUT: fn @F(%p.param_patt: %const.fa2) -> %const.20a { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %const.297 = name_ref p, %p -// CHECK:STDOUT: %.loc13_11.1: ref %const.5f0 = deref %p.ref -// CHECK:STDOUT: %.loc13_11.2: %const.5f0 = bind_value %.loc13_11.1 -// CHECK:STDOUT: %.loc13_10.1: ref %const.105 = deref %.loc13_11.2 -// CHECK:STDOUT: %.loc13_10.2: %const.105 = bind_value %.loc13_10.1 +// CHECK:STDOUT: %p.ref: %const.fa2 = name_ref p, %p +// CHECK:STDOUT: %.loc13_11.1: ref %const.58f = deref %p.ref +// CHECK:STDOUT: %.loc13_11.2: %const.58f = bind_value %.loc13_11.1 +// CHECK:STDOUT: %.loc13_10.1: ref %const.20a = deref %.loc13_11.2 +// CHECK:STDOUT: %.loc13_10.2: %const.20a = bind_value %.loc13_10.1 // CHECK:STDOUT: return %.loc13_10.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/types.carbon b/toolchain/check/testdata/pointer/types.carbon index 9cf8f8a68659..a17a4c4ecc33 100644 --- a/toolchain/check/testdata/pointer/types.carbon +++ b/toolchain/check/testdata/pointer/types.carbon @@ -21,18 +21,18 @@ fn ConstPtr(p: const i32*) -> (const i32)* { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] // CHECK:STDOUT: %Ptr.type: type = fn_type @Ptr [template] // CHECK:STDOUT: %Ptr: %Ptr.type = struct_value () [template] // CHECK:STDOUT: %const: type = const_type %i32 [template] -// CHECK:STDOUT: %ptr.719: type = ptr_type %const [template] +// CHECK:STDOUT: %ptr.36b: type = ptr_type %const [template] // CHECK:STDOUT: %ConstPtr.type: type = fn_type @ConstPtr [template] // CHECK:STDOUT: %ConstPtr: %ConstPtr.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -46,56 +46,56 @@ fn ConstPtr(p: const i32*) -> (const i32)* { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Ptr.decl: %Ptr.type = fn_decl @Ptr [template = constants.%Ptr] { -// CHECK:STDOUT: %p.patt: %ptr.dc3 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %ptr.dc3 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.dc3 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.dc3 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: %ptr.235 = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %ptr.235 = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %ptr.235 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.235 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc11_20: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_20: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc11_23: type = ptr_type %i32 [template = constants.%ptr.dc3] -// CHECK:STDOUT: %p.param: %ptr.dc3 = value_param runtime_param0 -// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_14 [template = constants.%ptr.dc3] { +// CHECK:STDOUT: %ptr.loc11_23: type = ptr_type %i32 [template = constants.%ptr.235] +// CHECK:STDOUT: %p.param: %ptr.235 = value_param runtime_param0 +// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_14 [template = constants.%ptr.235] { // CHECK:STDOUT: %int_32.loc11_11: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_11: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr.loc11_14: type = ptr_type %i32 [template = constants.%ptr.dc3] +// CHECK:STDOUT: %ptr.loc11_14: type = ptr_type %i32 [template = constants.%ptr.235] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.dc3 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.dc3 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.dc3 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.235 = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.235 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConstPtr.decl: %ConstPtr.type = fn_decl @ConstPtr [template = constants.%ConstPtr] { -// CHECK:STDOUT: %p.patt: %ptr.719 = binding_pattern p -// CHECK:STDOUT: %p.param_patt: %ptr.719 = value_param_pattern %p.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %ptr.719 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %ptr.719 = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %p.patt: %ptr.36b = binding_pattern p +// CHECK:STDOUT: %p.param_patt: %ptr.36b = value_param_pattern %p.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %ptr.36b = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %ptr.36b = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc15_38: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_38: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %const.loc15_32: type = const_type %i32 [template = constants.%const] -// CHECK:STDOUT: %ptr.loc15_42: type = ptr_type %const [template = constants.%ptr.719] -// CHECK:STDOUT: %p.param: %ptr.719 = value_param runtime_param0 -// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15_25 [template = constants.%ptr.719] { +// CHECK:STDOUT: %ptr.loc15_42: type = ptr_type %const [template = constants.%ptr.36b] +// CHECK:STDOUT: %p.param: %ptr.36b = value_param runtime_param0 +// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15_25 [template = constants.%ptr.36b] { // CHECK:STDOUT: %int_32.loc15_22: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc15_22: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %const.loc15_16: type = const_type %i32 [template = constants.%const] -// CHECK:STDOUT: %ptr.loc15_25: type = ptr_type %const [template = constants.%ptr.719] +// CHECK:STDOUT: %ptr.loc15_25: type = ptr_type %const [template = constants.%ptr.36b] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.719 = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.719 = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %ptr.719 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.36b = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.36b = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %ptr.36b = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Ptr(%p.param_patt: %ptr.dc3) -> %ptr.dc3 { +// CHECK:STDOUT: fn @Ptr(%p.param_patt: %ptr.235) -> %ptr.235 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.dc3 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.235 = name_ref p, %p // CHECK:STDOUT: return %p.ref // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConstPtr(%p.param_patt: %ptr.719) -> %ptr.719 { +// CHECK:STDOUT: fn @ConstPtr(%p.param_patt: %ptr.36b) -> %ptr.36b { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.719 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.36b = name_ref p, %p // CHECK:STDOUT: return %p.ref // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/code_after_return.carbon b/toolchain/check/testdata/return/code_after_return.carbon index 7f36587da456..3f8b370b2d32 100644 --- a/toolchain/check/testdata/return/code_after_return.carbon +++ b/toolchain/check/testdata/return/code_after_return.carbon @@ -22,8 +22,8 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/code_after_return_value.carbon b/toolchain/check/testdata/return/code_after_return_value.carbon index cc15e4d3983f..c942d160bc60 100644 --- a/toolchain/check/testdata/return/code_after_return_value.carbon +++ b/toolchain/check/testdata/return/code_after_return_value.carbon @@ -30,20 +30,20 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -78,12 +78,12 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: fn @F(%b.param_patt: bool) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_0, %.loc12_11.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_0, %.loc12_11.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc12_11.2 // 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 15fbc6ef7e3e..7efa416bae39 100644 --- a/toolchain/check/testdata/return/fail_call_in_type.carbon +++ b/toolchain/check/testdata/return/fail_call_in_type.carbon @@ -30,7 +30,7 @@ fn Six() -> ReturnType() { return 6; } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_missing_return.carbon b/toolchain/check/testdata/return/fail_missing_return.carbon index 6bbfbb1e187d..e0c3f0d4738f 100644 --- a/toolchain/check/testdata/return/fail_missing_return.carbon +++ b/toolchain/check/testdata/return/fail_missing_return.carbon @@ -25,7 +25,7 @@ fn Main() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon b/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon index 8e46b1f31467..4fce34992101 100644 --- a/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon @@ -26,7 +26,7 @@ fn Procedure() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // 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 38640aaf8891..e7341550cb78 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -40,35 +40,35 @@ fn G() -> C { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %C: type = class_type @C [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b.3de [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b.501 [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -105,7 +105,7 @@ fn G() -> C { // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc23_16: %C.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc23_28: %C.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C @@ -119,11 +119,11 @@ fn G() -> C { // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %v.var, %.loc12 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: return @@ -135,20 +135,20 @@ fn G() -> C { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc25_38.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc25_38.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc25_38.1: = bound_method %int_1, %impl.elem0.loc25_38.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc25_38.1: = specific_function %Convert.bound.loc25_38.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc25_38.1: init %i32 = call %Convert.specific_fn.loc25_38.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc25_38.2: init %i32 = converted %int_1, %int.convert_checked.loc25_38.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc25_38.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc25_38.1: = bound_method %int_1, %impl.elem0.loc25_38.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc25_38.1: = specific_function %Convert.bound.loc25_38.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc25_38.1: init %i32 = call %Convert.specific_fn.loc25_38.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc25_38.2: init %i32 = converted %int_1, %int.convert_checked.loc25_38.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc25_38.3: ref %i32 = class_element_access %return, element0 -// CHECK:STDOUT: %.loc25_38.4: init %i32 = initialize_from %.loc25_38.2 to %.loc25_38.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc25_38.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc25_38.2: = bound_method %int_2, %impl.elem0.loc25_38.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc25_38.2: = specific_function %Convert.bound.loc25_38.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc25_38.2: init %i32 = call %Convert.specific_fn.loc25_38.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc25_38.5: init %i32 = converted %int_2, %int.convert_checked.loc25_38.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc25_38.4: init %i32 = initialize_from %.loc25_38.2 to %.loc25_38.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc25_38.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc25_38.2: = bound_method %int_2, %impl.elem0.loc25_38.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc25_38.2: = specific_function %Convert.bound.loc25_38.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc25_38.2: init %i32 = call %Convert.specific_fn.loc25_38.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc25_38.5: init %i32 = converted %int_2, %int.convert_checked.loc25_38.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc25_38.6: ref %i32 = class_element_access %return, element1 -// CHECK:STDOUT: %.loc25_38.7: init %i32 = initialize_from %.loc25_38.5 to %.loc25_38.6 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc25_38.7: init %i32 = initialize_from %.loc25_38.5 to %.loc25_38.6 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc25_38.8: init %C = class_init (%.loc25_38.4, %.loc25_38.7), %return [template = constants.%C.val] // CHECK:STDOUT: %.loc25_39: init %C = converted %.loc25_38.1, %.loc25_38.8 [template = constants.%C.val] // CHECK:STDOUT: assign %return, %.loc25_39 diff --git a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon index 91a7982d3b9f..39662c03dc78 100644 --- a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon @@ -48,25 +48,25 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %SameScope: %SameScope.type = struct_value () [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %DifferentScopes.type: type = fn_type @DifferentScopes [template] // CHECK:STDOUT: %DifferentScopes: %DifferentScopes.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -108,31 +108,31 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %int_0.loc13: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_0.loc13, %impl.elem0.loc13 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_0.loc13) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc13: init %i32 = converted %int_0.loc13, %int.convert_checked.loc13 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_0.loc13, %impl.elem0.loc13 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_0.loc13) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc13: init %i32 = converted %int_0.loc13, %int.convert_checked.loc13 [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %v.var, %.loc13 // CHECK:STDOUT: %w.var: ref %i32 = var w // CHECK:STDOUT: %w: ref %i32 = bind_name w, %w.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc21: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc21: = bound_method %int_1, %impl.elem0.loc21 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc21: = specific_function %Convert.bound.loc21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %Convert.specific_fn.loc21(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc21: init %i32 = converted %int_1, %int.convert_checked.loc21 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc21: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc21: = bound_method %int_1, %impl.elem0.loc21 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc21: = specific_function %Convert.bound.loc21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %Convert.specific_fn.loc21(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc21: init %i32 = converted %int_1, %int.convert_checked.loc21 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %w.var, %.loc21 // CHECK:STDOUT: br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_0.loc23: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc23: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc23: = bound_method %int_0.loc23, %impl.elem0.loc23 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc23: = specific_function %Convert.bound.loc23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %Convert.specific_fn.loc23(%int_0.loc23) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc23_11.1: %i32 = value_of_initializer %int.convert_checked.loc23 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc23_11.2: %i32 = converted %int_0.loc23, %.loc23_11.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc23: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc23: = bound_method %int_0.loc23, %impl.elem0.loc23 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc23: = specific_function %Convert.bound.loc23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %Convert.specific_fn.loc23(%int_0.loc23) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc23_11.1: %i32 = value_of_initializer %int.convert_checked.loc23 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc23_11.2: %i32 = converted %int_0.loc23, %.loc23_11.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc23_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -145,11 +145,11 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %int_0.loc28: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc28: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc28: = bound_method %int_0.loc28, %impl.elem0.loc28 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc28: = specific_function %Convert.bound.loc28, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc28: init %i32 = call %Convert.specific_fn.loc28(%int_0.loc28) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc28: init %i32 = converted %int_0.loc28, %int.convert_checked.loc28 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc28: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc28: = bound_method %int_0.loc28, %impl.elem0.loc28 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc28: = specific_function %Convert.bound.loc28, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc28: init %i32 = call %Convert.specific_fn.loc28(%int_0.loc28) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc28: init %i32 = converted %int_0.loc28, %int.convert_checked.loc28 [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %v.var, %.loc28 // CHECK:STDOUT: %true.loc29: bool = bool_literal true [template = constants.%true] // CHECK:STDOUT: if %true.loc29 br !if.then.loc29 else br !if.else.loc29 @@ -158,11 +158,11 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %w.var: ref %i32 = var w // CHECK:STDOUT: %w: ref %i32 = bind_name w, %w.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc36: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc36: = bound_method %int_1, %impl.elem0.loc36 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc36: = specific_function %Convert.bound.loc36, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc36: init %i32 = call %Convert.specific_fn.loc36(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc36: init %i32 = converted %int_1, %int.convert_checked.loc36 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc36: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc36: = bound_method %int_1, %impl.elem0.loc36 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc36: = specific_function %Convert.bound.loc36, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc36: init %i32 = call %Convert.specific_fn.loc36(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc36: init %i32 = converted %int_1, %int.convert_checked.loc36 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %w.var, %.loc36 // CHECK:STDOUT: br !if.else.loc29 // CHECK:STDOUT: @@ -171,12 +171,12 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc27: // CHECK:STDOUT: %int_0.loc39: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc39: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc39: = bound_method %int_0.loc39, %impl.elem0.loc39 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc39: = specific_function %Convert.bound.loc39, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc39: init %i32 = call %Convert.specific_fn.loc39(%int_0.loc39) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc39_11.1: %i32 = value_of_initializer %int.convert_checked.loc39 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc39_11.2: %i32 = converted %int_0.loc39, %.loc39_11.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc39: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc39: = bound_method %int_0.loc39, %impl.elem0.loc39 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc39: = specific_function %Convert.bound.loc39, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc39: init %i32 = call %Convert.specific_fn.loc39(%int_0.loc39) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc39_11.1: %i32 = value_of_initializer %int.convert_checked.loc39 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc39_11.2: %i32 = converted %int_0.loc39, %.loc39_11.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc39_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_returned_var_type.carbon b/toolchain/check/testdata/return/fail_returned_var_type.carbon index f85468899cc9..112c2f5d91ad 100644 --- a/toolchain/check/testdata/return/fail_returned_var_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_type.carbon @@ -31,8 +31,8 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Float = %import_ref.20b +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_type_mismatch.carbon b/toolchain/check/testdata/return/fail_type_mismatch.carbon index c577b57810f6..f72638dde0cc 100644 --- a/toolchain/check/testdata/return/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/return/fail_type_mismatch.carbon @@ -30,8 +30,8 @@ fn Main() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_value_missing.carbon b/toolchain/check/testdata/return/fail_value_missing.carbon index 2873c7006bf2..01b963d087a3 100644 --- a/toolchain/check/testdata/return/fail_value_missing.carbon +++ b/toolchain/check/testdata/return/fail_value_missing.carbon @@ -29,7 +29,7 @@ fn Main() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // 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 c2b7aff6b468..7a547a33e792 100644 --- a/toolchain/check/testdata/return/fail_var_in_type.carbon +++ b/toolchain/check/testdata/return/fail_var_in_type.carbon @@ -26,7 +26,7 @@ fn Six() -> x { return 6; } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon b/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon index 8e316e16e54e..cedf1b1dd61a 100644 --- a/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon +++ b/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon @@ -73,24 +73,24 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.96f: type = generic_interface_type @ImplicitAs [template] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.96f = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.type.a1f: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self: %ImplicitAs.type.a1f = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.07f: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self: %ImplicitAs.type.07f = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %Convert.type.b11: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic] -// CHECK:STDOUT: %Convert.639: %Convert.type.b11 = struct_value () [symbolic] -// CHECK:STDOUT: %Convert.assoc_type.4d8: type = assoc_entity_type %ImplicitAs.type.a1f, %Convert.type.b11 [symbolic] -// CHECK:STDOUT: %assoc0.39c: %Convert.assoc_type.4d8 = assoc_entity element0, @ImplicitAs.%Convert.decl [symbolic] +// CHECK:STDOUT: %Convert.type.4cf: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic] +// CHECK:STDOUT: %Convert.147: %Convert.type.4cf = struct_value () [symbolic] +// CHECK:STDOUT: %Convert.assoc_type.154: type = assoc_entity_type %ImplicitAs.type.07f, %Convert.type.4cf [symbolic] +// CHECK:STDOUT: %assoc0.1f7: %Convert.assoc_type.154 = assoc_entity element0, @ImplicitAs.%Convert.decl [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [template] -// CHECK:STDOUT: %ImplicitAs.type.982: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] -// CHECK:STDOUT: %Convert.type.c1f: type = fn_type @Convert.1, @ImplicitAs(%i32.builtin) [template] -// CHECK:STDOUT: %Convert.338: %Convert.type.c1f = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.918: type = assoc_entity_type %ImplicitAs.type.982, %Convert.type.c1f [template] -// CHECK:STDOUT: %assoc0.e51: %Convert.assoc_type.918 = assoc_entity element0, @ImplicitAs.%Convert.decl [template] +// CHECK:STDOUT: %ImplicitAs.type.11a: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] +// CHECK:STDOUT: %Convert.type.752: type = fn_type @Convert.1, @ImplicitAs(%i32.builtin) [template] +// CHECK:STDOUT: %Convert.fcc: %Convert.type.752 = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.93b: type = assoc_entity_type %ImplicitAs.type.11a, %Convert.type.752 [template] +// CHECK:STDOUT: %assoc0.8ce: %Convert.assoc_type.93b = assoc_entity element0, @ImplicitAs.%Convert.decl [template] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.928: type = fn_type @Convert.2 [template] -// CHECK:STDOUT: %Convert.4e2: %Convert.type.928 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.a1f = facet_value Core.IntLiteral, %impl_witness [symbolic] +// CHECK:STDOUT: %Convert.type.c2a: type = fn_type @Convert.2 [template] +// CHECK:STDOUT: %Convert.40d: %Convert.type.c2a = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.07f = facet_value Core.IntLiteral, %impl_witness [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -140,7 +140,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc12_36.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32.builtin] // CHECK:STDOUT: %.loc12_36.2: type = converted %int.make_type_signed, %.loc12_36.1 [template = constants.%i32.builtin] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32.builtin)> [template = constants.%ImplicitAs.type.982] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32.builtin)> [template = constants.%ImplicitAs.type.11a] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Convert.decl) [template = constants.%impl_witness] // CHECK:STDOUT: } @@ -150,16 +150,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt.loc8_22.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_22.2 (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc8_22.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.a1f)] -// CHECK:STDOUT: %Self.2: %ImplicitAs.type.a1f = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @ImplicitAs(%T.loc8_22.2) [symbolic = %Convert.type (constants.%Convert.type.b11)] -// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.b11) = struct_value () [symbolic = %Convert (constants.%Convert.639)] -// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.a1f), @ImplicitAs.%Convert.type (%Convert.type.b11) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.4d8)] -// CHECK:STDOUT: %assoc0.loc9_32.2: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.4d8) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc9_32.2 (constants.%assoc0.39c)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc8_22.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] +// CHECK:STDOUT: %Self.2: %ImplicitAs.type.07f = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @ImplicitAs(%T.loc8_22.2) [symbolic = %Convert.type (constants.%Convert.type.4cf)] +// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.4cf) = struct_value () [symbolic = %Convert (constants.%Convert.147)] +// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f), @ImplicitAs.%Convert.type (%Convert.type.4cf) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.154)] +// CHECK:STDOUT: %assoc0.loc9_32.2: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.154) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc9_32.2 (constants.%assoc0.1f7)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.a1f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Convert.decl: @ImplicitAs.%Convert.type (%Convert.type.b11) = fn_decl @Convert.1 [symbolic = @ImplicitAs.%Convert (constants.%Convert.639)] { +// CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Convert.decl: @ImplicitAs.%Convert.type (%Convert.type.4cf) = fn_decl @Convert.1 [symbolic = @ImplicitAs.%Convert (constants.%Convert.147)] { // CHECK:STDOUT: %self.patt: @Convert.1.%Self.as_type.loc9_20.1 (%Self.as_type) = binding_pattern self // CHECK:STDOUT: %self.param_patt: @Convert.1.%Self.as_type.loc9_20.1 (%Self.as_type) = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: @Convert.1.%T (%T) = return_slot_pattern @@ -168,8 +168,8 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc8_22.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %self.param: @Convert.1.%Self.as_type.loc9_20.1 (%Self.as_type) = value_param runtime_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: @Convert.1.%ImplicitAs.type (%ImplicitAs.type.a1f) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @Convert.1.%ImplicitAs.type (%ImplicitAs.type.a1f) = name_ref Self, %.loc9_20.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc9_20.2: @Convert.1.%ImplicitAs.type (%ImplicitAs.type.07f) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @Convert.1.%ImplicitAs.type (%ImplicitAs.type.07f) = 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: } @@ -177,7 +177,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %return.param: ref @Convert.1.%T (%T) = out_param runtime_param1 // CHECK:STDOUT: %return: ref @Convert.1.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc9_32.1: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.4d8) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc9_32.2 (constants.%assoc0.39c)] +// CHECK:STDOUT: %assoc0.loc9_32.1: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.154) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc9_32.2 (constants.%assoc0.1f7)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -187,7 +187,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %.loc12_17.2 as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.928 = fn_decl @Convert.2 [template = constants.%Convert.4e2] { +// CHECK:STDOUT: %Convert.decl: %Convert.type.c2a = fn_decl @Convert.2 [template = constants.%Convert.40d] { // CHECK:STDOUT: %self.patt: Core.IntLiteral = binding_pattern self // CHECK:STDOUT: %self.param_patt: Core.IntLiteral = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %i32.builtin = return_slot_pattern @@ -213,10 +213,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%N.param_patt: Core.IntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.1(@ImplicitAs.%T.loc8_22.1: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.a1f)) { +// CHECK:STDOUT: generic fn @Convert.1(@ImplicitAs.%T.loc8_22.1: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.a1f)] -// CHECK:STDOUT: %Self: %ImplicitAs.type.a1f = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] +// CHECK:STDOUT: %Self: %ImplicitAs.type.07f = bind_symbolic_name 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: // CHECK:STDOUT: fn[%self.param_patt: @Convert.1.%Self.as_type.loc9_20.1 (%Self.as_type)]() -> @Convert.1.%T (%T); @@ -231,7 +231,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert.1(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a1f +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.07f // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc9_20.1 => constants.%Self.as_type // CHECK:STDOUT: } @@ -245,17 +245,17 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt.loc8_22.2 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.982 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.11a // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.c1f -// CHECK:STDOUT: %Convert => constants.%Convert.338 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.918 -// CHECK:STDOUT: %assoc0.loc9_32.2 => constants.%assoc0.e51 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.752 +// CHECK:STDOUT: %Convert => constants.%Convert.fcc +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.93b +// CHECK:STDOUT: %assoc0.loc9_32.2 => constants.%assoc0.8ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert.1(constants.%i32.builtin, constants.%ImplicitAs.facet) { // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.982 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.11a // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet // CHECK:STDOUT: %Self.as_type.loc9_20.1 => Core.IntLiteral // CHECK:STDOUT: } @@ -271,7 +271,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %N.patt: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.892: type = class_type @C, @C(%N) [symbolic] +// CHECK:STDOUT: %C.116: type = class_type @C, @C(%N) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %D: type = class_type @D [template] @@ -285,108 +285,108 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [template] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.d33: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.d62: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.608: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic] -// CHECK:STDOUT: %Convert.de6: %Convert.type.608 = struct_value () [symbolic] +// CHECK:STDOUT: %Convert.type.275: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic] +// CHECK:STDOUT: %Convert.42e: %Convert.type.275 = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %Convert.assoc_type.407: type = assoc_entity_type %ImplicitAs.type.d33, %Convert.type.608 [symbolic] -// CHECK:STDOUT: %assoc0.317cac.1: %Convert.assoc_type.407 = assoc_entity element0, imports.%import_ref.dbaf9d.1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.51b: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] -// CHECK:STDOUT: %Convert.type.2a0: type = fn_type @Convert.1, @ImplicitAs(%i32.builtin) [template] -// CHECK:STDOUT: %Convert.756: %Convert.type.2a0 = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.f84: type = assoc_entity_type %ImplicitAs.type.51b, %Convert.type.2a0 [template] -// CHECK:STDOUT: %assoc0.695: %Convert.assoc_type.f84 = assoc_entity element0, imports.%import_ref.dbaf9d.1 [template] -// CHECK:STDOUT: %assoc0.317cac.2: %Convert.assoc_type.407 = assoc_entity element0, imports.%import_ref.dbaf9d.2 [symbolic] -// CHECK:STDOUT: %impl_witness.25b: = impl_witness (imports.%import_ref.02a) [template] -// CHECK:STDOUT: %Convert.type.c8d: type = fn_type @Convert.2 [template] -// CHECK:STDOUT: %Convert.718: %Convert.type.c8d = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.59c: = bound_method %int_0.5c6, %Convert.718 [template] +// CHECK:STDOUT: %Convert.assoc_type.c0e: type = assoc_entity_type %ImplicitAs.type.d62, %Convert.type.275 [symbolic] +// CHECK:STDOUT: %assoc0.5048c6.1: %Convert.assoc_type.c0e = assoc_entity element0, imports.%import_ref.207961.1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.61e: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] +// CHECK:STDOUT: %Convert.type.059: type = fn_type @Convert.1, @ImplicitAs(%i32.builtin) [template] +// CHECK:STDOUT: %Convert.4d7: %Convert.type.059 = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.40f: type = assoc_entity_type %ImplicitAs.type.61e, %Convert.type.059 [template] +// CHECK:STDOUT: %assoc0.44d: %Convert.assoc_type.40f = assoc_entity element0, imports.%import_ref.207961.1 [template] +// CHECK:STDOUT: %assoc0.5048c6.2: %Convert.assoc_type.c0e = assoc_entity element0, imports.%import_ref.207961.2 [symbolic] +// CHECK:STDOUT: %impl_witness.39c7: = impl_witness (imports.%import_ref.f35) [template] +// CHECK:STDOUT: %Convert.type.49f: type = fn_type @Convert.2 [template] +// CHECK:STDOUT: %Convert.cb5: %Convert.type.49f = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.04a: = bound_method %int_0.5c6, %Convert.cb5 [template] // CHECK:STDOUT: %int_0.a54: %i32.builtin = int_value 0 [template] // CHECK:STDOUT: %D.val: %D = struct_value (%int_0.a54, %int_0.a54) [template] -// CHECK:STDOUT: %C.564: type = class_type @C, @C(%int_0.a54) [template] -// CHECK:STDOUT: %ImplicitAs.type.a26: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [template] -// CHECK:STDOUT: %Convert.type.85a: type = fn_type @Convert.1, @ImplicitAs(%D) [template] -// CHECK:STDOUT: %Convert.b4e: %Convert.type.85a = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.b3b: type = assoc_entity_type %ImplicitAs.type.a26, %Convert.type.85a [template] -// CHECK:STDOUT: %assoc0.794: %Convert.assoc_type.b3b = assoc_entity element0, imports.%import_ref.dbaf9d.1 [template] -// CHECK:STDOUT: %impl_witness.a18: = impl_witness (@impl.2.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.efe: type = fn_type @Convert.3 [template] -// CHECK:STDOUT: %Convert.b29: %Convert.type.efe = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.5d7: %ImplicitAs.type.d33 = facet_value %C.564, %impl_witness.a18 [symbolic] +// CHECK:STDOUT: %C.808: type = class_type @C, @C(%int_0.a54) [template] +// CHECK:STDOUT: %ImplicitAs.type.94e: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [template] +// CHECK:STDOUT: %Convert.type.010: type = fn_type @Convert.1, @ImplicitAs(%D) [template] +// CHECK:STDOUT: %Convert.d38: %Convert.type.010 = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.514: type = assoc_entity_type %ImplicitAs.type.94e, %Convert.type.010 [template] +// CHECK:STDOUT: %assoc0.bce: %Convert.assoc_type.514 = assoc_entity element0, imports.%import_ref.207961.1 [template] +// CHECK:STDOUT: %impl_witness.39cb: = impl_witness (@impl.2.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.fff: type = fn_type @Convert.3 [template] +// CHECK:STDOUT: %Convert.606: %Convert.type.fff = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.3d3: %ImplicitAs.type.d62 = facet_value %C.808, %impl_witness.39cb [symbolic] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.5fe: = bound_method %int_1.5b8, %Convert.718 [template] +// CHECK:STDOUT: %Convert.bound.92d: = bound_method %int_1.5b8, %Convert.cb5 [template] // CHECK:STDOUT: %int_1.f38: %i32.builtin = int_value 1 [template] -// CHECK:STDOUT: %C.cad: type = class_type @C, @C(%int_1.f38) [template] -// CHECK:STDOUT: %impl_witness.d26: = impl_witness (@impl.3.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.621: type = fn_type @Convert.4 [template] -// CHECK:STDOUT: %Convert.0d5: %Convert.type.621 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.4f9: %ImplicitAs.type.d33 = facet_value %C.cad, %impl_witness.d26 [symbolic] +// CHECK:STDOUT: %C.8be: type = class_type @C, @C(%int_1.f38) [template] +// CHECK:STDOUT: %impl_witness.ecb: = impl_witness (@impl.3.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.89f: type = fn_type @Convert.4 [template] +// CHECK:STDOUT: %Convert.689: %Convert.type.89f = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.18c: %ImplicitAs.type.d62 = facet_value %C.8be, %impl_witness.ecb [symbolic] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.a80: = bound_method %int_2.ecc, %Convert.718 [template] +// CHECK:STDOUT: %Convert.bound.1b9: = bound_method %int_2.ecc, %Convert.cb5 [template] // CHECK:STDOUT: %int_2.5a1: %i32.builtin = int_value 2 [template] -// CHECK:STDOUT: %C.75f: type = class_type @C, @C(%int_2.5a1) [template] -// CHECK:STDOUT: %impl_witness.de1: = impl_witness (@impl.4.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.dca: type = fn_type @Convert.5 [template] -// CHECK:STDOUT: %Convert.4ba: %Convert.type.dca = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.0b5: %ImplicitAs.type.d33 = facet_value %C.75f, %impl_witness.de1 [symbolic] +// CHECK:STDOUT: %C.c17: type = class_type @C, @C(%int_2.5a1) [template] +// CHECK:STDOUT: %impl_witness.8b8: = impl_witness (@impl.4.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.e90: type = fn_type @Convert.5 [template] +// CHECK:STDOUT: %Convert.ec9: %Convert.type.e90 = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.105: %ImplicitAs.type.d62 = facet_value %C.c17, %impl_witness.8b8 [symbolic] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %Convert.bound.227: = bound_method %int_3.1ba, %Convert.718 [template] +// CHECK:STDOUT: %Convert.bound.b6b: = bound_method %int_3.1ba, %Convert.cb5 [template] // CHECK:STDOUT: %int_3.a0f: %i32.builtin = int_value 3 [template] -// CHECK:STDOUT: %C.dea: type = class_type @C, @C(%int_3.a0f) [template] -// CHECK:STDOUT: %impl_witness.fa4: = impl_witness (@impl.5.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.381: type = fn_type @Convert.6 [template] -// CHECK:STDOUT: %Convert.b7d: %Convert.type.381 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.fa7: %ImplicitAs.type.d33 = facet_value %C.dea, %impl_witness.fa4 [symbolic] +// CHECK:STDOUT: %C.414: type = class_type @C, @C(%int_3.a0f) [template] +// CHECK:STDOUT: %impl_witness.1c0: = impl_witness (@impl.5.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.5db: type = fn_type @Convert.6 [template] +// CHECK:STDOUT: %Convert.193: %Convert.type.5db = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.97e: %ImplicitAs.type.d62 = facet_value %C.414, %impl_witness.1c0 [symbolic] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.503: = bound_method %int_4.0c1, %Convert.718 [template] +// CHECK:STDOUT: %Convert.bound.626: = bound_method %int_4.0c1, %Convert.cb5 [template] // CHECK:STDOUT: %int_4.4f1: %i32.builtin = int_value 4 [template] -// CHECK:STDOUT: %C.71c: type = class_type @C, @C(%int_4.4f1) [template] -// CHECK:STDOUT: %impl_witness.f49: = impl_witness (@impl.6.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.b2a: type = fn_type @Convert.7 [template] -// CHECK:STDOUT: %Convert.7ca: %Convert.type.b2a = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.061: %ImplicitAs.type.d33 = facet_value %C.71c, %impl_witness.f49 [symbolic] +// CHECK:STDOUT: %C.488: type = class_type @C, @C(%int_4.4f1) [template] +// CHECK:STDOUT: %impl_witness.7c9: = impl_witness (@impl.6.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.4e7: type = fn_type @Convert.7 [template] +// CHECK:STDOUT: %Convert.52a: %Convert.type.4e7 = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.045: %ImplicitAs.type.d62 = facet_value %C.488, %impl_witness.7c9 [symbolic] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %Convert.bound.2c9: = bound_method %int_5.64b, %Convert.718 [template] +// CHECK:STDOUT: %Convert.bound.910: = bound_method %int_5.64b, %Convert.cb5 [template] // CHECK:STDOUT: %int_5.967: %i32.builtin = int_value 5 [template] -// CHECK:STDOUT: %C.a07: type = class_type @C, @C(%int_5.967) [template] -// CHECK:STDOUT: %impl_witness.578: = impl_witness (@impl.7.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.915: type = fn_type @Convert.8 [template] -// CHECK:STDOUT: %Convert.d49: %Convert.type.915 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.6a1: %ImplicitAs.type.d33 = facet_value %C.a07, %impl_witness.578 [symbolic] +// CHECK:STDOUT: %C.3e2: type = class_type @C, @C(%int_5.967) [template] +// CHECK:STDOUT: %impl_witness.4b9: = impl_witness (@impl.7.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.658: type = fn_type @Convert.8 [template] +// CHECK:STDOUT: %Convert.9b6: %Convert.type.658 = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.36d: %ImplicitAs.type.d62 = facet_value %C.3e2, %impl_witness.4b9 [symbolic] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [template] -// CHECK:STDOUT: %Convert.bound.d98: = bound_method %int_6.462, %Convert.718 [template] +// CHECK:STDOUT: %Convert.bound.e3a: = bound_method %int_6.462, %Convert.cb5 [template] // CHECK:STDOUT: %int_6.ec5: %i32.builtin = int_value 6 [template] -// CHECK:STDOUT: %C.109: type = class_type @C, @C(%int_6.ec5) [template] -// CHECK:STDOUT: %impl_witness.a28: = impl_witness (@impl.8.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.25a: type = fn_type @Convert.9 [template] -// CHECK:STDOUT: %Convert.f02: %Convert.type.25a = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.5b2: %ImplicitAs.type.d33 = facet_value %C.109, %impl_witness.a28 [symbolic] +// CHECK:STDOUT: %C.78c: type = class_type @C, @C(%int_6.ec5) [template] +// CHECK:STDOUT: %impl_witness.4bf: = impl_witness (@impl.8.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.623: type = fn_type @Convert.9 [template] +// CHECK:STDOUT: %Convert.8c9: %Convert.type.623 = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.dc0: %ImplicitAs.type.d62 = facet_value %C.78c, %impl_witness.4bf [symbolic] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [template] -// CHECK:STDOUT: %Convert.bound.e27: = bound_method %int_7.29f, %Convert.718 [template] +// CHECK:STDOUT: %Convert.bound.06a: = bound_method %int_7.29f, %Convert.cb5 [template] // CHECK:STDOUT: %int_7.6ae: %i32.builtin = int_value 7 [template] -// CHECK:STDOUT: %C.d04: type = class_type @C, @C(%int_7.6ae) [template] -// CHECK:STDOUT: %impl_witness.ac7: = impl_witness (@impl.9.%Convert.decl) [template] -// CHECK:STDOUT: %Convert.type.9e5: type = fn_type @Convert.10 [template] -// CHECK:STDOUT: %Convert.f0d: %Convert.type.9e5 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.facet.21d: %ImplicitAs.type.d33 = facet_value %C.d04, %impl_witness.ac7 [symbolic] +// CHECK:STDOUT: %C.6aa: type = class_type @C, @C(%int_7.6ae) [template] +// CHECK:STDOUT: %impl_witness.74c: = impl_witness (@impl.9.%Convert.decl) [template] +// CHECK:STDOUT: %Convert.type.3f8: type = fn_type @Convert.10 [template] +// CHECK:STDOUT: %Convert.71a: %Convert.type.3f8 = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.facet.8ea: %ImplicitAs.type.d62 = facet_value %C.6aa, %impl_witness.74c [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.71a -// CHECK:STDOUT: .ImplicitAs = %import_ref.7f1 +// CHECK:STDOUT: .Int = %import_ref.3b9 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.7f1: %ImplicitAs.type.cc7 = import_ref Core//default, ImplicitAs, loaded [template = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %import_ref.01e = import_ref Core//default, inst49 [no loc], unloaded -// CHECK:STDOUT: %import_ref.86d: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.407) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.317cac.2)] -// CHECK:STDOUT: %import_ref.6c2: @ImplicitAs.%Convert.type (%Convert.type.608) = import_ref Core//default, Convert, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.de6)] -// CHECK:STDOUT: %import_ref.dbaf9d.1 = import_ref Core//default, loc9_32, unloaded -// CHECK:STDOUT: %import_ref.4ae: = import_ref Core//default, loc12_38, loaded [template = constants.%impl_witness.25b] -// CHECK:STDOUT: %import_ref.afb: type = import_ref Core//default, loc12_17, loaded [template = Core.IntLiteral] -// CHECK:STDOUT: %import_ref.d93: type = import_ref Core//default, loc12_36, loaded [template = constants.%ImplicitAs.type.51b] +// CHECK:STDOUT: %import_ref.d44: %ImplicitAs.type.cc7 = import_ref Core//default, ImplicitAs, loaded [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %import_ref.ff5 = import_ref Core//default, inst49 [no loc], unloaded +// CHECK:STDOUT: %import_ref.589: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.c0e) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.5048c6.2)] +// CHECK:STDOUT: %import_ref.582: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, Convert, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] +// CHECK:STDOUT: %import_ref.207961.1 = import_ref Core//default, loc9_32, unloaded +// CHECK:STDOUT: %import_ref.de9: = import_ref Core//default, loc12_38, loaded [template = constants.%impl_witness.39c7] +// CHECK:STDOUT: %import_ref.872: type = import_ref Core//default, loc12_17, loaded [template = Core.IntLiteral] +// CHECK:STDOUT: %import_ref.4d9: type = import_ref Core//default, loc12_36, loaded [template = constants.%ImplicitAs.type.61e] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -422,123 +422,123 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.2 [template] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.59c] +// CHECK:STDOUT: %impl.elem0: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.04a] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %Convert.bound(%int_0) [template = constants.%int_0.a54] // CHECK:STDOUT: %.loc10_9.1: %i32.builtin = value_of_initializer %int.convert_checked [template = constants.%int_0.a54] // CHECK:STDOUT: %.loc10_9.2: %i32.builtin = converted %int_0, %.loc10_9.1 [template = constants.%int_0.a54] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_0.a54) [template = constants.%C.564] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_0.a54) [template = constants.%C.808] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.7f1 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.a26] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.94e] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc10: = impl_witness (@impl.2.%Convert.decl) [template = constants.%impl_witness.a18] +// CHECK:STDOUT: %impl_witness.loc10: = impl_witness (@impl.2.%Convert.decl) [template = constants.%impl_witness.39cb] // CHECK:STDOUT: impl_decl @impl.3 [template] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.5fe] +// CHECK:STDOUT: %impl.elem0: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound.92d] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %Convert.bound(%int_1) [template = constants.%int_1.f38] // CHECK:STDOUT: %.loc11_9.1: %i32.builtin = value_of_initializer %int.convert_checked [template = constants.%int_1.f38] // CHECK:STDOUT: %.loc11_9.2: %i32.builtin = converted %int_1, %.loc11_9.1 [template = constants.%int_1.f38] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1.f38) [template = constants.%C.cad] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1.f38) [template = constants.%C.8be] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.7f1 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.a26] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.94e] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc11: = impl_witness (@impl.3.%Convert.decl) [template = constants.%impl_witness.d26] +// CHECK:STDOUT: %impl_witness.loc11: = impl_witness (@impl.3.%Convert.decl) [template = constants.%impl_witness.ecb] // CHECK:STDOUT: impl_decl @impl.4 [template] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.a80] +// CHECK:STDOUT: %impl.elem0: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound.1b9] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %Convert.bound(%int_2) [template = constants.%int_2.5a1] // CHECK:STDOUT: %.loc12_9.1: %i32.builtin = value_of_initializer %int.convert_checked [template = constants.%int_2.5a1] // CHECK:STDOUT: %.loc12_9.2: %i32.builtin = converted %int_2, %.loc12_9.1 [template = constants.%int_2.5a1] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_2.5a1) [template = constants.%C.75f] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_2.5a1) [template = constants.%C.c17] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.7f1 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.a26] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.94e] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc12: = impl_witness (@impl.4.%Convert.decl) [template = constants.%impl_witness.de1] +// CHECK:STDOUT: %impl_witness.loc12: = impl_witness (@impl.4.%Convert.decl) [template = constants.%impl_witness.8b8] // CHECK:STDOUT: impl_decl @impl.5 [template] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_3, %impl.elem0 [template = constants.%Convert.bound.227] +// CHECK:STDOUT: %impl.elem0: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_3, %impl.elem0 [template = constants.%Convert.bound.b6b] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %Convert.bound(%int_3) [template = constants.%int_3.a0f] // CHECK:STDOUT: %.loc13_9.1: %i32.builtin = value_of_initializer %int.convert_checked [template = constants.%int_3.a0f] // CHECK:STDOUT: %.loc13_9.2: %i32.builtin = converted %int_3, %.loc13_9.1 [template = constants.%int_3.a0f] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_3.a0f) [template = constants.%C.dea] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_3.a0f) [template = constants.%C.414] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.7f1 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.a26] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.94e] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (@impl.5.%Convert.decl) [template = constants.%impl_witness.fa4] +// CHECK:STDOUT: %impl_witness.loc13: = impl_witness (@impl.5.%Convert.decl) [template = constants.%impl_witness.1c0] // CHECK:STDOUT: impl_decl @impl.6 [template] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_4, %impl.elem0 [template = constants.%Convert.bound.503] +// CHECK:STDOUT: %impl.elem0: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_4, %impl.elem0 [template = constants.%Convert.bound.626] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %Convert.bound(%int_4) [template = constants.%int_4.4f1] // CHECK:STDOUT: %.loc14_9.1: %i32.builtin = value_of_initializer %int.convert_checked [template = constants.%int_4.4f1] // CHECK:STDOUT: %.loc14_9.2: %i32.builtin = converted %int_4, %.loc14_9.1 [template = constants.%int_4.4f1] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_4.4f1) [template = constants.%C.71c] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_4.4f1) [template = constants.%C.488] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.7f1 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.a26] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.94e] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc14: = impl_witness (@impl.6.%Convert.decl) [template = constants.%impl_witness.f49] +// CHECK:STDOUT: %impl_witness.loc14: = impl_witness (@impl.6.%Convert.decl) [template = constants.%impl_witness.7c9] // CHECK:STDOUT: impl_decl @impl.7 [template] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound.2c9] +// CHECK:STDOUT: %impl.elem0: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_5, %impl.elem0 [template = constants.%Convert.bound.910] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %Convert.bound(%int_5) [template = constants.%int_5.967] // CHECK:STDOUT: %.loc15_9.1: %i32.builtin = value_of_initializer %int.convert_checked [template = constants.%int_5.967] // CHECK:STDOUT: %.loc15_9.2: %i32.builtin = converted %int_5, %.loc15_9.1 [template = constants.%int_5.967] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_5.967) [template = constants.%C.a07] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_5.967) [template = constants.%C.3e2] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.7f1 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.a26] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.94e] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.7.%Convert.decl) [template = constants.%impl_witness.578] +// CHECK:STDOUT: %impl_witness.loc15: = impl_witness (@impl.7.%Convert.decl) [template = constants.%impl_witness.4b9] // CHECK:STDOUT: impl_decl @impl.8 [template] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] -// CHECK:STDOUT: %impl.elem0: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_6, %impl.elem0 [template = constants.%Convert.bound.d98] +// CHECK:STDOUT: %impl.elem0: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_6, %impl.elem0 [template = constants.%Convert.bound.e3a] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %Convert.bound(%int_6) [template = constants.%int_6.ec5] // CHECK:STDOUT: %.loc16_9.1: %i32.builtin = value_of_initializer %int.convert_checked [template = constants.%int_6.ec5] // CHECK:STDOUT: %.loc16_9.2: %i32.builtin = converted %int_6, %.loc16_9.1 [template = constants.%int_6.ec5] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_6.ec5) [template = constants.%C.109] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_6.ec5) [template = constants.%C.78c] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.7f1 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.a26] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.94e] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc16: = impl_witness (@impl.8.%Convert.decl) [template = constants.%impl_witness.a28] +// CHECK:STDOUT: %impl_witness.loc16: = impl_witness (@impl.8.%Convert.decl) [template = constants.%impl_witness.4bf] // CHECK:STDOUT: impl_decl @impl.9 [template] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [template = constants.%int_7.29f] -// CHECK:STDOUT: %impl.elem0: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_7, %impl.elem0 [template = constants.%Convert.bound.e27] +// CHECK:STDOUT: %impl.elem0: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_7, %impl.elem0 [template = constants.%Convert.bound.06a] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %Convert.bound(%int_7) [template = constants.%int_7.6ae] // CHECK:STDOUT: %.loc17_9.1: %i32.builtin = value_of_initializer %int.convert_checked [template = constants.%int_7.6ae] // CHECK:STDOUT: %.loc17_9.2: %i32.builtin = converted %int_7, %.loc17_9.1 [template = constants.%int_7.6ae] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_7.6ae) [template = constants.%C.d04] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_7.6ae) [template = constants.%C.6aa] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.7f1 [template = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%import_ref.d44 [template = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.a26] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [template = constants.%ImplicitAs.type.94e] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.9.%Convert.decl) [template = constants.%impl_witness.ac7] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (@impl.9.%Convert.decl) [template = constants.%impl_witness.74c] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @ImplicitAs(constants.%T: type) [from "core.carbon"] { @@ -546,37 +546,37 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d33)] -// CHECK:STDOUT: %Self: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic = %Convert.type (constants.%Convert.type.608)] -// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.608) = struct_value () [symbolic = %Convert (constants.%Convert.de6)] -// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d33), @ImplicitAs.%Convert.type (%Convert.type.608) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.407)] -// CHECK:STDOUT: %assoc0: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.407) = assoc_entity element0, imports.%import_ref.dbaf9d.1 [symbolic = %assoc0 (constants.%assoc0.317cac.1)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d62)] +// CHECK:STDOUT: %Self: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic = %Convert.type (constants.%Convert.type.275)] +// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.275) = struct_value () [symbolic = %Convert (constants.%Convert.42e)] +// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62), @ImplicitAs.%Convert.type (%Convert.type.275) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.c0e)] +// CHECK:STDOUT: %assoc0: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.c0e) = assoc_entity element0, imports.%import_ref.207961.1 [symbolic = %assoc0 (constants.%assoc0.5048c6.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.01e -// CHECK:STDOUT: .Convert = imports.%import_ref.86d -// CHECK:STDOUT: witness = (imports.%import_ref.6c2) +// CHECK:STDOUT: .Self = imports.%import_ref.ff5 +// CHECK:STDOUT: .Convert = imports.%import_ref.589 +// CHECK:STDOUT: witness = (imports.%import_ref.582) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.1: imports.%import_ref.afb as imports.%import_ref.d93 [from "core.carbon"] { +// CHECK:STDOUT: impl @impl.1: imports.%import_ref.872 as imports.%import_ref.4d9 [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.4ae +// CHECK:STDOUT: witness = imports.%import_ref.de9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.2: %C as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.efe = fn_decl @Convert.3 [template = constants.%Convert.b29] { -// CHECK:STDOUT: %self.patt: %C.564 = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.564 = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Convert.decl: %Convert.type.fff = fn_decl @Convert.3 [template = constants.%Convert.606] { +// CHECK:STDOUT: %self.patt: %C.808 = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.808 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %self.param: %C.564 = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.2.%C [template = constants.%C.564] -// CHECK:STDOUT: %self: %C.564 = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %C.808 = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.2.%C [template = constants.%C.808] +// CHECK:STDOUT: %self: %C.808 = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -587,16 +587,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.3: %C as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.621 = fn_decl @Convert.4 [template = constants.%Convert.0d5] { -// CHECK:STDOUT: %self.patt: %C.cad = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.cad = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Convert.decl: %Convert.type.89f = fn_decl @Convert.4 [template = constants.%Convert.689] { +// CHECK:STDOUT: %self.patt: %C.8be = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.8be = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %self.param: %C.cad = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.3.%C [template = constants.%C.cad] -// CHECK:STDOUT: %self: %C.cad = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %C.8be = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.3.%C [template = constants.%C.8be] +// CHECK:STDOUT: %self: %C.8be = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -607,16 +607,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.4: %C as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.dca = fn_decl @Convert.5 [template = constants.%Convert.4ba] { -// CHECK:STDOUT: %self.patt: %C.75f = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.75f = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Convert.decl: %Convert.type.e90 = fn_decl @Convert.5 [template = constants.%Convert.ec9] { +// CHECK:STDOUT: %self.patt: %C.c17 = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.c17 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %self.param: %C.75f = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.4.%C [template = constants.%C.75f] -// CHECK:STDOUT: %self: %C.75f = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %C.c17 = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.4.%C [template = constants.%C.c17] +// CHECK:STDOUT: %self: %C.c17 = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -627,16 +627,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.5: %C as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.381 = fn_decl @Convert.6 [template = constants.%Convert.b7d] { -// CHECK:STDOUT: %self.patt: %C.dea = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.dea = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Convert.decl: %Convert.type.5db = fn_decl @Convert.6 [template = constants.%Convert.193] { +// CHECK:STDOUT: %self.patt: %C.414 = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.414 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %self.param: %C.dea = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.5.%C [template = constants.%C.dea] -// CHECK:STDOUT: %self: %C.dea = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %C.414 = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.5.%C [template = constants.%C.414] +// CHECK:STDOUT: %self: %C.414 = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -647,16 +647,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.6: %C as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.b2a = fn_decl @Convert.7 [template = constants.%Convert.7ca] { -// CHECK:STDOUT: %self.patt: %C.71c = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.71c = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Convert.decl: %Convert.type.4e7 = fn_decl @Convert.7 [template = constants.%Convert.52a] { +// CHECK:STDOUT: %self.patt: %C.488 = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.488 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %self.param: %C.71c = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.6.%C [template = constants.%C.71c] -// CHECK:STDOUT: %self: %C.71c = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %C.488 = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.6.%C [template = constants.%C.488] +// CHECK:STDOUT: %self: %C.488 = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -667,16 +667,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.7: %C as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.915 = fn_decl @Convert.8 [template = constants.%Convert.d49] { -// CHECK:STDOUT: %self.patt: %C.a07 = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.a07 = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Convert.decl: %Convert.type.658 = fn_decl @Convert.8 [template = constants.%Convert.9b6] { +// CHECK:STDOUT: %self.patt: %C.3e2 = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.3e2 = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %self.param: %C.a07 = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.7.%C [template = constants.%C.a07] -// CHECK:STDOUT: %self: %C.a07 = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %C.3e2 = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.7.%C [template = constants.%C.3e2] +// CHECK:STDOUT: %self: %C.3e2 = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -687,16 +687,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.8: %C as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.25a = fn_decl @Convert.9 [template = constants.%Convert.f02] { -// CHECK:STDOUT: %self.patt: %C.109 = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.109 = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Convert.decl: %Convert.type.623 = fn_decl @Convert.9 [template = constants.%Convert.8c9] { +// CHECK:STDOUT: %self.patt: %C.78c = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.78c = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %self.param: %C.109 = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.8.%C [template = constants.%C.109] -// CHECK:STDOUT: %self: %C.109 = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %C.78c = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.8.%C [template = constants.%C.78c] +// CHECK:STDOUT: %self: %C.78c = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -707,16 +707,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.9: %C as %ImplicitAs.type { -// CHECK:STDOUT: %Convert.decl: %Convert.type.9e5 = fn_decl @Convert.10 [template = constants.%Convert.f0d] { -// CHECK:STDOUT: %self.patt: %C.d04 = binding_pattern self -// CHECK:STDOUT: %self.param_patt: %C.d04 = value_param_pattern %self.patt, runtime_param0 +// CHECK:STDOUT: %Convert.decl: %Convert.type.3f8 = fn_decl @Convert.10 [template = constants.%Convert.71a] { +// CHECK:STDOUT: %self.patt: %C.6aa = binding_pattern self +// CHECK:STDOUT: %self.param_patt: %C.6aa = value_param_pattern %self.patt, runtime_param0 // CHECK:STDOUT: %return.patt: %D = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [template = constants.%D] -// CHECK:STDOUT: %self.param: %C.d04 = value_param runtime_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.9.%C [template = constants.%C.d04] -// CHECK:STDOUT: %self: %C.d04 = bind_name self, %self.param +// CHECK:STDOUT: %self.param: %C.6aa = value_param runtime_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.9.%C [template = constants.%C.6aa] +// CHECK:STDOUT: %self: %C.6aa = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param runtime_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -736,7 +736,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.892 +// CHECK:STDOUT: .Self = constants.%C.116 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -760,14 +760,14 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_0.loc8_31: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_0.loc8_39: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc8_40.1: %struct_type.n.m.819 = struct_literal (%int_0.loc8_31, %int_0.loc8_39) -// CHECK:STDOUT: %impl.elem0.loc8_40.1: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc8_40.1: = bound_method %int_0.loc8_31, %impl.elem0.loc8_40.1 [template = constants.%Convert.bound.59c] +// CHECK:STDOUT: %impl.elem0.loc8_40.1: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc8_40.1: = bound_method %int_0.loc8_31, %impl.elem0.loc8_40.1 [template = constants.%Convert.bound.04a] // CHECK:STDOUT: %int.convert_checked.loc8_40.1: init %i32.builtin = call %Convert.bound.loc8_40.1(%int_0.loc8_31) [template = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_40.2: init %i32.builtin = converted %int_0.loc8_31, %int.convert_checked.loc8_40.1 [template = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_40.3: ref %i32.builtin = class_element_access %return, element0 // CHECK:STDOUT: %.loc8_40.4: init %i32.builtin = initialize_from %.loc8_40.2 to %.loc8_40.3 [template = constants.%int_0.a54] -// CHECK:STDOUT: %impl.elem0.loc8_40.2: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc8_40.2: = bound_method %int_0.loc8_39, %impl.elem0.loc8_40.2 [template = constants.%Convert.bound.59c] +// CHECK:STDOUT: %impl.elem0.loc8_40.2: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c7, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc8_40.2: = bound_method %int_0.loc8_39, %impl.elem0.loc8_40.2 [template = constants.%Convert.bound.04a] // CHECK:STDOUT: %int.convert_checked.loc8_40.2: init %i32.builtin = call %Convert.bound.loc8_40.2(%int_0.loc8_39) [template = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_40.5: init %i32.builtin = converted %int_0.loc8_39, %int.convert_checked.loc8_40.2 [template = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_40.6: ref %i32.builtin = class_element_access %return, element1 @@ -777,10 +777,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: return %.loc8_41 to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.1(constants.%T: type, constants.%Self: %ImplicitAs.type.d33) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @Convert.1(constants.%T: type, constants.%Self: %ImplicitAs.type.d62) [from "core.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d33)] -// CHECK:STDOUT: %Self: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d62)] +// CHECK:STDOUT: %Self: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: @Convert.1.%Self.as_type (%Self.as_type)]() -> @Convert.1.%T (%T); @@ -788,7 +788,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.2[%self.param_patt: Core.IntLiteral]() -> %i32.builtin = "int.convert_checked" [from "core.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.3[%self.param_patt: %C.564]() -> %return.param_patt: %D { +// CHECK:STDOUT: fn @Convert.3[%self.param_patt: %C.808]() -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] // CHECK:STDOUT: %.loc10: ref %D = splice_block %return {} @@ -796,7 +796,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.4[%self.param_patt: %C.cad]() -> %return.param_patt: %D { +// CHECK:STDOUT: fn @Convert.4[%self.param_patt: %C.8be]() -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] // CHECK:STDOUT: %.loc11: ref %D = splice_block %return {} @@ -804,7 +804,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.5[%self.param_patt: %C.75f]() -> %return.param_patt: %D { +// CHECK:STDOUT: fn @Convert.5[%self.param_patt: %C.c17]() -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] // CHECK:STDOUT: %.loc12: ref %D = splice_block %return {} @@ -812,7 +812,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.6[%self.param_patt: %C.dea]() -> %return.param_patt: %D { +// CHECK:STDOUT: fn @Convert.6[%self.param_patt: %C.414]() -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] // CHECK:STDOUT: %.loc13: ref %D = splice_block %return {} @@ -820,7 +820,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.7[%self.param_patt: %C.71c]() -> %return.param_patt: %D { +// CHECK:STDOUT: fn @Convert.7[%self.param_patt: %C.488]() -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] // CHECK:STDOUT: %.loc14: ref %D = splice_block %return {} @@ -828,7 +828,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.8[%self.param_patt: %C.a07]() -> %return.param_patt: %D { +// CHECK:STDOUT: fn @Convert.8[%self.param_patt: %C.3e2]() -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] // CHECK:STDOUT: %.loc15: ref %D = splice_block %return {} @@ -836,7 +836,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.9[%self.param_patt: %C.109]() -> %return.param_patt: %D { +// CHECK:STDOUT: fn @Convert.9[%self.param_patt: %C.78c]() -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] // CHECK:STDOUT: %.loc16: ref %D = splice_block %return {} @@ -844,7 +844,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.10[%self.param_patt: %C.d04]() -> %return.param_patt: %D { +// CHECK:STDOUT: fn @Convert.10[%self.param_patt: %C.6aa]() -> %return.param_patt: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make] // CHECK:STDOUT: %.loc17: ref %D = splice_block %return {} @@ -868,7 +868,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert.1(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.d33 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.d62 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: } @@ -878,12 +878,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.51b +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.61e // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.2a0 -// CHECK:STDOUT: %Convert => constants.%Convert.756 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.f84 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.695 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.059 +// CHECK:STDOUT: %Convert => constants.%Convert.4d7 +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.40f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.44d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_0.a54) { @@ -898,19 +898,19 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt => constants.%D // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.85a -// CHECK:STDOUT: %Convert => constants.%Convert.b4e -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.b3b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.794 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.010 +// CHECK:STDOUT: %Convert => constants.%Convert.d38 +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.514 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.bce // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.5d7) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.3d3) { // CHECK:STDOUT: %T => constants.%D -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.5d7 -// CHECK:STDOUT: %Self.as_type => constants.%C.564 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.3d3 +// CHECK:STDOUT: %Self.as_type => constants.%C.808 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_1.f38) { @@ -920,11 +920,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.4f9) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.18c) { // CHECK:STDOUT: %T => constants.%D -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.4f9 -// CHECK:STDOUT: %Self.as_type => constants.%C.cad +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.18c +// CHECK:STDOUT: %Self.as_type => constants.%C.8be // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_2.5a1) { @@ -934,11 +934,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.0b5) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.105) { // CHECK:STDOUT: %T => constants.%D -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.0b5 -// CHECK:STDOUT: %Self.as_type => constants.%C.75f +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.105 +// CHECK:STDOUT: %Self.as_type => constants.%C.c17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_3.a0f) { @@ -948,11 +948,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.fa7) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.97e) { // CHECK:STDOUT: %T => constants.%D -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.fa7 -// CHECK:STDOUT: %Self.as_type => constants.%C.dea +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.97e +// CHECK:STDOUT: %Self.as_type => constants.%C.414 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_4.4f1) { @@ -962,11 +962,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.061) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.045) { // CHECK:STDOUT: %T => constants.%D -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.061 -// CHECK:STDOUT: %Self.as_type => constants.%C.71c +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.045 +// CHECK:STDOUT: %Self.as_type => constants.%C.488 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_5.967) { @@ -976,11 +976,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.6a1) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.36d) { // CHECK:STDOUT: %T => constants.%D -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.6a1 -// CHECK:STDOUT: %Self.as_type => constants.%C.a07 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.36d +// CHECK:STDOUT: %Self.as_type => constants.%C.3e2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_6.ec5) { @@ -990,11 +990,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.5b2) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.dc0) { // CHECK:STDOUT: %T => constants.%D -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.5b2 -// CHECK:STDOUT: %Self.as_type => constants.%C.109 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.dc0 +// CHECK:STDOUT: %Self.as_type => constants.%C.78c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_7.6ae) { @@ -1004,11 +1004,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.21d) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.8ea) { // CHECK:STDOUT: %T => constants.%D -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.a26 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.21d -// CHECK:STDOUT: %Self.as_type => constants.%C.d04 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.8ea +// CHECK:STDOUT: %Self.as_type => constants.%C.6aa // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- user.carbon @@ -1032,147 +1032,147 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %N.patt: %i32.builtin = symbolic_binding_pattern N, 0 [symbolic] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.d33: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.d62: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.608: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic] -// CHECK:STDOUT: %Convert.de6: %Convert.type.608 = struct_value () [symbolic] +// CHECK:STDOUT: %Convert.type.275: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic] +// CHECK:STDOUT: %Convert.42e: %Convert.type.275 = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %Convert.assoc_type.407: type = assoc_entity_type %ImplicitAs.type.d33, %Convert.type.608 [symbolic] -// CHECK:STDOUT: %assoc0.317cac.1: %Convert.assoc_type.407 = assoc_entity element0, imports.%import_ref.dbaf9d.1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.51b: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] -// CHECK:STDOUT: %Convert.type.2a0: type = fn_type @Convert.1, @ImplicitAs(%i32.builtin) [template] -// CHECK:STDOUT: %Convert.756: %Convert.type.2a0 = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.f84: type = assoc_entity_type %ImplicitAs.type.51b, %Convert.type.2a0 [template] -// CHECK:STDOUT: %assoc0.695: %Convert.assoc_type.f84 = assoc_entity element0, imports.%import_ref.dbaf9d.1 [template] -// CHECK:STDOUT: %assoc0.317cac.2: %Convert.assoc_type.407 = assoc_entity element0, imports.%import_ref.dbaf9d.2 [symbolic] -// CHECK:STDOUT: %impl_witness.25b: = impl_witness (imports.%import_ref.02a) [template] -// CHECK:STDOUT: %Convert.type.c8d: type = fn_type @Convert.2 [template] -// CHECK:STDOUT: %Convert.718: %Convert.type.c8d = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.59c: = bound_method %int_0.5c6, %Convert.718 [template] +// CHECK:STDOUT: %Convert.assoc_type.c0e: type = assoc_entity_type %ImplicitAs.type.d62, %Convert.type.275 [symbolic] +// CHECK:STDOUT: %assoc0.5048c6.1: %Convert.assoc_type.c0e = assoc_entity element0, imports.%import_ref.207961.1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.61e: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [template] +// CHECK:STDOUT: %Convert.type.059: type = fn_type @Convert.1, @ImplicitAs(%i32.builtin) [template] +// CHECK:STDOUT: %Convert.4d7: %Convert.type.059 = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.40f: type = assoc_entity_type %ImplicitAs.type.61e, %Convert.type.059 [template] +// CHECK:STDOUT: %assoc0.44d: %Convert.assoc_type.40f = assoc_entity element0, imports.%import_ref.207961.1 [template] +// CHECK:STDOUT: %assoc0.5048c6.2: %Convert.assoc_type.c0e = assoc_entity element0, imports.%import_ref.207961.2 [symbolic] +// CHECK:STDOUT: %impl_witness.39c: = impl_witness (imports.%import_ref.f35) [template] +// CHECK:STDOUT: %Convert.type.49f: type = fn_type @Convert.2 [template] +// CHECK:STDOUT: %Convert.cb5: %Convert.type.49f = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.04a: = bound_method %int_0.5c6, %Convert.cb5 [template] // CHECK:STDOUT: %int_0.a54: %i32.builtin = int_value 0 [template] -// CHECK:STDOUT: %C.1a1: type = class_type @C, @C(%int_0.a54) [template] -// CHECK:STDOUT: %C.val.b00: %C.1a1 = struct_value () [template] -// CHECK:STDOUT: %ImplicitAs.type.2fd: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [template] -// CHECK:STDOUT: %Convert.type.c19: type = fn_type @Convert.1, @ImplicitAs(%D) [template] -// CHECK:STDOUT: %Convert.2c0: %Convert.type.c19 = struct_value () [template] -// CHECK:STDOUT: %Convert.assoc_type.0de: type = assoc_entity_type %ImplicitAs.type.2fd, %Convert.type.c19 [template] -// CHECK:STDOUT: %assoc0.090: %Convert.assoc_type.0de = assoc_entity element0, imports.%import_ref.dbaf9d.1 [template] +// CHECK:STDOUT: %C.76d: type = class_type @C, @C(%int_0.a54) [template] +// CHECK:STDOUT: %C.val.3c3: %C.76d = struct_value () [template] +// CHECK:STDOUT: %ImplicitAs.type.5f9: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [template] +// CHECK:STDOUT: %Convert.type.334: type = fn_type @Convert.1, @ImplicitAs(%D) [template] +// CHECK:STDOUT: %Convert.87c: %Convert.type.334 = struct_value () [template] +// CHECK:STDOUT: %Convert.assoc_type.f99: type = assoc_entity_type %ImplicitAs.type.5f9, %Convert.type.334 [template] +// CHECK:STDOUT: %assoc0.4b2: %Convert.assoc_type.f99 = assoc_entity element0, imports.%import_ref.207961.1 [template] // CHECK:STDOUT: %int_1.f38: %i32.builtin = int_value 1 [template] -// CHECK:STDOUT: %C.b1b: type = class_type @C, @C(%int_1.f38) [template] +// CHECK:STDOUT: %C.012: type = class_type @C, @C(%int_1.f38) [template] // CHECK:STDOUT: %int_2.5a1: %i32.builtin = int_value 2 [template] -// CHECK:STDOUT: %C.1f5: type = class_type @C, @C(%int_2.5a1) [template] +// CHECK:STDOUT: %C.3e6: type = class_type @C, @C(%int_2.5a1) [template] // CHECK:STDOUT: %int_3.a0f: %i32.builtin = int_value 3 [template] -// CHECK:STDOUT: %C.93c: type = class_type @C, @C(%int_3.a0f) [template] +// CHECK:STDOUT: %C.4d9: type = class_type @C, @C(%int_3.a0f) [template] // CHECK:STDOUT: %int_4.4f1: %i32.builtin = int_value 4 [template] -// CHECK:STDOUT: %C.305: type = class_type @C, @C(%int_4.4f1) [template] +// CHECK:STDOUT: %C.a67: type = class_type @C, @C(%int_4.4f1) [template] // CHECK:STDOUT: %int_5.967: %i32.builtin = int_value 5 [template] -// CHECK:STDOUT: %C.df3: type = class_type @C, @C(%int_5.967) [template] +// CHECK:STDOUT: %C.65c: type = class_type @C, @C(%int_5.967) [template] // CHECK:STDOUT: %int_6.ec5: %i32.builtin = int_value 6 [template] -// CHECK:STDOUT: %C.9d8: type = class_type @C, @C(%int_6.ec5) [template] +// CHECK:STDOUT: %C.898: type = class_type @C, @C(%int_6.ec5) [template] // CHECK:STDOUT: %int_7.6ae: %i32.builtin = int_value 7 [template] -// CHECK:STDOUT: %C.7a2: type = class_type @C, @C(%int_7.6ae) [template] -// CHECK:STDOUT: %impl_witness.da0: = impl_witness (imports.%import_ref.5e1) [template] -// CHECK:STDOUT: %Convert.type.a92: type = fn_type @Convert.3 [template] -// CHECK:STDOUT: %Convert.a61: %Convert.type.a92 = struct_value () [template] +// CHECK:STDOUT: %C.f0a: type = class_type @C, @C(%int_7.6ae) [template] +// CHECK:STDOUT: %impl_witness.368: = impl_witness (imports.%import_ref.5f3) [template] +// CHECK:STDOUT: %Convert.type.c72: type = fn_type @Convert.3 [template] +// CHECK:STDOUT: %Convert.4f5: %Convert.type.c72 = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.5fe: = bound_method %int_1.5b8, %Convert.718 [template] -// CHECK:STDOUT: %C.val.732: %C.b1b = struct_value () [template] -// CHECK:STDOUT: %impl_witness.9b6: = impl_witness (imports.%import_ref.931) [template] -// CHECK:STDOUT: %Convert.type.328: type = fn_type @Convert.4 [template] -// CHECK:STDOUT: %Convert.f02: %Convert.type.328 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.92d: = bound_method %int_1.5b8, %Convert.cb5 [template] +// CHECK:STDOUT: %C.val.172: %C.012 = struct_value () [template] +// CHECK:STDOUT: %impl_witness.29f: = impl_witness (imports.%import_ref.4da) [template] +// CHECK:STDOUT: %Convert.type.d88: type = fn_type @Convert.4 [template] +// CHECK:STDOUT: %Convert.ecc: %Convert.type.d88 = struct_value () [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.a80: = bound_method %int_2.ecc, %Convert.718 [template] -// CHECK:STDOUT: %C.val.3b9: %C.1f5 = struct_value () [template] -// CHECK:STDOUT: %impl_witness.ccf: = impl_witness (imports.%import_ref.4a0) [template] -// CHECK:STDOUT: %Convert.type.a2e: type = fn_type @Convert.5 [template] -// CHECK:STDOUT: %Convert.216: %Convert.type.a2e = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.1b9: = bound_method %int_2.ecc, %Convert.cb5 [template] +// CHECK:STDOUT: %C.val.418: %C.3e6 = struct_value () [template] +// CHECK:STDOUT: %impl_witness.3ac: = impl_witness (imports.%import_ref.ebf) [template] +// CHECK:STDOUT: %Convert.type.c17: type = fn_type @Convert.5 [template] +// CHECK:STDOUT: %Convert.c2b: %Convert.type.c17 = struct_value () [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %Convert.bound.227: = bound_method %int_3.1ba, %Convert.718 [template] -// CHECK:STDOUT: %C.val.887: %C.93c = struct_value () [template] -// CHECK:STDOUT: %impl_witness.b44: = impl_witness (imports.%import_ref.d4a) [template] -// CHECK:STDOUT: %Convert.type.880: type = fn_type @Convert.6 [template] -// CHECK:STDOUT: %Convert.b88: %Convert.type.880 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.b6b: = bound_method %int_3.1ba, %Convert.cb5 [template] +// CHECK:STDOUT: %C.val.bba: %C.4d9 = struct_value () [template] +// CHECK:STDOUT: %impl_witness.b40: = impl_witness (imports.%import_ref.f13) [template] +// CHECK:STDOUT: %Convert.type.70f: type = fn_type @Convert.6 [template] +// CHECK:STDOUT: %Convert.2b5: %Convert.type.70f = struct_value () [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.503: = bound_method %int_4.0c1, %Convert.718 [template] -// CHECK:STDOUT: %C.val.7a5: %C.305 = struct_value () [template] -// CHECK:STDOUT: %impl_witness.9c7: = impl_witness (imports.%import_ref.d26) [template] -// CHECK:STDOUT: %Convert.type.49d: type = fn_type @Convert.7 [template] -// CHECK:STDOUT: %Convert.7a6: %Convert.type.49d = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.626: = bound_method %int_4.0c1, %Convert.cb5 [template] +// CHECK:STDOUT: %C.val.4b6: %C.a67 = struct_value () [template] +// CHECK:STDOUT: %impl_witness.20f: = impl_witness (imports.%import_ref.97a) [template] +// CHECK:STDOUT: %Convert.type.782: type = fn_type @Convert.7 [template] +// CHECK:STDOUT: %Convert.625: %Convert.type.782 = struct_value () [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] -// CHECK:STDOUT: %Convert.bound.2c9: = bound_method %int_5.64b, %Convert.718 [template] -// CHECK:STDOUT: %C.val.313: %C.df3 = struct_value () [template] -// CHECK:STDOUT: %impl_witness.6ed: = impl_witness (imports.%import_ref.bdf) [template] -// CHECK:STDOUT: %Convert.type.c08: type = fn_type @Convert.8 [template] -// CHECK:STDOUT: %Convert.d06: %Convert.type.c08 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.910: = bound_method %int_5.64b, %Convert.cb5 [template] +// CHECK:STDOUT: %C.val.75e: %C.65c = struct_value () [template] +// CHECK:STDOUT: %impl_witness.9b3: = impl_witness (imports.%import_ref.e04) [template] +// CHECK:STDOUT: %Convert.type.0e6: type = fn_type @Convert.8 [template] +// CHECK:STDOUT: %Convert.73d: %Convert.type.0e6 = struct_value () [template] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [template] -// CHECK:STDOUT: %Convert.bound.d98: = bound_method %int_6.462, %Convert.718 [template] -// CHECK:STDOUT: %C.val.311: %C.9d8 = struct_value () [template] -// CHECK:STDOUT: %impl_witness.8c2: = impl_witness (imports.%import_ref.c09) [template] -// CHECK:STDOUT: %Convert.type.f09: type = fn_type @Convert.9 [template] -// CHECK:STDOUT: %Convert.998: %Convert.type.f09 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.e3a: = bound_method %int_6.462, %Convert.cb5 [template] +// CHECK:STDOUT: %C.val.02a: %C.898 = struct_value () [template] +// CHECK:STDOUT: %impl_witness.b5b: = impl_witness (imports.%import_ref.6aa) [template] +// CHECK:STDOUT: %Convert.type.9e9: type = fn_type @Convert.9 [template] +// CHECK:STDOUT: %Convert.e8e: %Convert.type.9e9 = struct_value () [template] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [template] -// CHECK:STDOUT: %Convert.bound.e27: = bound_method %int_7.29f, %Convert.718 [template] -// CHECK:STDOUT: %C.val.cdc: %C.7a2 = struct_value () [template] -// CHECK:STDOUT: %impl_witness.aef: = impl_witness (imports.%import_ref.057) [template] -// CHECK:STDOUT: %Convert.type.181: type = fn_type @Convert.10 [template] -// CHECK:STDOUT: %Convert.5ef: %Convert.type.181 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.06a: = bound_method %int_7.29f, %Convert.cb5 [template] +// CHECK:STDOUT: %C.val.654: %C.f0a = struct_value () [template] +// CHECK:STDOUT: %impl_witness.dfb: = impl_witness (imports.%import_ref.243) [template] +// CHECK:STDOUT: %Convert.type.fc1: type = fn_type @Convert.10 [template] +// CHECK:STDOUT: %Convert.430: %Convert.type.fc1 = struct_value () [template] // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %P: = namespace file.%P.import, [template] { -// CHECK:STDOUT: .D = %import_ref.275 -// CHECK:STDOUT: .C = %import_ref.867 -// CHECK:STDOUT: .Make = %import_ref.30b +// CHECK:STDOUT: .D = %import_ref.b0a +// CHECK:STDOUT: .C = %import_ref.f9e +// CHECK:STDOUT: .Make = %import_ref.981 // CHECK:STDOUT: import P//library // CHECK:STDOUT: } // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.71a -// CHECK:STDOUT: .ImplicitAs = %import_ref.7f1 +// CHECK:STDOUT: .Int = %import_ref.3b9 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.275: type = import_ref P//library, D, loaded [template = constants.%D] +// CHECK:STDOUT: %import_ref.b0a: type = import_ref P//library, D, loaded [template = constants.%D] // CHECK:STDOUT: %import_ref.7e5: = import_ref P//library, loc7_35, loaded [template = constants.%complete_type.682] // CHECK:STDOUT: %import_ref.cab = import_ref P//library, inst47 [no loc], unloaded // CHECK:STDOUT: %import_ref.a99 = import_ref P//library, loc7_16, unloaded // CHECK:STDOUT: %import_ref.9d2 = import_ref P//library, loc7_28, unloaded -// CHECK:STDOUT: %import_ref.867: %C.type = import_ref P//library, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.f9e: %C.type = import_ref P//library, C, loaded [template = constants.%C.generic] // CHECK:STDOUT: %import_ref.8f2: = import_ref P//library, loc6_19, loaded [template = constants.%complete_type.357] -// CHECK:STDOUT: %import_ref.adc = import_ref P//library, inst42 [no loc], unloaded -// CHECK:STDOUT: %import_ref.01e = import_ref Core//default, inst49 [no loc], unloaded -// CHECK:STDOUT: %import_ref.86d: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.407) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.317cac.2)] -// CHECK:STDOUT: %import_ref.038 = import_ref Core//default, Convert, unloaded -// CHECK:STDOUT: %import_ref.dbaf9d.1 = import_ref Core//default, loc9_32, unloaded -// CHECK:STDOUT: %import_ref.4ae: = import_ref Core//default, loc12_38, loaded [template = constants.%impl_witness.25b] -// CHECK:STDOUT: %import_ref.afb: type = import_ref Core//default, loc12_17, loaded [template = Core.IntLiteral] -// CHECK:STDOUT: %import_ref.d93: type = import_ref Core//default, loc12_36, loaded [template = constants.%ImplicitAs.type.51b] -// CHECK:STDOUT: %import_ref.8fe: = import_ref P//library, loc10_33, loaded [template = constants.%impl_witness.da0] -// CHECK:STDOUT: %import_ref.d9f: type = import_ref P//library, loc10_9, loaded [template = constants.%C.1a1] -// CHECK:STDOUT: %import_ref.262642.1: type = import_ref P//library, loc10_31, loaded [template = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %import_ref.1fd: = import_ref P//library, loc11_33, loaded [template = constants.%impl_witness.9b6] -// CHECK:STDOUT: %import_ref.7bf: type = import_ref P//library, loc11_9, loaded [template = constants.%C.b1b] -// CHECK:STDOUT: %import_ref.262642.2: type = import_ref P//library, loc11_31, loaded [template = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %import_ref.8e3: = import_ref P//library, loc12_33, loaded [template = constants.%impl_witness.ccf] -// CHECK:STDOUT: %import_ref.bc4: type = import_ref P//library, loc12_9, loaded [template = constants.%C.1f5] -// CHECK:STDOUT: %import_ref.262642.3: type = import_ref P//library, loc12_31, loaded [template = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %import_ref.318: = import_ref P//library, loc13_33, loaded [template = constants.%impl_witness.b44] -// CHECK:STDOUT: %import_ref.666: type = import_ref P//library, loc13_9, loaded [template = constants.%C.93c] -// CHECK:STDOUT: %import_ref.262642.4: type = import_ref P//library, loc13_31, loaded [template = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %import_ref.4fb: = import_ref P//library, loc14_33, loaded [template = constants.%impl_witness.9c7] -// CHECK:STDOUT: %import_ref.229: type = import_ref P//library, loc14_9, loaded [template = constants.%C.305] -// CHECK:STDOUT: %import_ref.262642.5: type = import_ref P//library, loc14_31, loaded [template = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %import_ref.0f5: = import_ref P//library, loc15_33, loaded [template = constants.%impl_witness.6ed] -// CHECK:STDOUT: %import_ref.7fd: type = import_ref P//library, loc15_9, loaded [template = constants.%C.df3] -// CHECK:STDOUT: %import_ref.262642.6: type = import_ref P//library, loc15_31, loaded [template = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %import_ref.044: = import_ref P//library, loc16_33, loaded [template = constants.%impl_witness.8c2] -// CHECK:STDOUT: %import_ref.83b: type = import_ref P//library, loc16_9, loaded [template = constants.%C.9d8] -// CHECK:STDOUT: %import_ref.262642.7: type = import_ref P//library, loc16_31, loaded [template = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %import_ref.f4b: = import_ref P//library, loc17_33, loaded [template = constants.%impl_witness.aef] -// CHECK:STDOUT: %import_ref.79f: type = import_ref P//library, loc17_9, loaded [template = constants.%C.7a2] -// CHECK:STDOUT: %import_ref.262642.8: type = import_ref P//library, loc17_31, loaded [template = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %import_ref.30b: %Make.type = import_ref P//library, Make, loaded [template = constants.%Make] +// CHECK:STDOUT: %import_ref.d9b = import_ref P//library, inst42 [no loc], unloaded +// CHECK:STDOUT: %import_ref.ff5 = import_ref Core//default, inst49 [no loc], unloaded +// CHECK:STDOUT: %import_ref.589: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.c0e) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.5048c6.2)] +// CHECK:STDOUT: %import_ref.e69 = import_ref Core//default, Convert, unloaded +// CHECK:STDOUT: %import_ref.207961.1 = import_ref Core//default, loc9_32, unloaded +// CHECK:STDOUT: %import_ref.de9: = import_ref Core//default, loc12_38, loaded [template = constants.%impl_witness.39c] +// CHECK:STDOUT: %import_ref.872: type = import_ref Core//default, loc12_17, loaded [template = Core.IntLiteral] +// CHECK:STDOUT: %import_ref.4d9: type = import_ref Core//default, loc12_36, loaded [template = constants.%ImplicitAs.type.61e] +// CHECK:STDOUT: %import_ref.316: = import_ref P//library, loc10_33, loaded [template = constants.%impl_witness.368] +// CHECK:STDOUT: %import_ref.624: type = import_ref P//library, loc10_9, loaded [template = constants.%C.76d] +// CHECK:STDOUT: %import_ref.b769fa.1: type = import_ref P//library, loc10_31, loaded [template = constants.%ImplicitAs.type.5f9] +// CHECK:STDOUT: %import_ref.776: = import_ref P//library, loc11_33, loaded [template = constants.%impl_witness.29f] +// CHECK:STDOUT: %import_ref.8ff: type = import_ref P//library, loc11_9, loaded [template = constants.%C.012] +// CHECK:STDOUT: %import_ref.b769fa.2: type = import_ref P//library, loc11_31, loaded [template = constants.%ImplicitAs.type.5f9] +// CHECK:STDOUT: %import_ref.848: = import_ref P//library, loc12_33, loaded [template = constants.%impl_witness.3ac] +// CHECK:STDOUT: %import_ref.f4d: type = import_ref P//library, loc12_9, loaded [template = constants.%C.3e6] +// CHECK:STDOUT: %import_ref.b769fa.3: type = import_ref P//library, loc12_31, loaded [template = constants.%ImplicitAs.type.5f9] +// CHECK:STDOUT: %import_ref.036: = import_ref P//library, loc13_33, loaded [template = constants.%impl_witness.b40] +// CHECK:STDOUT: %import_ref.dd2: type = import_ref P//library, loc13_9, loaded [template = constants.%C.4d9] +// CHECK:STDOUT: %import_ref.b769fa.4: type = import_ref P//library, loc13_31, loaded [template = constants.%ImplicitAs.type.5f9] +// CHECK:STDOUT: %import_ref.e33: = import_ref P//library, loc14_33, loaded [template = constants.%impl_witness.20f] +// CHECK:STDOUT: %import_ref.2c7: type = import_ref P//library, loc14_9, loaded [template = constants.%C.a67] +// CHECK:STDOUT: %import_ref.b769fa.5: type = import_ref P//library, loc14_31, loaded [template = constants.%ImplicitAs.type.5f9] +// CHECK:STDOUT: %import_ref.1aa: = import_ref P//library, loc15_33, loaded [template = constants.%impl_witness.9b3] +// CHECK:STDOUT: %import_ref.759: type = import_ref P//library, loc15_9, loaded [template = constants.%C.65c] +// CHECK:STDOUT: %import_ref.b769fa.6: type = import_ref P//library, loc15_31, loaded [template = constants.%ImplicitAs.type.5f9] +// CHECK:STDOUT: %import_ref.058: = import_ref P//library, loc16_33, loaded [template = constants.%impl_witness.b5b] +// CHECK:STDOUT: %import_ref.56e: type = import_ref P//library, loc16_9, loaded [template = constants.%C.898] +// CHECK:STDOUT: %import_ref.b769fa.7: type = import_ref P//library, loc16_31, loaded [template = constants.%ImplicitAs.type.5f9] +// CHECK:STDOUT: %import_ref.d6f: = import_ref P//library, loc17_33, loaded [template = constants.%impl_witness.dfb] +// CHECK:STDOUT: %import_ref.8ba: type = import_ref P//library, loc17_9, loaded [template = constants.%C.f0a] +// CHECK:STDOUT: %import_ref.b769fa.8: type = import_ref P//library, loc17_31, loaded [template = constants.%ImplicitAs.type.5f9] +// CHECK:STDOUT: %import_ref.981: %Make.type = import_ref P//library, Make, loaded [template = constants.%Make] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1190,7 +1190,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %return.param_patt: %D = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %P.ref.loc7: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.275 [template = constants.%D] +// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.b0a [template = constants.%D] // CHECK:STDOUT: %n.param: %i32.builtin = value_param runtime_param0 // CHECK:STDOUT: %.loc7_10.1: type = splice_block %.loc7_10.3 [template = constants.%i32.builtin] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] @@ -1209,64 +1209,64 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d33)] -// CHECK:STDOUT: %Self: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic = %Convert.type (constants.%Convert.type.608)] -// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.608) = struct_value () [symbolic = %Convert (constants.%Convert.de6)] -// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d33), @ImplicitAs.%Convert.type (%Convert.type.608) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.407)] -// CHECK:STDOUT: %assoc0: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.407) = assoc_entity element0, imports.%import_ref.dbaf9d.1 [symbolic = %assoc0 (constants.%assoc0.317cac.1)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d62)] +// CHECK:STDOUT: %Self: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.1, @ImplicitAs(%T) [symbolic = %Convert.type (constants.%Convert.type.275)] +// CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.275) = struct_value () [symbolic = %Convert (constants.%Convert.42e)] +// CHECK:STDOUT: %Convert.assoc_type: type = assoc_entity_type @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62), @ImplicitAs.%Convert.type (%Convert.type.275) [symbolic = %Convert.assoc_type (constants.%Convert.assoc_type.c0e)] +// CHECK:STDOUT: %assoc0: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.c0e) = assoc_entity element0, imports.%import_ref.207961.1 [symbolic = %assoc0 (constants.%assoc0.5048c6.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.01e -// CHECK:STDOUT: .Convert = imports.%import_ref.86d -// CHECK:STDOUT: witness = (imports.%import_ref.038) +// CHECK:STDOUT: .Self = imports.%import_ref.ff5 +// CHECK:STDOUT: .Convert = imports.%import_ref.589 +// CHECK:STDOUT: witness = (imports.%import_ref.e69) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.1: imports.%import_ref.afb as imports.%import_ref.d93 [from "core.carbon"] { +// CHECK:STDOUT: impl @impl.1: imports.%import_ref.872 as imports.%import_ref.4d9 [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.4ae +// CHECK:STDOUT: witness = imports.%import_ref.de9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.2: imports.%import_ref.d9f as imports.%import_ref.262642.1 [from "library.carbon"] { +// CHECK:STDOUT: impl @impl.2: imports.%import_ref.624 as imports.%import_ref.b769fa.1 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.8fe +// CHECK:STDOUT: witness = imports.%import_ref.316 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.3: imports.%import_ref.7bf as imports.%import_ref.262642.2 [from "library.carbon"] { +// CHECK:STDOUT: impl @impl.3: imports.%import_ref.8ff as imports.%import_ref.b769fa.2 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.1fd +// CHECK:STDOUT: witness = imports.%import_ref.776 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.4: imports.%import_ref.bc4 as imports.%import_ref.262642.3 [from "library.carbon"] { +// CHECK:STDOUT: impl @impl.4: imports.%import_ref.f4d as imports.%import_ref.b769fa.3 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.8e3 +// CHECK:STDOUT: witness = imports.%import_ref.848 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.5: imports.%import_ref.666 as imports.%import_ref.262642.4 [from "library.carbon"] { +// CHECK:STDOUT: impl @impl.5: imports.%import_ref.dd2 as imports.%import_ref.b769fa.4 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.318 +// CHECK:STDOUT: witness = imports.%import_ref.036 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.6: imports.%import_ref.229 as imports.%import_ref.262642.5 [from "library.carbon"] { +// CHECK:STDOUT: impl @impl.6: imports.%import_ref.2c7 as imports.%import_ref.b769fa.5 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.4fb +// CHECK:STDOUT: witness = imports.%import_ref.e33 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.7: imports.%import_ref.7fd as imports.%import_ref.262642.6 [from "library.carbon"] { +// CHECK:STDOUT: impl @impl.7: imports.%import_ref.759 as imports.%import_ref.b769fa.6 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.0f5 +// CHECK:STDOUT: witness = imports.%import_ref.1aa // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.8: imports.%import_ref.83b as imports.%import_ref.262642.7 [from "library.carbon"] { +// CHECK:STDOUT: impl @impl.8: imports.%import_ref.56e as imports.%import_ref.b769fa.7 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.044 +// CHECK:STDOUT: witness = imports.%import_ref.058 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.9: imports.%import_ref.79f as imports.%import_ref.262642.8 [from "library.carbon"] { +// CHECK:STDOUT: impl @impl.9: imports.%import_ref.8ba as imports.%import_ref.b769fa.8 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%import_ref.f4b +// CHECK:STDOUT: witness = imports.%import_ref.d6f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "library.carbon"] { @@ -1285,7 +1285,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.adc +// CHECK:STDOUT: .Self = imports.%import_ref.d9b // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1300,22 +1300,22 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !if.then.loc8: // CHECK:STDOUT: %.loc8_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %P.ref.loc8: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %C.ref.loc8: %C.type = name_ref C, imports.%import_ref.867 [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref.loc8: %C.type = name_ref C, imports.%import_ref.f9e [template = constants.%C.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc8_34: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc8_34: = bound_method %int_0, %impl.elem0.loc8_34 [template = constants.%Convert.bound.59c] +// CHECK:STDOUT: %impl.elem0.loc8_34: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc8_34: = bound_method %int_0, %impl.elem0.loc8_34 [template = constants.%Convert.bound.04a] // CHECK:STDOUT: %int.convert_checked.loc8: init %i32.builtin = call %Convert.bound.loc8_34(%int_0) [template = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc8 [template = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_34.2: %i32.builtin = converted %int_0, %.loc8_34.1 [template = constants.%int_0.a54] -// CHECK:STDOUT: %C.loc8: type = class_type @C, @C(constants.%int_0.a54) [template = constants.%C.1a1] -// CHECK:STDOUT: %.loc8_24.2: ref %C.1a1 = temporary_storage -// CHECK:STDOUT: %.loc8_24.3: init %C.1a1 = class_init (), %.loc8_24.2 [template = constants.%C.val.b00] -// CHECK:STDOUT: %.loc8_24.4: ref %C.1a1 = temporary %.loc8_24.2, %.loc8_24.3 -// CHECK:STDOUT: %.loc8_26.1: ref %C.1a1 = converted %.loc8_24.1, %.loc8_24.4 -// CHECK:STDOUT: %impl.elem0.loc8_35: %Convert.type.c19 = impl_witness_access constants.%impl_witness.da0, element0 [template = constants.%Convert.a61] +// CHECK:STDOUT: %C.loc8: type = class_type @C, @C(constants.%int_0.a54) [template = constants.%C.76d] +// CHECK:STDOUT: %.loc8_24.2: ref %C.76d = temporary_storage +// CHECK:STDOUT: %.loc8_24.3: init %C.76d = class_init (), %.loc8_24.2 [template = constants.%C.val.3c3] +// CHECK:STDOUT: %.loc8_24.4: ref %C.76d = temporary %.loc8_24.2, %.loc8_24.3 +// CHECK:STDOUT: %.loc8_26.1: ref %C.76d = converted %.loc8_24.1, %.loc8_24.4 +// CHECK:STDOUT: %impl.elem0.loc8_35: %Convert.type.334 = impl_witness_access constants.%impl_witness.368, element0 [template = constants.%Convert.4f5] // CHECK:STDOUT: %Convert.bound.loc8_35: = bound_method %.loc8_26.1, %impl.elem0.loc8_35 // CHECK:STDOUT: %.loc8_35.1: ref %D = temporary_storage -// CHECK:STDOUT: %.loc8_26.2: %C.1a1 = bind_value %.loc8_26.1 +// CHECK:STDOUT: %.loc8_26.2: %C.76d = bind_value %.loc8_26.1 // CHECK:STDOUT: %Convert.call.loc8: init %D = call %Convert.bound.loc8_35(%.loc8_26.2) to %.loc8_35.1 // CHECK:STDOUT: %.loc8_35.2: init %D = converted %.loc8_26.1, %Convert.call.loc8 // CHECK:STDOUT: return %.loc8_35.2 to %return @@ -1327,22 +1327,22 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !if.then.loc9: // CHECK:STDOUT: %.loc9_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %P.ref.loc9: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %C.ref.loc9: %C.type = name_ref C, imports.%import_ref.867 [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref.loc9: %C.type = name_ref C, imports.%import_ref.f9e [template = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9_34: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc9_34: = bound_method %int_1, %impl.elem0.loc9_34 [template = constants.%Convert.bound.5fe] +// CHECK:STDOUT: %impl.elem0.loc9_34: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc9_34: = bound_method %int_1, %impl.elem0.loc9_34 [template = constants.%Convert.bound.92d] // CHECK:STDOUT: %int.convert_checked.loc9: init %i32.builtin = call %Convert.bound.loc9_34(%int_1) [template = constants.%int_1.f38] // CHECK:STDOUT: %.loc9_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc9 [template = constants.%int_1.f38] // CHECK:STDOUT: %.loc9_34.2: %i32.builtin = converted %int_1, %.loc9_34.1 [template = constants.%int_1.f38] -// CHECK:STDOUT: %C.loc9: type = class_type @C, @C(constants.%int_1.f38) [template = constants.%C.b1b] -// CHECK:STDOUT: %.loc9_24.2: ref %C.b1b = temporary_storage -// CHECK:STDOUT: %.loc9_24.3: init %C.b1b = class_init (), %.loc9_24.2 [template = constants.%C.val.732] -// CHECK:STDOUT: %.loc9_24.4: ref %C.b1b = temporary %.loc9_24.2, %.loc9_24.3 -// CHECK:STDOUT: %.loc9_26.1: ref %C.b1b = converted %.loc9_24.1, %.loc9_24.4 -// CHECK:STDOUT: %impl.elem0.loc9_35: %Convert.type.c19 = impl_witness_access constants.%impl_witness.9b6, element0 [template = constants.%Convert.f02] +// CHECK:STDOUT: %C.loc9: type = class_type @C, @C(constants.%int_1.f38) [template = constants.%C.012] +// CHECK:STDOUT: %.loc9_24.2: ref %C.012 = temporary_storage +// CHECK:STDOUT: %.loc9_24.3: init %C.012 = class_init (), %.loc9_24.2 [template = constants.%C.val.172] +// CHECK:STDOUT: %.loc9_24.4: ref %C.012 = temporary %.loc9_24.2, %.loc9_24.3 +// CHECK:STDOUT: %.loc9_26.1: ref %C.012 = converted %.loc9_24.1, %.loc9_24.4 +// CHECK:STDOUT: %impl.elem0.loc9_35: %Convert.type.334 = impl_witness_access constants.%impl_witness.29f, element0 [template = constants.%Convert.ecc] // CHECK:STDOUT: %Convert.bound.loc9_35: = bound_method %.loc9_26.1, %impl.elem0.loc9_35 // CHECK:STDOUT: %.loc9_35.1: ref %D = temporary_storage -// CHECK:STDOUT: %.loc9_26.2: %C.b1b = bind_value %.loc9_26.1 +// CHECK:STDOUT: %.loc9_26.2: %C.012 = bind_value %.loc9_26.1 // CHECK:STDOUT: %Convert.call.loc9: init %D = call %Convert.bound.loc9_35(%.loc9_26.2) to %.loc9_35.1 // CHECK:STDOUT: %.loc9_35.2: init %D = converted %.loc9_26.1, %Convert.call.loc9 // CHECK:STDOUT: return %.loc9_35.2 to %return @@ -1354,22 +1354,22 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !if.then.loc10: // CHECK:STDOUT: %.loc10_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %P.ref.loc10: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, imports.%import_ref.867 [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, imports.%import_ref.f9e [template = constants.%C.generic] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc10_34: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc10_34: = bound_method %int_2, %impl.elem0.loc10_34 [template = constants.%Convert.bound.a80] +// CHECK:STDOUT: %impl.elem0.loc10_34: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc10_34: = bound_method %int_2, %impl.elem0.loc10_34 [template = constants.%Convert.bound.1b9] // CHECK:STDOUT: %int.convert_checked.loc10: init %i32.builtin = call %Convert.bound.loc10_34(%int_2) [template = constants.%int_2.5a1] // CHECK:STDOUT: %.loc10_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc10 [template = constants.%int_2.5a1] // CHECK:STDOUT: %.loc10_34.2: %i32.builtin = converted %int_2, %.loc10_34.1 [template = constants.%int_2.5a1] -// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%int_2.5a1) [template = constants.%C.1f5] -// CHECK:STDOUT: %.loc10_24.2: ref %C.1f5 = temporary_storage -// CHECK:STDOUT: %.loc10_24.3: init %C.1f5 = class_init (), %.loc10_24.2 [template = constants.%C.val.3b9] -// CHECK:STDOUT: %.loc10_24.4: ref %C.1f5 = temporary %.loc10_24.2, %.loc10_24.3 -// CHECK:STDOUT: %.loc10_26.1: ref %C.1f5 = converted %.loc10_24.1, %.loc10_24.4 -// CHECK:STDOUT: %impl.elem0.loc10_35: %Convert.type.c19 = impl_witness_access constants.%impl_witness.ccf, element0 [template = constants.%Convert.216] +// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%int_2.5a1) [template = constants.%C.3e6] +// CHECK:STDOUT: %.loc10_24.2: ref %C.3e6 = temporary_storage +// CHECK:STDOUT: %.loc10_24.3: init %C.3e6 = class_init (), %.loc10_24.2 [template = constants.%C.val.418] +// CHECK:STDOUT: %.loc10_24.4: ref %C.3e6 = temporary %.loc10_24.2, %.loc10_24.3 +// CHECK:STDOUT: %.loc10_26.1: ref %C.3e6 = converted %.loc10_24.1, %.loc10_24.4 +// CHECK:STDOUT: %impl.elem0.loc10_35: %Convert.type.334 = impl_witness_access constants.%impl_witness.3ac, element0 [template = constants.%Convert.c2b] // CHECK:STDOUT: %Convert.bound.loc10_35: = bound_method %.loc10_26.1, %impl.elem0.loc10_35 // CHECK:STDOUT: %.loc10_35.1: ref %D = temporary_storage -// CHECK:STDOUT: %.loc10_26.2: %C.1f5 = bind_value %.loc10_26.1 +// CHECK:STDOUT: %.loc10_26.2: %C.3e6 = bind_value %.loc10_26.1 // CHECK:STDOUT: %Convert.call.loc10: init %D = call %Convert.bound.loc10_35(%.loc10_26.2) to %.loc10_35.1 // CHECK:STDOUT: %.loc10_35.2: init %D = converted %.loc10_26.1, %Convert.call.loc10 // CHECK:STDOUT: return %.loc10_35.2 to %return @@ -1381,22 +1381,22 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !if.then.loc11: // CHECK:STDOUT: %.loc11_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %P.ref.loc11: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %C.ref.loc11: %C.type = name_ref C, imports.%import_ref.867 [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref.loc11: %C.type = name_ref C, imports.%import_ref.f9e [template = constants.%C.generic] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc11_34: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc11_34: = bound_method %int_3, %impl.elem0.loc11_34 [template = constants.%Convert.bound.227] +// CHECK:STDOUT: %impl.elem0.loc11_34: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc11_34: = bound_method %int_3, %impl.elem0.loc11_34 [template = constants.%Convert.bound.b6b] // CHECK:STDOUT: %int.convert_checked.loc11: init %i32.builtin = call %Convert.bound.loc11_34(%int_3) [template = constants.%int_3.a0f] // CHECK:STDOUT: %.loc11_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc11 [template = constants.%int_3.a0f] // CHECK:STDOUT: %.loc11_34.2: %i32.builtin = converted %int_3, %.loc11_34.1 [template = constants.%int_3.a0f] -// CHECK:STDOUT: %C.loc11: type = class_type @C, @C(constants.%int_3.a0f) [template = constants.%C.93c] -// CHECK:STDOUT: %.loc11_24.2: ref %C.93c = temporary_storage -// CHECK:STDOUT: %.loc11_24.3: init %C.93c = class_init (), %.loc11_24.2 [template = constants.%C.val.887] -// CHECK:STDOUT: %.loc11_24.4: ref %C.93c = temporary %.loc11_24.2, %.loc11_24.3 -// CHECK:STDOUT: %.loc11_26.1: ref %C.93c = converted %.loc11_24.1, %.loc11_24.4 -// CHECK:STDOUT: %impl.elem0.loc11_35: %Convert.type.c19 = impl_witness_access constants.%impl_witness.b44, element0 [template = constants.%Convert.b88] +// CHECK:STDOUT: %C.loc11: type = class_type @C, @C(constants.%int_3.a0f) [template = constants.%C.4d9] +// CHECK:STDOUT: %.loc11_24.2: ref %C.4d9 = temporary_storage +// CHECK:STDOUT: %.loc11_24.3: init %C.4d9 = class_init (), %.loc11_24.2 [template = constants.%C.val.bba] +// CHECK:STDOUT: %.loc11_24.4: ref %C.4d9 = temporary %.loc11_24.2, %.loc11_24.3 +// CHECK:STDOUT: %.loc11_26.1: ref %C.4d9 = converted %.loc11_24.1, %.loc11_24.4 +// CHECK:STDOUT: %impl.elem0.loc11_35: %Convert.type.334 = impl_witness_access constants.%impl_witness.b40, element0 [template = constants.%Convert.2b5] // CHECK:STDOUT: %Convert.bound.loc11_35: = bound_method %.loc11_26.1, %impl.elem0.loc11_35 // CHECK:STDOUT: %.loc11_35.1: ref %D = temporary_storage -// CHECK:STDOUT: %.loc11_26.2: %C.93c = bind_value %.loc11_26.1 +// CHECK:STDOUT: %.loc11_26.2: %C.4d9 = bind_value %.loc11_26.1 // CHECK:STDOUT: %Convert.call.loc11: init %D = call %Convert.bound.loc11_35(%.loc11_26.2) to %.loc11_35.1 // CHECK:STDOUT: %.loc11_35.2: init %D = converted %.loc11_26.1, %Convert.call.loc11 // CHECK:STDOUT: return %.loc11_35.2 to %return @@ -1408,22 +1408,22 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !if.then.loc12: // CHECK:STDOUT: %.loc12_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %P.ref.loc12: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, imports.%import_ref.867 [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, imports.%import_ref.f9e [template = constants.%C.generic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc12_34: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc12_34: = bound_method %int_4, %impl.elem0.loc12_34 [template = constants.%Convert.bound.503] +// CHECK:STDOUT: %impl.elem0.loc12_34: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc12_34: = bound_method %int_4, %impl.elem0.loc12_34 [template = constants.%Convert.bound.626] // CHECK:STDOUT: %int.convert_checked.loc12: init %i32.builtin = call %Convert.bound.loc12_34(%int_4) [template = constants.%int_4.4f1] // CHECK:STDOUT: %.loc12_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc12 [template = constants.%int_4.4f1] // CHECK:STDOUT: %.loc12_34.2: %i32.builtin = converted %int_4, %.loc12_34.1 [template = constants.%int_4.4f1] -// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%int_4.4f1) [template = constants.%C.305] -// CHECK:STDOUT: %.loc12_24.2: ref %C.305 = temporary_storage -// CHECK:STDOUT: %.loc12_24.3: init %C.305 = class_init (), %.loc12_24.2 [template = constants.%C.val.7a5] -// CHECK:STDOUT: %.loc12_24.4: ref %C.305 = temporary %.loc12_24.2, %.loc12_24.3 -// CHECK:STDOUT: %.loc12_26.1: ref %C.305 = converted %.loc12_24.1, %.loc12_24.4 -// CHECK:STDOUT: %impl.elem0.loc12_35: %Convert.type.c19 = impl_witness_access constants.%impl_witness.9c7, element0 [template = constants.%Convert.7a6] +// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%int_4.4f1) [template = constants.%C.a67] +// CHECK:STDOUT: %.loc12_24.2: ref %C.a67 = temporary_storage +// CHECK:STDOUT: %.loc12_24.3: init %C.a67 = class_init (), %.loc12_24.2 [template = constants.%C.val.4b6] +// CHECK:STDOUT: %.loc12_24.4: ref %C.a67 = temporary %.loc12_24.2, %.loc12_24.3 +// CHECK:STDOUT: %.loc12_26.1: ref %C.a67 = converted %.loc12_24.1, %.loc12_24.4 +// CHECK:STDOUT: %impl.elem0.loc12_35: %Convert.type.334 = impl_witness_access constants.%impl_witness.20f, element0 [template = constants.%Convert.625] // CHECK:STDOUT: %Convert.bound.loc12_35: = bound_method %.loc12_26.1, %impl.elem0.loc12_35 // CHECK:STDOUT: %.loc12_35.1: ref %D = temporary_storage -// CHECK:STDOUT: %.loc12_26.2: %C.305 = bind_value %.loc12_26.1 +// CHECK:STDOUT: %.loc12_26.2: %C.a67 = bind_value %.loc12_26.1 // CHECK:STDOUT: %Convert.call.loc12: init %D = call %Convert.bound.loc12_35(%.loc12_26.2) to %.loc12_35.1 // CHECK:STDOUT: %.loc12_35.2: init %D = converted %.loc12_26.1, %Convert.call.loc12 // CHECK:STDOUT: return %.loc12_35.2 to %return @@ -1435,22 +1435,22 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !if.then.loc13: // CHECK:STDOUT: %.loc13_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %P.ref.loc13: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %C.ref.loc13: %C.type = name_ref C, imports.%import_ref.867 [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref.loc13: %C.type = name_ref C, imports.%import_ref.f9e [template = constants.%C.generic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc13_34: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc13_34: = bound_method %int_5, %impl.elem0.loc13_34 [template = constants.%Convert.bound.2c9] +// CHECK:STDOUT: %impl.elem0.loc13_34: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc13_34: = bound_method %int_5, %impl.elem0.loc13_34 [template = constants.%Convert.bound.910] // CHECK:STDOUT: %int.convert_checked.loc13: init %i32.builtin = call %Convert.bound.loc13_34(%int_5) [template = constants.%int_5.967] // CHECK:STDOUT: %.loc13_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc13 [template = constants.%int_5.967] // CHECK:STDOUT: %.loc13_34.2: %i32.builtin = converted %int_5, %.loc13_34.1 [template = constants.%int_5.967] -// CHECK:STDOUT: %C.loc13: type = class_type @C, @C(constants.%int_5.967) [template = constants.%C.df3] -// CHECK:STDOUT: %.loc13_24.2: ref %C.df3 = temporary_storage -// CHECK:STDOUT: %.loc13_24.3: init %C.df3 = class_init (), %.loc13_24.2 [template = constants.%C.val.313] -// CHECK:STDOUT: %.loc13_24.4: ref %C.df3 = temporary %.loc13_24.2, %.loc13_24.3 -// CHECK:STDOUT: %.loc13_26.1: ref %C.df3 = converted %.loc13_24.1, %.loc13_24.4 -// CHECK:STDOUT: %impl.elem0.loc13_35: %Convert.type.c19 = impl_witness_access constants.%impl_witness.6ed, element0 [template = constants.%Convert.d06] +// CHECK:STDOUT: %C.loc13: type = class_type @C, @C(constants.%int_5.967) [template = constants.%C.65c] +// CHECK:STDOUT: %.loc13_24.2: ref %C.65c = temporary_storage +// CHECK:STDOUT: %.loc13_24.3: init %C.65c = class_init (), %.loc13_24.2 [template = constants.%C.val.75e] +// CHECK:STDOUT: %.loc13_24.4: ref %C.65c = temporary %.loc13_24.2, %.loc13_24.3 +// CHECK:STDOUT: %.loc13_26.1: ref %C.65c = converted %.loc13_24.1, %.loc13_24.4 +// CHECK:STDOUT: %impl.elem0.loc13_35: %Convert.type.334 = impl_witness_access constants.%impl_witness.9b3, element0 [template = constants.%Convert.73d] // CHECK:STDOUT: %Convert.bound.loc13_35: = bound_method %.loc13_26.1, %impl.elem0.loc13_35 // CHECK:STDOUT: %.loc13_35.1: ref %D = temporary_storage -// CHECK:STDOUT: %.loc13_26.2: %C.df3 = bind_value %.loc13_26.1 +// CHECK:STDOUT: %.loc13_26.2: %C.65c = bind_value %.loc13_26.1 // CHECK:STDOUT: %Convert.call.loc13: init %D = call %Convert.bound.loc13_35(%.loc13_26.2) to %.loc13_35.1 // CHECK:STDOUT: %.loc13_35.2: init %D = converted %.loc13_26.1, %Convert.call.loc13 // CHECK:STDOUT: return %.loc13_35.2 to %return @@ -1462,22 +1462,22 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !if.then.loc14: // CHECK:STDOUT: %.loc14_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %P.ref.loc14: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %C.ref.loc14: %C.type = name_ref C, imports.%import_ref.867 [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref.loc14: %C.type = name_ref C, imports.%import_ref.f9e [template = constants.%C.generic] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] -// CHECK:STDOUT: %impl.elem0.loc14_34: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc14_34: = bound_method %int_6, %impl.elem0.loc14_34 [template = constants.%Convert.bound.d98] +// CHECK:STDOUT: %impl.elem0.loc14_34: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc14_34: = bound_method %int_6, %impl.elem0.loc14_34 [template = constants.%Convert.bound.e3a] // CHECK:STDOUT: %int.convert_checked.loc14: init %i32.builtin = call %Convert.bound.loc14_34(%int_6) [template = constants.%int_6.ec5] // CHECK:STDOUT: %.loc14_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc14 [template = constants.%int_6.ec5] // CHECK:STDOUT: %.loc14_34.2: %i32.builtin = converted %int_6, %.loc14_34.1 [template = constants.%int_6.ec5] -// CHECK:STDOUT: %C.loc14: type = class_type @C, @C(constants.%int_6.ec5) [template = constants.%C.9d8] -// CHECK:STDOUT: %.loc14_24.2: ref %C.9d8 = temporary_storage -// CHECK:STDOUT: %.loc14_24.3: init %C.9d8 = class_init (), %.loc14_24.2 [template = constants.%C.val.311] -// CHECK:STDOUT: %.loc14_24.4: ref %C.9d8 = temporary %.loc14_24.2, %.loc14_24.3 -// CHECK:STDOUT: %.loc14_26.1: ref %C.9d8 = converted %.loc14_24.1, %.loc14_24.4 -// CHECK:STDOUT: %impl.elem0.loc14_35: %Convert.type.c19 = impl_witness_access constants.%impl_witness.8c2, element0 [template = constants.%Convert.998] +// CHECK:STDOUT: %C.loc14: type = class_type @C, @C(constants.%int_6.ec5) [template = constants.%C.898] +// CHECK:STDOUT: %.loc14_24.2: ref %C.898 = temporary_storage +// CHECK:STDOUT: %.loc14_24.3: init %C.898 = class_init (), %.loc14_24.2 [template = constants.%C.val.02a] +// CHECK:STDOUT: %.loc14_24.4: ref %C.898 = temporary %.loc14_24.2, %.loc14_24.3 +// CHECK:STDOUT: %.loc14_26.1: ref %C.898 = converted %.loc14_24.1, %.loc14_24.4 +// CHECK:STDOUT: %impl.elem0.loc14_35: %Convert.type.334 = impl_witness_access constants.%impl_witness.b5b, element0 [template = constants.%Convert.e8e] // CHECK:STDOUT: %Convert.bound.loc14_35: = bound_method %.loc14_26.1, %impl.elem0.loc14_35 // CHECK:STDOUT: %.loc14_35.1: ref %D = temporary_storage -// CHECK:STDOUT: %.loc14_26.2: %C.9d8 = bind_value %.loc14_26.1 +// CHECK:STDOUT: %.loc14_26.2: %C.898 = bind_value %.loc14_26.1 // CHECK:STDOUT: %Convert.call.loc14: init %D = call %Convert.bound.loc14_35(%.loc14_26.2) to %.loc14_35.1 // CHECK:STDOUT: %.loc14_35.2: init %D = converted %.loc14_26.1, %Convert.call.loc14 // CHECK:STDOUT: return %.loc14_35.2 to %return @@ -1489,38 +1489,38 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !if.then.loc15: // CHECK:STDOUT: %.loc15_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %P.ref.loc15: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %C.ref.loc15: %C.type = name_ref C, imports.%import_ref.867 [template = constants.%C.generic] +// CHECK:STDOUT: %C.ref.loc15: %C.type = name_ref C, imports.%import_ref.f9e [template = constants.%C.generic] // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [template = constants.%int_7.29f] -// CHECK:STDOUT: %impl.elem0.loc15_34: %Convert.type.2a0 = impl_witness_access constants.%impl_witness.25b, element0 [template = constants.%Convert.718] -// CHECK:STDOUT: %Convert.bound.loc15_34: = bound_method %int_7, %impl.elem0.loc15_34 [template = constants.%Convert.bound.e27] +// CHECK:STDOUT: %impl.elem0.loc15_34: %Convert.type.059 = impl_witness_access constants.%impl_witness.39c, element0 [template = constants.%Convert.cb5] +// CHECK:STDOUT: %Convert.bound.loc15_34: = bound_method %int_7, %impl.elem0.loc15_34 [template = constants.%Convert.bound.06a] // CHECK:STDOUT: %int.convert_checked.loc15: init %i32.builtin = call %Convert.bound.loc15_34(%int_7) [template = constants.%int_7.6ae] // CHECK:STDOUT: %.loc15_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_7.6ae] // CHECK:STDOUT: %.loc15_34.2: %i32.builtin = converted %int_7, %.loc15_34.1 [template = constants.%int_7.6ae] -// CHECK:STDOUT: %C.loc15: type = class_type @C, @C(constants.%int_7.6ae) [template = constants.%C.7a2] -// CHECK:STDOUT: %.loc15_24.2: ref %C.7a2 = temporary_storage -// CHECK:STDOUT: %.loc15_24.3: init %C.7a2 = class_init (), %.loc15_24.2 [template = constants.%C.val.cdc] -// CHECK:STDOUT: %.loc15_24.4: ref %C.7a2 = temporary %.loc15_24.2, %.loc15_24.3 -// CHECK:STDOUT: %.loc15_26.1: ref %C.7a2 = converted %.loc15_24.1, %.loc15_24.4 -// CHECK:STDOUT: %impl.elem0.loc15_35: %Convert.type.c19 = impl_witness_access constants.%impl_witness.aef, element0 [template = constants.%Convert.5ef] +// CHECK:STDOUT: %C.loc15: type = class_type @C, @C(constants.%int_7.6ae) [template = constants.%C.f0a] +// CHECK:STDOUT: %.loc15_24.2: ref %C.f0a = temporary_storage +// CHECK:STDOUT: %.loc15_24.3: init %C.f0a = class_init (), %.loc15_24.2 [template = constants.%C.val.654] +// CHECK:STDOUT: %.loc15_24.4: ref %C.f0a = temporary %.loc15_24.2, %.loc15_24.3 +// CHECK:STDOUT: %.loc15_26.1: ref %C.f0a = converted %.loc15_24.1, %.loc15_24.4 +// CHECK:STDOUT: %impl.elem0.loc15_35: %Convert.type.334 = impl_witness_access constants.%impl_witness.dfb, element0 [template = constants.%Convert.430] // CHECK:STDOUT: %Convert.bound.loc15_35: = bound_method %.loc15_26.1, %impl.elem0.loc15_35 // CHECK:STDOUT: %.loc15_35.1: ref %D = temporary_storage -// CHECK:STDOUT: %.loc15_26.2: %C.7a2 = bind_value %.loc15_26.1 +// CHECK:STDOUT: %.loc15_26.2: %C.f0a = bind_value %.loc15_26.1 // CHECK:STDOUT: %Convert.call.loc15: init %D = call %Convert.bound.loc15_35(%.loc15_26.2) to %.loc15_35.1 // CHECK:STDOUT: %.loc15_35.2: init %D = converted %.loc15_26.1, %Convert.call.loc15 // CHECK:STDOUT: return %.loc15_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc15: // CHECK:STDOUT: %P.ref.loc16: = name_ref P, imports.%P [template = imports.%P] -// CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, imports.%import_ref.30b [template = constants.%Make] +// CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, imports.%import_ref.981 [template = constants.%Make] // CHECK:STDOUT: %.loc7_15: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc7_15 // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.1(constants.%T: type, constants.%Self: %ImplicitAs.type.d33) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @Convert.1(constants.%T: type, constants.%Self: %ImplicitAs.type.d62) [from "core.carbon"] { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d33)] -// CHECK:STDOUT: %Self: %ImplicitAs.type.d33 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.d62)] +// CHECK:STDOUT: %Self: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.param_patt: @Convert.1.%Self.as_type (%Self.as_type)]() -> @Convert.1.%T (%T); @@ -1528,21 +1528,21 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.2[%self.param_patt: Core.IntLiteral]() -> %i32.builtin = "int.convert_checked" [from "core.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.3[%self.param_patt: %C.1a1]() -> %D [from "library.carbon"]; +// CHECK:STDOUT: fn @Convert.3[%self.param_patt: %C.76d]() -> %D [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.4[%self.param_patt: %C.b1b]() -> %D [from "library.carbon"]; +// CHECK:STDOUT: fn @Convert.4[%self.param_patt: %C.012]() -> %D [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.5[%self.param_patt: %C.1f5]() -> %D [from "library.carbon"]; +// CHECK:STDOUT: fn @Convert.5[%self.param_patt: %C.3e6]() -> %D [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.6[%self.param_patt: %C.93c]() -> %D [from "library.carbon"]; +// CHECK:STDOUT: fn @Convert.6[%self.param_patt: %C.4d9]() -> %D [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.7[%self.param_patt: %C.305]() -> %D [from "library.carbon"]; +// CHECK:STDOUT: fn @Convert.7[%self.param_patt: %C.a67]() -> %D [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.8[%self.param_patt: %C.df3]() -> %D [from "library.carbon"]; +// CHECK:STDOUT: fn @Convert.8[%self.param_patt: %C.65c]() -> %D [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.9[%self.param_patt: %C.9d8]() -> %D [from "library.carbon"]; +// CHECK:STDOUT: fn @Convert.9[%self.param_patt: %C.898]() -> %D [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.10[%self.param_patt: %C.7a2]() -> %D [from "library.carbon"]; +// CHECK:STDOUT: fn @Convert.10[%self.param_patt: %C.f0a]() -> %D [from "library.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @Make() -> %D [from "library.carbon"]; // CHECK:STDOUT: @@ -1562,7 +1562,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert.1(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.d33 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.d62 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: } @@ -1572,12 +1572,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.51b +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.61e // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.2a0 -// CHECK:STDOUT: %Convert => constants.%Convert.756 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.f84 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.695 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.059 +// CHECK:STDOUT: %Convert => constants.%Convert.4d7 +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.40f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.44d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_0.a54) { @@ -1592,12 +1592,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %T.patt => constants.%D // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.2fd +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.5f9 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Convert.type => constants.%Convert.type.c19 -// CHECK:STDOUT: %Convert => constants.%Convert.2c0 -// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.0de -// CHECK:STDOUT: %assoc0 => constants.%assoc0.090 +// CHECK:STDOUT: %Convert.type => constants.%Convert.type.334 +// CHECK:STDOUT: %Convert => constants.%Convert.87c +// CHECK:STDOUT: %Convert.assoc_type => constants.%Convert.assoc_type.f99 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.4b2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_1.f38) { diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index b85b2147c240..538aac254b71 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -30,36 +30,36 @@ fn G() -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %complete_type.e46: = complete_type_witness %struct_type.a.b.3de [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %complete_type.705: = complete_type_witness %struct_type.a.b.501 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -96,7 +96,7 @@ fn G() -> i32 { // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc12: %C.elem = field_decl a, element0 [template] // CHECK:STDOUT: %.loc13: %C.elem = field_decl b, element1 [template] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.3de [template = constants.%complete_type.e46] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a.b.501 [template = constants.%complete_type.705] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C @@ -111,20 +111,20 @@ fn G() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc17_43.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc17_43.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17_43.1: = bound_method %int_1, %impl.elem0.loc17_43.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc17_43.1: = specific_function %Convert.bound.loc17_43.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc17_43.1: init %i32 = call %Convert.specific_fn.loc17_43.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc17_43.2: init %i32 = converted %int_1, %int.convert_checked.loc17_43.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc17_43.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17_43.1: = bound_method %int_1, %impl.elem0.loc17_43.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc17_43.1: = specific_function %Convert.bound.loc17_43.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc17_43.1: init %i32 = call %Convert.specific_fn.loc17_43.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc17_43.2: init %i32 = converted %int_1, %int.convert_checked.loc17_43.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc17_43.3: ref %i32 = class_element_access %return, element0 -// CHECK:STDOUT: %.loc17_43.4: init %i32 = initialize_from %.loc17_43.2 to %.loc17_43.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc17_43.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc17_43.2: = bound_method %int_2, %impl.elem0.loc17_43.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc17_43.2: = specific_function %Convert.bound.loc17_43.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc17_43.2: init %i32 = call %Convert.specific_fn.loc17_43.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc17_43.5: init %i32 = converted %int_2, %int.convert_checked.loc17_43.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc17_43.4: init %i32 = initialize_from %.loc17_43.2 to %.loc17_43.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc17_43.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc17_43.2: = bound_method %int_2, %impl.elem0.loc17_43.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc17_43.2: = specific_function %Convert.bound.loc17_43.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc17_43.2: init %i32 = call %Convert.specific_fn.loc17_43.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc17_43.5: init %i32 = converted %int_2, %int.convert_checked.loc17_43.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc17_43.6: ref %i32 = class_element_access %return, element1 -// CHECK:STDOUT: %.loc17_43.7: init %i32 = initialize_from %.loc17_43.5 to %.loc17_43.6 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc17_43.7: init %i32 = initialize_from %.loc17_43.5 to %.loc17_43.6 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc17_43.8: init %C = class_init (%.loc17_43.4, %.loc17_43.7), %return [template = constants.%C.val] // CHECK:STDOUT: %.loc17_44: init %C = converted %.loc17_43.1, %.loc17_43.8 [template = constants.%C.val] // CHECK:STDOUT: assign %return, %.loc17_44 @@ -136,11 +136,11 @@ fn G() -> i32 { // CHECK:STDOUT: %result.var: ref %i32 = var result // CHECK:STDOUT: %result: ref %i32 = bind_name result, %result.var // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc22_31: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc22_31: init %i32 = converted %int_0, %int.convert_checked [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %result.var, %.loc22_31 // CHECK:STDOUT: %.loc22_16: %i32 = bind_value %result // CHECK:STDOUT: return %.loc22_16 diff --git a/toolchain/check/testdata/return/returned_var_scope.carbon b/toolchain/check/testdata/return/returned_var_scope.carbon index 07d7e35f4352..f87755664e3c 100644 --- a/toolchain/check/testdata/return/returned_var_scope.carbon +++ b/toolchain/check/testdata/return/returned_var_scope.carbon @@ -36,17 +36,17 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %UnrelatedScopes: %UnrelatedScopes.type = struct_value () [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [template] // CHECK:STDOUT: %EnclosingButAfter.type: type = fn_type @EnclosingButAfter [template] @@ -55,9 +55,9 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -108,11 +108,11 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %int_0.loc13: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_0.loc13, %impl.elem0.loc13 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_0.loc13) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc13: init %i32 = converted %int_0.loc13, %int.convert_checked.loc13 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc13: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13: = bound_method %int_0.loc13, %impl.elem0.loc13 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc13: = specific_function %Convert.bound.loc13, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %Convert.specific_fn.loc13(%int_0.loc13) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc13: init %i32 = converted %int_0.loc13, %int.convert_checked.loc13 [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %v.var, %.loc13 // CHECK:STDOUT: br !if.else.loc12 // CHECK:STDOUT: @@ -124,22 +124,22 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %w.var: ref %i32 = var w // CHECK:STDOUT: %w: ref %i32 = bind_name w, %w.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_1, %impl.elem0.loc16 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_1, %int.convert_checked.loc16 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc16: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc16: = bound_method %int_1, %impl.elem0.loc16 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc16: = specific_function %Convert.bound.loc16, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %Convert.specific_fn.loc16(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_1, %int.convert_checked.loc16 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %w.var, %.loc16 // CHECK:STDOUT: br !if.else.loc15 // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc15: // CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_0.loc18, %impl.elem0.loc18 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_0.loc18) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc18_11.1: %i32 = value_of_initializer %int.convert_checked.loc18 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc18_11.2: %i32 = converted %int_0.loc18, %.loc18_11.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc18: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18: = bound_method %int_0.loc18, %impl.elem0.loc18 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc18: = specific_function %Convert.bound.loc18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %Convert.specific_fn.loc18(%int_0.loc18) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc18_11.1: %i32 = value_of_initializer %int.convert_checked.loc18 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc18_11.2: %i32 = converted %int_0.loc18, %.loc18_11.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc18_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -152,11 +152,11 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc23: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc23: = bound_method %int_0, %impl.elem0.loc23 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc23: = specific_function %Convert.bound.loc23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %Convert.specific_fn.loc23(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc23_28: init %i32 = converted %int_0, %int.convert_checked.loc23 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc23: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc23: = bound_method %int_0, %impl.elem0.loc23 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc23: = specific_function %Convert.bound.loc23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %Convert.specific_fn.loc23(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc23_28: init %i32 = converted %int_0, %int.convert_checked.loc23 [template = constants.%int_0.6a9] // CHECK:STDOUT: assign %v.var, %.loc23_28 // CHECK:STDOUT: %.loc23_18: %i32 = bind_value %v // CHECK:STDOUT: return %.loc23_18 @@ -165,11 +165,11 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %w.var: ref %i32 = var w // CHECK:STDOUT: %w: ref %i32 = bind_name w, %w.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc26: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc26: = bound_method %int_1, %impl.elem0.loc26 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc26: = specific_function %Convert.bound.loc26, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc26: init %i32 = call %Convert.specific_fn.loc26(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc26_26: init %i32 = converted %int_1, %int.convert_checked.loc26 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc26: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc26: = bound_method %int_1, %impl.elem0.loc26 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc26: = specific_function %Convert.bound.loc26, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc26: init %i32 = call %Convert.specific_fn.loc26(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc26_26: init %i32 = converted %int_1, %int.convert_checked.loc26 [template = constants.%int_1.5d2] // CHECK:STDOUT: assign %w.var, %.loc26_26 // CHECK:STDOUT: %.loc26_16: %i32 = bind_value %w // CHECK:STDOUT: return %.loc26_16 diff --git a/toolchain/check/testdata/return/struct.carbon b/toolchain/check/testdata/return/struct.carbon index 714117648155..53177fd682a6 100644 --- a/toolchain/check/testdata/return/struct.carbon +++ b/toolchain/check/testdata/return/struct.carbon @@ -17,25 +17,25 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.7cc: type = struct_type {.a: %i32} [template] +// CHECK:STDOUT: %struct_type.a.ba9: type = struct_type {.a: %i32} [template] // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_3.1ba, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_3.1ba, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %struct: %struct_type.a.7cc = struct_value (%int_3.25b) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %struct: %struct_type.a.ba9 = struct_value (%int_3.822) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -48,29 +48,29 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [template = constants.%Main] { -// CHECK:STDOUT: %return.patt: %struct_type.a.7cc = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %struct_type.a.7cc = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %struct_type.a.ba9 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %struct_type.a.ba9 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template = constants.%struct_type.a.7cc] -// CHECK:STDOUT: %return.param: ref %struct_type.a.7cc = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %struct_type.a.7cc = return_slot %return.param +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template = constants.%struct_type.a.ba9] +// CHECK:STDOUT: %return.param: ref %struct_type.a.ba9 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %struct_type.a.ba9 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Main() -> %struct_type.a.7cc { +// CHECK:STDOUT: fn @Main() -> %struct_type.a.ba9 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc12_17.1: %struct_type.a.a6c = struct_literal (%int_3) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_3, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc12_17.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc12_17.3: %i32 = converted %int_3, %.loc12_17.2 [template = constants.%int_3.25b] -// CHECK:STDOUT: %struct: %struct_type.a.7cc = struct_value (%.loc12_17.3) [template = constants.%struct] -// CHECK:STDOUT: %.loc12_18: %struct_type.a.7cc = converted %.loc12_17.1, %struct [template = constants.%struct] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc12_17.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc12_17.3: %i32 = converted %int_3, %.loc12_17.2 [template = constants.%int_3.822] +// CHECK:STDOUT: %struct: %struct_type.a.ba9 = struct_value (%.loc12_17.3) [template = constants.%struct] +// CHECK:STDOUT: %.loc12_18: %struct_type.a.ba9 = converted %.loc12_17.1, %struct [template = constants.%struct] // CHECK:STDOUT: return %.loc12_18 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/tuple.carbon b/toolchain/check/testdata/return/tuple.carbon index 1f2cb9a7741c..dada9fd21f86 100644 --- a/toolchain/check/testdata/return/tuple.carbon +++ b/toolchain/check/testdata/return/tuple.carbon @@ -19,29 +19,29 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_15.447: Core.IntLiteral = int_value 15 [template] // CHECK:STDOUT: %int_35.c79: Core.IntLiteral = int_value 35 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.bc3: = bound_method %int_15.447, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.098: = specific_function %Convert.bound.bc3, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_15.761: %i32 = int_value 15 [template] -// CHECK:STDOUT: %Convert.bound.9e7: = bound_method %int_35.c79, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.dba: = specific_function %Convert.bound.9e7, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_35.545: %i32 = int_value 35 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_15.761, %int_35.545) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.75f: = bound_method %int_15.447, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.c46: = specific_function %Convert.bound.75f, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_15.7f7: %i32 = int_value 15 [template] +// CHECK:STDOUT: %Convert.bound.76a: = bound_method %int_35.c79, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9b5: = specific_function %Convert.bound.76a, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_35.c78: %i32 = int_value 35 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_15.7f7, %int_35.c78) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -54,41 +54,41 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [template = constants.%Main] { -// CHECK:STDOUT: %return.patt: %tuple.type.471 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.471 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.d07 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.d07 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc12_15: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_15: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc12_20: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc12_20: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc12_23.1: %tuple.type.24b = tuple_literal (%i32.loc12_15, %i32.loc12_20) -// CHECK:STDOUT: %.loc12_23.2: type = converted %.loc12_23.1, constants.%tuple.type.471 [template = constants.%tuple.type.471] -// CHECK:STDOUT: %return.param: ref %tuple.type.471 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %tuple.type.471 = return_slot %return.param +// CHECK:STDOUT: %.loc12_23.2: type = converted %.loc12_23.1, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] +// CHECK:STDOUT: %return.param: ref %tuple.type.d07 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %tuple.type.d07 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Main() -> %return.param_patt: %tuple.type.471 { +// CHECK:STDOUT: fn @Main() -> %return.param_patt: %tuple.type.d07 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_15: Core.IntLiteral = int_value 15 [template = constants.%int_15.447] // CHECK:STDOUT: %int_35: Core.IntLiteral = int_value 35 [template = constants.%int_35.c79] // CHECK:STDOUT: %.loc13_17.1: %tuple.type.f94 = tuple_literal (%int_15, %int_35) -// CHECK:STDOUT: %impl.elem0.loc13_17.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_17.1: = bound_method %int_15, %impl.elem0.loc13_17.1 [template = constants.%Convert.bound.bc3] -// CHECK:STDOUT: %Convert.specific_fn.loc13_17.1: = specific_function %Convert.bound.loc13_17.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.098] -// CHECK:STDOUT: %int.convert_checked.loc13_17.1: init %i32 = call %Convert.specific_fn.loc13_17.1(%int_15) [template = constants.%int_15.761] -// CHECK:STDOUT: %.loc13_17.2: init %i32 = converted %int_15, %int.convert_checked.loc13_17.1 [template = constants.%int_15.761] +// CHECK:STDOUT: %impl.elem0.loc13_17.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_17.1: = bound_method %int_15, %impl.elem0.loc13_17.1 [template = constants.%Convert.bound.75f] +// CHECK:STDOUT: %Convert.specific_fn.loc13_17.1: = specific_function %Convert.bound.loc13_17.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c46] +// CHECK:STDOUT: %int.convert_checked.loc13_17.1: init %i32 = call %Convert.specific_fn.loc13_17.1(%int_15) [template = constants.%int_15.7f7] +// CHECK:STDOUT: %.loc13_17.2: init %i32 = converted %int_15, %int.convert_checked.loc13_17.1 [template = constants.%int_15.7f7] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return, element0 -// CHECK:STDOUT: %.loc13_17.3: init %i32 = initialize_from %.loc13_17.2 to %tuple.elem0 [template = constants.%int_15.761] -// CHECK:STDOUT: %impl.elem0.loc13_17.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc13_17.2: = bound_method %int_35, %impl.elem0.loc13_17.2 [template = constants.%Convert.bound.9e7] -// CHECK:STDOUT: %Convert.specific_fn.loc13_17.2: = specific_function %Convert.bound.loc13_17.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.dba] -// CHECK:STDOUT: %int.convert_checked.loc13_17.2: init %i32 = call %Convert.specific_fn.loc13_17.2(%int_35) [template = constants.%int_35.545] -// CHECK:STDOUT: %.loc13_17.4: init %i32 = converted %int_35, %int.convert_checked.loc13_17.2 [template = constants.%int_35.545] +// CHECK:STDOUT: %.loc13_17.3: init %i32 = initialize_from %.loc13_17.2 to %tuple.elem0 [template = constants.%int_15.7f7] +// CHECK:STDOUT: %impl.elem0.loc13_17.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc13_17.2: = bound_method %int_35, %impl.elem0.loc13_17.2 [template = constants.%Convert.bound.76a] +// CHECK:STDOUT: %Convert.specific_fn.loc13_17.2: = specific_function %Convert.bound.loc13_17.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9b5] +// CHECK:STDOUT: %int.convert_checked.loc13_17.2: init %i32 = call %Convert.specific_fn.loc13_17.2(%int_35) [template = constants.%int_35.c78] +// CHECK:STDOUT: %.loc13_17.4: init %i32 = converted %int_35, %int.convert_checked.loc13_17.2 [template = constants.%int_35.c78] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return, element1 -// CHECK:STDOUT: %.loc13_17.5: init %i32 = initialize_from %.loc13_17.4 to %tuple.elem1 [template = constants.%int_35.545] -// CHECK:STDOUT: %.loc13_17.6: init %tuple.type.471 = tuple_init (%.loc13_17.3, %.loc13_17.5) to %return [template = constants.%tuple] -// CHECK:STDOUT: %.loc13_18: init %tuple.type.471 = converted %.loc13_17.1, %.loc13_17.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc13_17.5: init %i32 = initialize_from %.loc13_17.4 to %tuple.elem1 [template = constants.%int_35.c78] +// CHECK:STDOUT: %.loc13_17.6: init %tuple.type.d07 = tuple_init (%.loc13_17.3, %.loc13_17.5) to %return [template = constants.%tuple] +// CHECK:STDOUT: %.loc13_18: init %tuple.type.d07 = converted %.loc13_17.1, %.loc13_17.6 [template = constants.%tuple] // CHECK:STDOUT: return %.loc13_18 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/value.carbon b/toolchain/check/testdata/return/value.carbon index 9fa65d760d03..eca5ab6107c2 100644 --- a/toolchain/check/testdata/return/value.carbon +++ b/toolchain/check/testdata/return/value.carbon @@ -20,19 +20,19 @@ fn Main() -> i32 { // CHECK:STDOUT: %Main.type: type = fn_type @Main [template] // CHECK:STDOUT: %Main: %Main.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -58,12 +58,12 @@ fn Main() -> i32 { // CHECK:STDOUT: fn @Main() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_0, %.loc12_11.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_0, %.loc12_11.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: return %.loc12_11.2 // 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 0aba6431ce98..ec1b9e887e1e 100644 --- a/toolchain/check/testdata/struct/fail_assign_empty.carbon +++ b/toolchain/check/testdata/struct/fail_assign_empty.carbon @@ -24,7 +24,7 @@ var x: {.a: i32} = {}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_duplicate_name.carbon b/toolchain/check/testdata/struct/fail_duplicate_name.carbon index 9e7c3ad16d03..3393053f07ca 100644 --- a/toolchain/check/testdata/struct/fail_duplicate_name.carbon +++ b/toolchain/check/testdata/struct/fail_duplicate_name.carbon @@ -62,7 +62,7 @@ var y: {.b: i32, .c: i32} = {.b = 3, .b = 4}; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %struct_type.a.7cc: type = struct_type {.a: %i32} [template] +// CHECK:STDOUT: %struct_type.a.ba9: type = struct_type {.a: %i32} [template] // CHECK:STDOUT: %struct_type.b.c: type = struct_type {.b: %i32, .c: %i32} [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template] @@ -70,7 +70,7 @@ var y: {.b: i32, .c: i32} = {.b = 3, .b = 4}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -103,8 +103,8 @@ var y: {.b: i32, .c: i32} = {.b = 3, .b = 4}; // CHECK:STDOUT: %return.param: ref = out_param runtime_param0 // CHECK:STDOUT: %return: ref = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.7cc = var x -// CHECK:STDOUT: %x: ref %struct_type.a.7cc = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %struct_type.a.ba9 = var x +// CHECK:STDOUT: %x: ref %struct_type.a.ba9 = bind_name x, %x.var // CHECK:STDOUT: %y.var: ref %struct_type.b.c = var y // CHECK:STDOUT: %y: ref %struct_type.b.c = bind_name y, %y.var // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon b/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon index 70dca602fd0d..bca33b93b9ef 100644 --- a/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon +++ b/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon @@ -27,12 +27,12 @@ var y: {.b: i32} = x; // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.b.a15: type = struct_type {.b: Core.IntLiteral} [template] -// CHECK:STDOUT: %struct_type.b.fc0: type = struct_type {.b: %i32} [template] +// CHECK:STDOUT: %struct_type.b.0a3: type = struct_type {.b: %i32} [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -47,8 +47,8 @@ var y: {.b: i32} = x; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %x.var: ref %struct_type.a = var x // CHECK:STDOUT: %x: ref %struct_type.a = bind_name x, %x.var -// CHECK:STDOUT: %y.var: ref %struct_type.b.fc0 = var y -// CHECK:STDOUT: %y: ref %struct_type.b.fc0 = bind_name y, %y.var +// CHECK:STDOUT: %y.var: ref %struct_type.b.0a3 = var y +// CHECK:STDOUT: %y: ref %struct_type.b.0a3 = bind_name y, %y.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon b/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon index 5d78f8bd5d60..e076a323a04f 100644 --- a/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon +++ b/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon @@ -25,7 +25,7 @@ var x: {.a: i32} = {.b = 1.0}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_member_access_type.carbon b/toolchain/check/testdata/struct/fail_member_access_type.carbon index b3a844400b8b..d6f70cf2281c 100644 --- a/toolchain/check/testdata/struct/fail_member_access_type.carbon +++ b/toolchain/check/testdata/struct/fail_member_access_type.carbon @@ -26,8 +26,8 @@ var y: i32 = x.b; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // 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 3cc7466e2d74..98803488b2a2 100644 --- a/toolchain/check/testdata/struct/fail_non_member_access.carbon +++ b/toolchain/check/testdata/struct/fail_non_member_access.carbon @@ -19,23 +19,23 @@ var y: i32 = x.b; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.7cc: type = struct_type {.a: %i32} [template] +// CHECK:STDOUT: %struct_type.a.ba9: type = struct_type {.a: %i32} [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %struct: %struct_type.a.7cc = struct_value (%int_4.2ec) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %struct: %struct_type.a.ba9 = struct_value (%int_4.940) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -48,8 +48,8 @@ var y: i32 = x.b; // CHECK:STDOUT: .y = %y // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %struct_type.a.7cc = var x -// CHECK:STDOUT: %x: ref %struct_type.a.7cc = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %struct_type.a.ba9 = var x +// CHECK:STDOUT: %x: ref %struct_type.a.ba9 = bind_name x, %x.var // CHECK:STDOUT: %y.var: ref %i32 = var y // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var // CHECK:STDOUT: } @@ -58,15 +58,15 @@ var y: i32 = x.b; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_27.1: %struct_type.a.a6c = struct_literal (%int_4) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_4, %int.convert_checked [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_27.3: init %struct_type.a.7cc = struct_init (%.loc11_27.2) to file.%x.var [template = constants.%struct] -// CHECK:STDOUT: %.loc11_28: init %struct_type.a.7cc = converted %.loc11_27.1, %.loc11_27.3 [template = constants.%struct] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_4, %int.convert_checked [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_27.3: init %struct_type.a.ba9 = struct_init (%.loc11_27.2) to file.%x.var [template = constants.%struct] +// CHECK:STDOUT: %.loc11_28: init %struct_type.a.ba9 = converted %.loc11_27.1, %.loc11_27.3 [template = constants.%struct] // CHECK:STDOUT: assign file.%x.var, %.loc11_28 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.7cc = name_ref x, file.%x +// CHECK:STDOUT: %x.ref: ref %struct_type.a.ba9 = name_ref x, file.%x // 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 4b943142a288..ed8f41d156c6 100644 --- a/toolchain/check/testdata/struct/fail_too_few_values.carbon +++ b/toolchain/check/testdata/struct/fail_too_few_values.carbon @@ -25,7 +25,7 @@ var x: {.a: i32, .b: i32} = {.a = 1}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_type_assign.carbon b/toolchain/check/testdata/struct/fail_type_assign.carbon index c5cd444dda9d..8e24511caaac 100644 --- a/toolchain/check/testdata/struct/fail_type_assign.carbon +++ b/toolchain/check/testdata/struct/fail_type_assign.carbon @@ -26,8 +26,8 @@ var x: {.a: i32} = {.a: i32}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_value_as_type.carbon b/toolchain/check/testdata/struct/fail_value_as_type.carbon index 70af13bab2cc..9b0f2925ae5c 100644 --- a/toolchain/check/testdata/struct/fail_value_as_type.carbon +++ b/toolchain/check/testdata/struct/fail_value_as_type.carbon @@ -23,7 +23,7 @@ var x: {.a = 1}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/import.carbon b/toolchain/check/testdata/struct/import.carbon index 9008f325c7d0..73d3813486d4 100644 --- a/toolchain/check/testdata/struct/import.carbon +++ b/toolchain/check/testdata/struct/import.carbon @@ -56,53 +56,53 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.7cc: type = struct_type {.a: %i32} [template] +// CHECK:STDOUT: %struct_type.a.ba9: type = struct_type {.a: %i32} [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %struct.96f: %struct_type.a.7cc = struct_value (%int_0.f61) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] -// CHECK:STDOUT: %struct_type.b.c.879: type = struct_type {.b: %i32, .c: %tuple.type.0e4} [template] -// CHECK:STDOUT: %struct_type.a.d.1e9: type = struct_type {.a: %struct_type.b.c.879, .d: %i32} [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %struct.92d: %struct_type.a.ba9 = struct_value (%int_0.6a9) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %struct_type.b.c.929: type = struct_type {.b: %i32, .c: %tuple.type.a1c} [template] +// CHECK:STDOUT: %struct_type.a.d.3d9: type = struct_type {.a: %struct_type.b.c.929, .d: %i32} [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] // CHECK:STDOUT: %struct_type.b.c.9af: type = struct_type {.b: Core.IntLiteral, .c: %tuple.type.985} [template] // CHECK:STDOUT: %struct_type.a.d.b82: type = struct_type {.a: %struct_type.b.c.9af, .d: Core.IntLiteral} [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_0.f61) [template] -// CHECK:STDOUT: %struct.d06: %struct_type.b.c.879 = struct_value (%int_0.f61, %tuple) [template] -// CHECK:STDOUT: %struct.34f: %struct_type.a.d.1e9 = struct_value (%struct.d06, %int_0.f61) [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %S: %struct_type.a.b.3de = bind_symbolic_name S, 0 [symbolic] -// CHECK:STDOUT: %S.patt: %struct_type.a.b.3de = symbolic_binding_pattern S, 0 [symbolic] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_0.6a9) [template] +// CHECK:STDOUT: %struct.381: %struct_type.b.c.929 = struct_value (%int_0.6a9, %tuple) [template] +// CHECK:STDOUT: %struct.20d: %struct_type.a.d.3d9 = struct_value (%struct.381, %int_0.6a9) [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %S: %struct_type.a.b.501 = bind_symbolic_name S, 0 [symbolic] +// CHECK:STDOUT: %S.patt: %struct_type.a.b.501 = symbolic_binding_pattern S, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.c61: type = class_type @C, @C(%S) [symbolic] +// CHECK:STDOUT: %C.775: type = class_type @C, @C(%S) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %struct.889: %struct_type.a.b.3de = struct_value (%int_1.c60, %int_2.166) [template] -// CHECK:STDOUT: %C.61d: type = class_type @C, @C(%struct.889) [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %struct.ed5: %struct_type.a.b.501 = struct_value (%int_1.5d2, %int_2.ef8) [template] +// CHECK:STDOUT: %C.c8f: type = class_type @C, @C(%struct.ed5) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -117,55 +117,55 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a_ref.var: ref %struct_type.a.7cc = var a_ref -// CHECK:STDOUT: %a_ref: ref %struct_type.a.7cc = bind_name a_ref, %a_ref.var -// CHECK:STDOUT: %b_ref.var: ref %struct_type.a.d.1e9 = var b_ref -// CHECK:STDOUT: %b_ref: ref %struct_type.a.d.1e9 = bind_name b_ref, %b_ref.var +// CHECK:STDOUT: %a_ref.var: ref %struct_type.a.ba9 = var a_ref +// CHECK:STDOUT: %a_ref: ref %struct_type.a.ba9 = bind_name a_ref, %a_ref.var +// CHECK:STDOUT: %b_ref.var: ref %struct_type.a.d.3d9 = var b_ref +// CHECK:STDOUT: %b_ref: ref %struct_type.a.d.3d9 = bind_name b_ref, %b_ref.var // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [template = constants.%C.generic] { -// CHECK:STDOUT: %S.patt.loc8_9.1: %struct_type.a.b.3de = symbolic_binding_pattern S, 0 [symbolic = %S.patt.loc8_9.2 (constants.%S.patt)] -// CHECK:STDOUT: %S.param_patt: %struct_type.a.b.3de = value_param_pattern %S.patt.loc8_9.1, runtime_param [symbolic = %S.patt.loc8_9.2 (constants.%S.patt)] +// CHECK:STDOUT: %S.patt.loc8_9.1: %struct_type.a.b.501 = symbolic_binding_pattern S, 0 [symbolic = %S.patt.loc8_9.2 (constants.%S.patt)] +// CHECK:STDOUT: %S.param_patt: %struct_type.a.b.501 = value_param_pattern %S.patt.loc8_9.1, runtime_param [symbolic = %S.patt.loc8_9.2 (constants.%S.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %S.param: %struct_type.a.b.3de = value_param runtime_param -// CHECK:STDOUT: %.loc8: type = splice_block %struct_type.a.b [template = constants.%struct_type.a.b.3de] { +// CHECK:STDOUT: %S.param: %struct_type.a.b.501 = value_param runtime_param +// CHECK:STDOUT: %.loc8: type = splice_block %struct_type.a.b [template = constants.%struct_type.a.b.501] { // CHECK:STDOUT: %int_32.loc8_18: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc8_18: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc8_27: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc8_27: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b.3de] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [template = constants.%struct_type.a.b.501] // CHECK:STDOUT: } -// CHECK:STDOUT: %S.loc8_9.1: %struct_type.a.b.3de = bind_symbolic_name S, 0, %S.param [symbolic = %S.loc8_9.2 (constants.%S)] +// CHECK:STDOUT: %S.loc8_9.1: %struct_type.a.b.501 = bind_symbolic_name S, 0, %S.param [symbolic = %S.loc8_9.2 (constants.%S)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %return.patt: %C.61d = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.61d = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.c8f = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.c8f = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc9_28.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc9_28.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc9_28.1: = bound_method %int_1, %impl.elem0.loc9_28.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc9_28.1: = specific_function %Convert.bound.loc9_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc9_28.1: init %i32 = call %Convert.specific_fn.loc9_28.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc9_28.2: %i32 = value_of_initializer %int.convert_checked.loc9_28.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc9_28.3: %i32 = converted %int_1, %.loc9_28.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc9_28.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc9_28.2: = bound_method %int_2, %impl.elem0.loc9_28.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc9_28.2: = specific_function %Convert.bound.loc9_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc9_28.2: init %i32 = call %Convert.specific_fn.loc9_28.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc9_28.4: %i32 = value_of_initializer %int.convert_checked.loc9_28.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc9_28.5: %i32 = converted %int_2, %.loc9_28.4 [template = constants.%int_2.166] -// CHECK:STDOUT: %struct: %struct_type.a.b.3de = struct_value (%.loc9_28.3, %.loc9_28.5) [template = constants.%struct.889] -// CHECK:STDOUT: %.loc9_29: %struct_type.a.b.3de = converted %.loc9_28.1, %struct [template = constants.%struct.889] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%struct.889) [template = constants.%C.61d] -// CHECK:STDOUT: %return.param: ref %C.61d = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.61d = return_slot %return.param +// CHECK:STDOUT: %impl.elem0.loc9_28.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc9_28.1: = bound_method %int_1, %impl.elem0.loc9_28.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc9_28.1: = specific_function %Convert.bound.loc9_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc9_28.1: init %i32 = call %Convert.specific_fn.loc9_28.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc9_28.2: %i32 = value_of_initializer %int.convert_checked.loc9_28.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc9_28.3: %i32 = converted %int_1, %.loc9_28.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc9_28.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc9_28.2: = bound_method %int_2, %impl.elem0.loc9_28.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc9_28.2: = specific_function %Convert.bound.loc9_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc9_28.2: init %i32 = call %Convert.specific_fn.loc9_28.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc9_28.4: %i32 = value_of_initializer %int.convert_checked.loc9_28.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc9_28.5: %i32 = converted %int_2, %.loc9_28.4 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %struct: %struct_type.a.b.501 = struct_value (%.loc9_28.3, %.loc9_28.5) [template = constants.%struct.ed5] +// CHECK:STDOUT: %.loc9_29: %struct_type.a.b.501 = converted %.loc9_28.1, %struct [template = constants.%struct.ed5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%struct.ed5) [template = constants.%C.c8f] +// CHECK:STDOUT: %return.param: ref %C.c8f = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.c8f = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%S.loc8_9.1: %struct_type.a.b.3de) { -// CHECK:STDOUT: %S.loc8_9.2: %struct_type.a.b.3de = bind_symbolic_name S, 0 [symbolic = %S.loc8_9.2 (constants.%S)] -// CHECK:STDOUT: %S.patt.loc8_9.2: %struct_type.a.b.3de = symbolic_binding_pattern S, 0 [symbolic = %S.patt.loc8_9.2 (constants.%S.patt)] +// CHECK:STDOUT: generic class @C(%S.loc8_9.1: %struct_type.a.b.501) { +// CHECK:STDOUT: %S.loc8_9.2: %struct_type.a.b.501 = bind_symbolic_name S, 0 [symbolic = %S.loc8_9.2 (constants.%S)] +// CHECK:STDOUT: %S.patt.loc8_9.2: %struct_type.a.b.501 = symbolic_binding_pattern S, 0 [symbolic = %S.patt.loc8_9.2 (constants.%S.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -173,24 +173,24 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.c61 +// CHECK:STDOUT: .Self = constants.%C.775 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %C.61d; +// CHECK:STDOUT: fn @F() -> %C.c8f; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0.loc4: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc4_31.1: %struct_type.a.a6c = struct_literal (%int_0.loc4) -// CHECK:STDOUT: %impl.elem0.loc4: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc4: = bound_method %int_0.loc4, %impl.elem0.loc4 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc4: = specific_function %Convert.bound.loc4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc4: init %i32 = call %Convert.specific_fn.loc4(%int_0.loc4) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4_31.2: init %i32 = converted %int_0.loc4, %int.convert_checked.loc4 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4_31.3: init %struct_type.a.7cc = struct_init (%.loc4_31.2) to file.%a_ref.var [template = constants.%struct.96f] -// CHECK:STDOUT: %.loc4_32: init %struct_type.a.7cc = converted %.loc4_31.1, %.loc4_31.3 [template = constants.%struct.96f] +// CHECK:STDOUT: %impl.elem0.loc4: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc4: = bound_method %int_0.loc4, %impl.elem0.loc4 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc4: = specific_function %Convert.bound.loc4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc4: init %i32 = call %Convert.specific_fn.loc4(%int_0.loc4) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4_31.2: init %i32 = converted %int_0.loc4, %int.convert_checked.loc4 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4_31.3: init %struct_type.a.ba9 = struct_init (%.loc4_31.2) to file.%a_ref.var [template = constants.%struct.92d] +// CHECK:STDOUT: %.loc4_32: init %struct_type.a.ba9 = converted %.loc4_31.1, %.loc4_31.3 [template = constants.%struct.92d] // CHECK:STDOUT: assign file.%a_ref.var, %.loc4_32 // CHECK:STDOUT: %int_0.loc6_17: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_0.loc6_26: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] @@ -198,34 +198,34 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %.loc6_29.1: %struct_type.b.c.9af = struct_literal (%int_0.loc6_17, %.loc6_28.1) // CHECK:STDOUT: %int_0.loc6_37: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc6_38.1: %struct_type.a.d.b82 = struct_literal (%.loc6_29.1, %int_0.loc6_37) -// CHECK:STDOUT: %impl.elem0.loc6_29: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc6_29: = bound_method %int_0.loc6_17, %impl.elem0.loc6_29 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc6_29: = specific_function %Convert.bound.loc6_29, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc6_29: init %i32 = call %Convert.specific_fn.loc6_29(%int_0.loc6_17) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_29.2: init %i32 = converted %int_0.loc6_17, %int.convert_checked.loc6_29 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_38.2: ref %struct_type.b.c.879 = struct_access file.%b_ref.var, element0 +// CHECK:STDOUT: %impl.elem0.loc6_29: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc6_29: = bound_method %int_0.loc6_17, %impl.elem0.loc6_29 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc6_29: = specific_function %Convert.bound.loc6_29, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc6_29: init %i32 = call %Convert.specific_fn.loc6_29(%int_0.loc6_17) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_29.2: init %i32 = converted %int_0.loc6_17, %int.convert_checked.loc6_29 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_38.2: ref %struct_type.b.c.929 = struct_access file.%b_ref.var, element0 // CHECK:STDOUT: %.loc6_29.3: ref %i32 = struct_access %.loc6_38.2, element0 -// CHECK:STDOUT: %.loc6_29.4: init %i32 = initialize_from %.loc6_29.2 to %.loc6_29.3 [template = constants.%int_0.f61] -// CHECK:STDOUT: %impl.elem0.loc6_28: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc6_28: = bound_method %int_0.loc6_26, %impl.elem0.loc6_28 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc6_28: = specific_function %Convert.bound.loc6_28, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc6_28: init %i32 = call %Convert.specific_fn.loc6_28(%int_0.loc6_26) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_28.2: init %i32 = converted %int_0.loc6_26, %int.convert_checked.loc6_28 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_29.5: ref %tuple.type.0e4 = struct_access %.loc6_38.2, element1 -// CHECK:STDOUT: %.loc6_28.3: init %tuple.type.0e4 = tuple_init (%.loc6_28.2) to %.loc6_29.5 [template = constants.%tuple] -// CHECK:STDOUT: %.loc6_29.6: init %tuple.type.0e4 = converted %.loc6_28.1, %.loc6_28.3 [template = constants.%tuple] -// CHECK:STDOUT: %.loc6_29.7: init %tuple.type.0e4 = initialize_from %.loc6_29.6 to %.loc6_29.5 [template = constants.%tuple] -// CHECK:STDOUT: %.loc6_29.8: init %struct_type.b.c.879 = struct_init (%.loc6_29.4, %.loc6_29.7) to %.loc6_38.2 [template = constants.%struct.d06] -// CHECK:STDOUT: %.loc6_38.3: init %struct_type.b.c.879 = converted %.loc6_29.1, %.loc6_29.8 [template = constants.%struct.d06] -// CHECK:STDOUT: %impl.elem0.loc6_38: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc6_38: = bound_method %int_0.loc6_37, %impl.elem0.loc6_38 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc6_38: = specific_function %Convert.bound.loc6_38, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc6_38: init %i32 = call %Convert.specific_fn.loc6_38(%int_0.loc6_37) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_38.4: init %i32 = converted %int_0.loc6_37, %int.convert_checked.loc6_38 [template = constants.%int_0.f61] +// CHECK:STDOUT: %.loc6_29.4: init %i32 = initialize_from %.loc6_29.2 to %.loc6_29.3 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %impl.elem0.loc6_28: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc6_28: = bound_method %int_0.loc6_26, %impl.elem0.loc6_28 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc6_28: = specific_function %Convert.bound.loc6_28, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc6_28: init %i32 = call %Convert.specific_fn.loc6_28(%int_0.loc6_26) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_28.2: init %i32 = converted %int_0.loc6_26, %int.convert_checked.loc6_28 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_29.5: ref %tuple.type.a1c = struct_access %.loc6_38.2, element1 +// CHECK:STDOUT: %.loc6_28.3: init %tuple.type.a1c = tuple_init (%.loc6_28.2) to %.loc6_29.5 [template = constants.%tuple] +// CHECK:STDOUT: %.loc6_29.6: init %tuple.type.a1c = converted %.loc6_28.1, %.loc6_28.3 [template = constants.%tuple] +// CHECK:STDOUT: %.loc6_29.7: init %tuple.type.a1c = initialize_from %.loc6_29.6 to %.loc6_29.5 [template = constants.%tuple] +// CHECK:STDOUT: %.loc6_29.8: init %struct_type.b.c.929 = struct_init (%.loc6_29.4, %.loc6_29.7) to %.loc6_38.2 [template = constants.%struct.381] +// CHECK:STDOUT: %.loc6_38.3: init %struct_type.b.c.929 = converted %.loc6_29.1, %.loc6_29.8 [template = constants.%struct.381] +// CHECK:STDOUT: %impl.elem0.loc6_38: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc6_38: = bound_method %int_0.loc6_37, %impl.elem0.loc6_38 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc6_38: = specific_function %Convert.bound.loc6_38, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc6_38: init %i32 = call %Convert.specific_fn.loc6_38(%int_0.loc6_37) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_38.4: init %i32 = converted %int_0.loc6_37, %int.convert_checked.loc6_38 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc6_38.5: ref %i32 = struct_access file.%b_ref.var, element1 -// CHECK:STDOUT: %.loc6_38.6: init %i32 = initialize_from %.loc6_38.4 to %.loc6_38.5 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc6_38.7: init %struct_type.a.d.1e9 = struct_init (%.loc6_38.3, %.loc6_38.6) to file.%b_ref.var [template = constants.%struct.34f] -// CHECK:STDOUT: %.loc6_39: init %struct_type.a.d.1e9 = converted %.loc6_38.1, %.loc6_38.7 [template = constants.%struct.34f] +// CHECK:STDOUT: %.loc6_38.6: init %i32 = initialize_from %.loc6_38.4 to %.loc6_38.5 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc6_38.7: init %struct_type.a.d.3d9 = struct_init (%.loc6_38.3, %.loc6_38.6) to file.%b_ref.var [template = constants.%struct.20d] +// CHECK:STDOUT: %.loc6_39: init %struct_type.a.d.3d9 = converted %.loc6_38.1, %.loc6_38.7 [template = constants.%struct.20d] // CHECK:STDOUT: assign file.%b_ref.var, %.loc6_39 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -235,9 +235,9 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %S.patt.loc8_9.2 => constants.%S // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%struct.889) { -// CHECK:STDOUT: %S.loc8_9.2 => constants.%struct.889 -// CHECK:STDOUT: %S.patt.loc8_9.2 => constants.%struct.889 +// CHECK:STDOUT: specific @C(constants.%struct.ed5) { +// CHECK:STDOUT: %S.loc8_9.2 => constants.%struct.ed5 +// CHECK:STDOUT: %S.patt.loc8_9.2 => constants.%struct.ed5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- implicit.impl.carbon @@ -246,45 +246,45 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [template] -// CHECK:STDOUT: %tuple.type.590: type = tuple_type (%i32) [template] -// CHECK:STDOUT: %struct_type.b.c: type = struct_type {.b: %i32, .c: %tuple.type.590} [template] -// CHECK:STDOUT: %struct_type.a.d.b93: type = struct_type {.a: %struct_type.b.c, .d: %i32} [template] +// CHECK:STDOUT: %tuple.type.dd4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %struct_type.b.c: type = struct_type {.b: %i32, .c: %tuple.type.dd4} [template] +// CHECK:STDOUT: %struct_type.a.d.9db: type = struct_type {.a: %struct_type.b.c, .d: %i32} [template] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %struct_type.a.b.29a: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %S: %struct_type.a.b.29a = bind_symbolic_name S, 0 [symbolic] -// CHECK:STDOUT: %S.patt: %struct_type.a.b.29a = symbolic_binding_pattern S, 0 [symbolic] -// CHECK:STDOUT: %int_1.059: %i32 = int_value 1 [template] -// CHECK:STDOUT: %int_2.ed9: %i32 = int_value 2 [template] -// CHECK:STDOUT: %struct: %struct_type.a.b.29a = struct_value (%int_1.059, %int_2.ed9) [template] -// CHECK:STDOUT: %C.c37: type = class_type @C, @C(%struct) [template] +// CHECK:STDOUT: %struct_type.a.b.5ca: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %S: %struct_type.a.b.5ca = bind_symbolic_name S, 0 [symbolic] +// CHECK:STDOUT: %S.patt: %struct_type.a.b.5ca = symbolic_binding_pattern S, 0 [symbolic] +// CHECK:STDOUT: %int_1.47b: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_2.d0d: %i32 = int_value 2 [template] +// CHECK:STDOUT: %struct: %struct_type.a.b.5ca = struct_value (%int_1.47b, %int_2.d0d) [template] +// CHECK:STDOUT: %C.a8a: type = class_type @C, @C(%struct) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.cd5: ref %struct_type.a = import_ref Implicit//default, a_ref, loaded -// CHECK:STDOUT: %import_ref.8492: ref %struct_type.a.d.b93 = import_ref Implicit//default, b_ref, loaded -// CHECK:STDOUT: %import_ref.c8a: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.f0f: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.61d: ref %struct_type.a = import_ref Implicit//default, a_ref, loaded +// CHECK:STDOUT: %import_ref.1d0: ref %struct_type.a.d.9db = import_ref Implicit//default, b_ref, loaded +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 -// CHECK:STDOUT: .ImplicitAs = %import_ref.edd +// CHECK:STDOUT: .Int = %import_ref.2c8 +// CHECK:STDOUT: .ImplicitAs = %import_ref.e26 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Implicit//default, loc8_34, loaded [template = constants.%complete_type.357] -// CHECK:STDOUT: %import_ref.5c7 = import_ref Implicit//default, inst1061 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b8b = import_ref Implicit//default, inst1061 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .a_ref = imports.%import_ref.cd5 -// CHECK:STDOUT: .b_ref = imports.%import_ref.8492 -// CHECK:STDOUT: .C = imports.%import_ref.c8a -// CHECK:STDOUT: .F = imports.%import_ref.f0f +// CHECK:STDOUT: .a_ref = imports.%import_ref.61d +// CHECK:STDOUT: .b_ref = imports.%import_ref.1d0 +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a // CHECK:STDOUT: .b = %b @@ -295,61 +295,61 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %a.var: ref %struct_type.a = var a // CHECK:STDOUT: %a: ref %struct_type.a = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %struct_type.a.d.b93 = var b -// CHECK:STDOUT: %b: ref %struct_type.a.d.b93 = bind_name b, %b.var -// CHECK:STDOUT: %c.var: ref %C.c37 = var c -// CHECK:STDOUT: %c: ref %C.c37 = bind_name c, %c.var +// CHECK:STDOUT: %b.var: ref %struct_type.a.d.9db = var b +// CHECK:STDOUT: %b: ref %struct_type.a.d.9db = bind_name b, %b.var +// CHECK:STDOUT: %c.var: ref %C.a8a = var c +// CHECK:STDOUT: %c: ref %C.a8a = bind_name c, %c.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(constants.%S: %struct_type.a.b.29a) [from "implicit.carbon"] { -// CHECK:STDOUT: %S: %struct_type.a.b.29a = bind_symbolic_name S, 0 [symbolic = %S (constants.%S)] -// CHECK:STDOUT: %S.patt: %struct_type.a.b.29a = symbolic_binding_pattern S, 0 [symbolic = %S.patt (constants.%S.patt)] +// CHECK:STDOUT: generic class @C(constants.%S: %struct_type.a.b.5ca) [from "implicit.carbon"] { +// CHECK:STDOUT: %S: %struct_type.a.b.5ca = bind_symbolic_name S, 0 [symbolic = %S (constants.%S)] +// CHECK:STDOUT: %S.patt: %struct_type.a.b.5ca = symbolic_binding_pattern S, 0 [symbolic = %S.patt (constants.%S.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.5c7 +// CHECK:STDOUT: .Self = imports.%import_ref.b8b // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %C.c37 [from "implicit.carbon"]; +// CHECK:STDOUT: fn @F() -> %C.a8a [from "implicit.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a_ref.ref: ref %struct_type.a = name_ref a_ref, imports.%import_ref.cd5 +// CHECK:STDOUT: %a_ref.ref: ref %struct_type.a = name_ref a_ref, imports.%import_ref.61d // CHECK:STDOUT: %.loc4_20.1: ref %i32 = struct_access %a_ref.ref, element0 // CHECK:STDOUT: %.loc4_20.2: %i32 = bind_value %.loc4_20.1 // CHECK:STDOUT: %.loc4_20.3: init %struct_type.a = struct_init (%.loc4_20.2) to file.%a.var // CHECK:STDOUT: %.loc4_25: init %struct_type.a = converted %a_ref.ref, %.loc4_20.3 // CHECK:STDOUT: assign file.%a.var, %.loc4_25 -// CHECK:STDOUT: %b_ref.ref: ref %struct_type.a.d.b93 = name_ref b_ref, imports.%import_ref.8492 +// CHECK:STDOUT: %b_ref.ref: ref %struct_type.a.d.9db = name_ref b_ref, imports.%import_ref.1d0 // CHECK:STDOUT: %.loc5_47.1: ref %struct_type.b.c = struct_access %b_ref.ref, element0 // CHECK:STDOUT: %.loc5_47.2: ref %i32 = struct_access %.loc5_47.1, element0 // CHECK:STDOUT: %.loc5_47.3: %i32 = bind_value %.loc5_47.2 // CHECK:STDOUT: %.loc5_47.4: ref %struct_type.b.c = struct_access file.%b.var, element0 // CHECK:STDOUT: %.loc5_47.5: ref %i32 = struct_access %.loc5_47.4, element0 // CHECK:STDOUT: %.loc5_47.6: init %i32 = initialize_from %.loc5_47.3 to %.loc5_47.5 -// CHECK:STDOUT: %.loc5_47.7: ref %tuple.type.590 = struct_access %.loc5_47.1, element1 +// CHECK:STDOUT: %.loc5_47.7: ref %tuple.type.dd4 = struct_access %.loc5_47.1, element1 // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc5_47.7, element0 // CHECK:STDOUT: %.loc5_47.8: %i32 = bind_value %tuple.elem0 -// CHECK:STDOUT: %.loc5_47.9: ref %tuple.type.590 = struct_access %.loc5_47.4, element1 -// CHECK:STDOUT: %.loc5_47.10: init %tuple.type.590 = tuple_init (%.loc5_47.8) to %.loc5_47.9 -// CHECK:STDOUT: %.loc5_47.11: init %tuple.type.590 = converted %.loc5_47.7, %.loc5_47.10 -// CHECK:STDOUT: %.loc5_47.12: init %tuple.type.590 = initialize_from %.loc5_47.11 to %.loc5_47.9 +// CHECK:STDOUT: %.loc5_47.9: ref %tuple.type.dd4 = struct_access %.loc5_47.4, element1 +// CHECK:STDOUT: %.loc5_47.10: init %tuple.type.dd4 = tuple_init (%.loc5_47.8) to %.loc5_47.9 +// CHECK:STDOUT: %.loc5_47.11: init %tuple.type.dd4 = converted %.loc5_47.7, %.loc5_47.10 +// CHECK:STDOUT: %.loc5_47.12: init %tuple.type.dd4 = initialize_from %.loc5_47.11 to %.loc5_47.9 // CHECK:STDOUT: %.loc5_47.13: init %struct_type.b.c = struct_init (%.loc5_47.6, %.loc5_47.12) to %.loc5_47.4 // CHECK:STDOUT: %.loc5_47.14: init %struct_type.b.c = converted %.loc5_47.1, %.loc5_47.13 // CHECK:STDOUT: %.loc5_47.15: ref %i32 = struct_access %b_ref.ref, element1 // CHECK:STDOUT: %.loc5_47.16: %i32 = bind_value %.loc5_47.15 // CHECK:STDOUT: %.loc5_47.17: ref %i32 = struct_access file.%b.var, element1 // CHECK:STDOUT: %.loc5_47.18: init %i32 = initialize_from %.loc5_47.16 to %.loc5_47.17 -// CHECK:STDOUT: %.loc5_47.19: init %struct_type.a.d.b93 = struct_init (%.loc5_47.14, %.loc5_47.18) to file.%b.var -// CHECK:STDOUT: %.loc5_52: init %struct_type.a.d.b93 = converted %b_ref.ref, %.loc5_47.19 +// CHECK:STDOUT: %.loc5_47.19: init %struct_type.a.d.9db = struct_init (%.loc5_47.14, %.loc5_47.18) to file.%b.var +// CHECK:STDOUT: %.loc5_52: init %struct_type.a.d.9db = converted %b_ref.ref, %.loc5_47.19 // CHECK:STDOUT: assign file.%b.var, %.loc5_52 -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.f0f [template = constants.%F] -// CHECK:STDOUT: %.loc6: ref %C.c37 = splice_block file.%c.var {} -// CHECK:STDOUT: %F.call: init %C.c37 = call %F.ref() to %.loc6 +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] +// CHECK:STDOUT: %.loc6: ref %C.a8a = splice_block file.%c.var {} +// CHECK:STDOUT: %F.call: init %C.a8a = call %F.ref() to %.loc6 // CHECK:STDOUT: assign file.%c.var, %F.call // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -380,31 +380,31 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %S.patt: %struct_type.a.b = symbolic_binding_pattern S, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %int_2.ed9: %i32 = int_value 2 [template] -// CHECK:STDOUT: %int_1.059: %i32 = int_value 1 [template] -// CHECK:STDOUT: %struct: %struct_type.a.b = struct_value (%int_1.059, %int_2.ed9) [template] -// CHECK:STDOUT: %C.c37: type = class_type @C, @C(%struct) [template] +// CHECK:STDOUT: %int_2.d0d: %i32 = int_value 2 [template] +// CHECK:STDOUT: %int_1.47b: %i32 = int_value 1 [template] +// CHECK:STDOUT: %struct: %struct_type.a.b = struct_value (%int_1.47b, %int_2.d0d) [template] +// CHECK:STDOUT: %C.a8a: type = class_type @C, @C(%struct) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.970 = import_ref Implicit//default, a_ref, unloaded -// CHECK:STDOUT: %import_ref.dfd = import_ref Implicit//default, b_ref, unloaded -// CHECK:STDOUT: %import_ref.c8a: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.f0f: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.f64 = import_ref Implicit//default, a_ref, unloaded +// CHECK:STDOUT: %import_ref.4fb = import_ref Implicit//default, b_ref, unloaded +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Implicit//default, loc8_34, loaded [template = constants.%complete_type.357] -// CHECK:STDOUT: %import_ref.5c7 = import_ref Implicit//default, inst1061 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b8b = import_ref Implicit//default, inst1061 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .a_ref = imports.%import_ref.970 -// CHECK:STDOUT: .b_ref = imports.%import_ref.dfd -// CHECK:STDOUT: .C = imports.%import_ref.c8a -// CHECK:STDOUT: .F = imports.%import_ref.f0f +// CHECK:STDOUT: .a_ref = imports.%import_ref.f64 +// CHECK:STDOUT: .b_ref = imports.%import_ref.4fb +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .c_bad = %c_bad // CHECK:STDOUT: } @@ -423,18 +423,18 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.5c7 +// CHECK:STDOUT: .Self = imports.%import_ref.b8b // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %C.c37 [from "implicit.carbon"]; +// CHECK:STDOUT: fn @F() -> %C.a8a [from "implicit.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.f0f [template = constants.%F] -// CHECK:STDOUT: %.loc11: ref %C.c37 = temporary_storage -// CHECK:STDOUT: %F.call: init %C.c37 = call %F.ref() to %.loc11 +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] +// CHECK:STDOUT: %.loc11: ref %C.a8a = temporary_storage +// CHECK:STDOUT: %F.call: init %C.a8a = call %F.ref() to %.loc11 // CHECK:STDOUT: assign file.%c_bad.var, // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -460,72 +460,72 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %struct_type.a.b.29a: type = struct_type {.a: %i32, .b: %i32} [template] -// CHECK:STDOUT: %S: %struct_type.a.b.29a = bind_symbolic_name S, 0 [symbolic] -// CHECK:STDOUT: %S.patt: %struct_type.a.b.29a = symbolic_binding_pattern S, 0 [symbolic] -// CHECK:STDOUT: %int_3.781: %i32 = int_value 3 [template] -// CHECK:STDOUT: %int_4.1ad: %i32 = int_value 4 [template] -// CHECK:STDOUT: %struct.c02: %struct_type.a.b.29a = struct_value (%int_3.781, %int_4.1ad) [template] -// CHECK:STDOUT: %C.729: type = class_type @C, @C(%struct.c02) [template] +// CHECK:STDOUT: %struct_type.a.b.5ca: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %S: %struct_type.a.b.5ca = bind_symbolic_name S, 0 [symbolic] +// CHECK:STDOUT: %S.patt: %struct_type.a.b.5ca = symbolic_binding_pattern S, 0 [symbolic] +// CHECK:STDOUT: %int_3.d47: %i32 = int_value 3 [template] +// CHECK:STDOUT: %int_4.ea3: %i32 = int_value 4 [template] +// CHECK:STDOUT: %struct.8e6: %struct_type.a.b.5ca = struct_value (%int_3.d47, %int_4.ea3) [template] +// CHECK:STDOUT: %C.5a7: type = class_type @C, @C(%struct.8e6) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_2: %i32 = int_value 2 [template] // CHECK:STDOUT: %int_1: %i32 = int_value 1 [template] -// CHECK:STDOUT: %struct.778: %struct_type.a.b.29a = struct_value (%int_1, %int_2) [template] -// CHECK:STDOUT: %C.c37: type = class_type @C, @C(%struct.778) [template] +// CHECK:STDOUT: %struct.cd9: %struct_type.a.b.5ca = struct_value (%int_1, %int_2) [template] +// CHECK:STDOUT: %C.a8a: type = class_type @C, @C(%struct.cd9) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.970 = import_ref Implicit//default, a_ref, unloaded -// CHECK:STDOUT: %import_ref.dfd = import_ref Implicit//default, b_ref, unloaded -// CHECK:STDOUT: %import_ref.c8a: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.f0f: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.f64 = import_ref Implicit//default, a_ref, unloaded +// CHECK:STDOUT: %import_ref.4fb = import_ref Implicit//default, b_ref, unloaded +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.edd +// CHECK:STDOUT: .ImplicitAs = %import_ref.e26 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Implicit//default, loc8_34, loaded [template = constants.%complete_type.357] -// CHECK:STDOUT: %import_ref.5c7 = import_ref Implicit//default, inst1061 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b8b = import_ref Implicit//default, inst1061 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .a_ref = imports.%import_ref.970 -// CHECK:STDOUT: .b_ref = imports.%import_ref.dfd -// CHECK:STDOUT: .C = imports.%import_ref.c8a -// CHECK:STDOUT: .F = imports.%import_ref.f0f +// CHECK:STDOUT: .a_ref = imports.%import_ref.f64 +// CHECK:STDOUT: .b_ref = imports.%import_ref.4fb +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .c_bad = %c_bad // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import = import Implicit // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %c_bad.var: ref %C.729 = var c_bad -// CHECK:STDOUT: %c_bad: ref %C.729 = bind_name c_bad, %c_bad.var +// CHECK:STDOUT: %c_bad.var: ref %C.5a7 = var c_bad +// CHECK:STDOUT: %c_bad: ref %C.5a7 = bind_name c_bad, %c_bad.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(constants.%S: %struct_type.a.b.29a) [from "implicit.carbon"] { -// CHECK:STDOUT: %S: %struct_type.a.b.29a = bind_symbolic_name S, 0 [symbolic = %S (constants.%S)] -// CHECK:STDOUT: %S.patt: %struct_type.a.b.29a = symbolic_binding_pattern S, 0 [symbolic = %S.patt (constants.%S.patt)] +// CHECK:STDOUT: generic class @C(constants.%S: %struct_type.a.b.5ca) [from "implicit.carbon"] { +// CHECK:STDOUT: %S: %struct_type.a.b.5ca = bind_symbolic_name S, 0 [symbolic = %S (constants.%S)] +// CHECK:STDOUT: %S.patt: %struct_type.a.b.5ca = symbolic_binding_pattern S, 0 [symbolic = %S.patt (constants.%S.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.5c7 +// CHECK:STDOUT: .Self = imports.%import_ref.b8b // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %C.c37 [from "implicit.carbon"]; +// CHECK:STDOUT: fn @F() -> %C.a8a [from "implicit.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.f0f [template = constants.%F] -// CHECK:STDOUT: %.loc9_36: ref %C.c37 = temporary_storage -// CHECK:STDOUT: %F.call: init %C.c37 = call %F.ref() to %.loc9_36 -// CHECK:STDOUT: %.loc9_37: %C.729 = converted %F.call, [template = ] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] +// CHECK:STDOUT: %.loc9_36: ref %C.a8a = temporary_storage +// CHECK:STDOUT: %F.call: init %C.a8a = call %F.ref() to %.loc9_36 +// CHECK:STDOUT: %.loc9_37: %C.5a7 = converted %F.call, [template = ] // CHECK:STDOUT: assign file.%c_bad.var, // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -535,16 +535,16 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %S.patt => constants.%S // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%struct.c02) { -// CHECK:STDOUT: %S => constants.%struct.c02 -// CHECK:STDOUT: %S.patt => constants.%struct.c02 +// CHECK:STDOUT: specific @C(constants.%struct.8e6) { +// CHECK:STDOUT: %S => constants.%struct.8e6 +// CHECK:STDOUT: %S.patt => constants.%struct.8e6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%struct.778) { -// CHECK:STDOUT: %S => constants.%struct.778 -// CHECK:STDOUT: %S.patt => constants.%struct.778 +// CHECK:STDOUT: specific @C(constants.%struct.cd9) { +// CHECK:STDOUT: %S => constants.%struct.cd9 +// CHECK:STDOUT: %S.patt => constants.%struct.cd9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/literal_member_access.carbon b/toolchain/check/testdata/struct/literal_member_access.carbon index 1f84dc272176..6e50e01565e0 100644 --- a/toolchain/check/testdata/struct/literal_member_access.carbon +++ b/toolchain/check/testdata/struct/literal_member_access.carbon @@ -26,12 +26,12 @@ fn F() -> i32 { // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] -// CHECK:STDOUT: %struct_type.a.b.c.611: type = struct_type {.a: Core.IntLiteral, .b: %struct_type.x.y.z, .c: Core.IntLiteral} [template] +// CHECK:STDOUT: %struct_type.a.b.c.4ca: type = struct_type {.a: Core.IntLiteral, .b: %struct_type.x.y.z, .c: Core.IntLiteral} [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -78,7 +78,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc14_26.1: ref %struct_type.x.y.z = temporary_storage // CHECK:STDOUT: %G.call: init %struct_type.x.y.z = call %G.ref() to %.loc14_26.1 // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3] -// CHECK:STDOUT: %.loc14_35.1: %struct_type.a.b.c.611 = struct_literal (%int_1, %G.call, %int_3) +// CHECK:STDOUT: %.loc14_35.1: %struct_type.a.b.c.4ca = struct_literal (%int_1, %G.call, %int_3) // CHECK:STDOUT: %.loc14_26.2: ref %struct_type.x.y.z = temporary %.loc14_26.1, %G.call // CHECK:STDOUT: %.loc14_26.3: ref %i32 = struct_access %.loc14_26.2, element0 // CHECK:STDOUT: %.loc14_26.4: %i32 = bind_value %.loc14_26.3 @@ -88,8 +88,8 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc14_26.8: %i32 = bind_value %.loc14_26.7 // CHECK:STDOUT: %struct.loc14_26: %struct_type.x.y.z = struct_value (%.loc14_26.4, %.loc14_26.6, %.loc14_26.8) // CHECK:STDOUT: %.loc14_35.2: %struct_type.x.y.z = converted %G.call, %struct.loc14_26 -// CHECK:STDOUT: %struct.loc14_35: %struct_type.a.b.c.611 = struct_value (%int_1, %.loc14_35.2, %int_3) -// CHECK:STDOUT: %.loc14_35.3: %struct_type.a.b.c.611 = converted %.loc14_35.1, %struct.loc14_35 +// CHECK:STDOUT: %struct.loc14_35: %struct_type.a.b.c.4ca = struct_value (%int_1, %.loc14_35.2, %int_3) +// CHECK:STDOUT: %.loc14_35.3: %struct_type.a.b.c.4ca = converted %.loc14_35.1, %struct.loc14_35 // CHECK:STDOUT: %.loc14_36: %struct_type.x.y.z = struct_access %.loc14_35.3, element1 // CHECK:STDOUT: %.loc14_38: %i32 = struct_access %.loc14_36, element1 // CHECK:STDOUT: return %.loc14_38 diff --git a/toolchain/check/testdata/struct/member_access.carbon b/toolchain/check/testdata/struct/member_access.carbon index 42e5291679a4..27224aa8af71 100644 --- a/toolchain/check/testdata/struct/member_access.carbon +++ b/toolchain/check/testdata/struct/member_access.carbon @@ -17,25 +17,25 @@ var z: i32 = y; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.b.95f: type = struct_type {.a: f64, .b: %i32} [template] +// CHECK:STDOUT: %struct_type.a.b.ddf: type = struct_type {.a: f64, .b: %i32} [template] // CHECK:STDOUT: %float: f64 = float_literal 0 [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.a.b.fbb: type = struct_type {.a: f64, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %struct: %struct_type.a.b.95f = struct_value (%float, %int_1.c60) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %struct: %struct_type.a.b.ddf = struct_value (%float, %int_1.5d2) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Float = %import_ref.20bd -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -49,8 +49,8 @@ var z: i32 = y; // CHECK:STDOUT: .z = %z // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %struct_type.a.b.95f = var x -// CHECK:STDOUT: %x: ref %struct_type.a.b.95f = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %struct_type.a.b.ddf = var x +// CHECK:STDOUT: %x: ref %struct_type.a.b.ddf = bind_name x, %x.var // CHECK:STDOUT: %y.var: ref %i32 = var y // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var // CHECK:STDOUT: %z.var: ref %i32 = var z @@ -64,17 +64,17 @@ var z: i32 = y; // CHECK:STDOUT: %.loc11_46.1: %struct_type.a.b.fbb = struct_literal (%float, %int_1) // CHECK:STDOUT: %.loc11_46.2: ref f64 = struct_access file.%x.var, element0 // CHECK:STDOUT: %.loc11_46.3: init f64 = initialize_from %float to %.loc11_46.2 [template = constants.%float] -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_46.4: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.c60] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_46.4: init %i32 = converted %int_1, %int.convert_checked [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc11_46.5: ref %i32 = struct_access file.%x.var, element1 -// CHECK:STDOUT: %.loc11_46.6: init %i32 = initialize_from %.loc11_46.4 to %.loc11_46.5 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_46.7: init %struct_type.a.b.95f = struct_init (%.loc11_46.3, %.loc11_46.6) to file.%x.var [template = constants.%struct] -// CHECK:STDOUT: %.loc11_47: init %struct_type.a.b.95f = converted %.loc11_46.1, %.loc11_46.7 [template = constants.%struct] +// CHECK:STDOUT: %.loc11_46.6: init %i32 = initialize_from %.loc11_46.4 to %.loc11_46.5 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_46.7: init %struct_type.a.b.ddf = struct_init (%.loc11_46.3, %.loc11_46.6) to file.%x.var [template = constants.%struct] +// CHECK:STDOUT: %.loc11_47: init %struct_type.a.b.ddf = converted %.loc11_46.1, %.loc11_46.7 [template = constants.%struct] // CHECK:STDOUT: assign file.%x.var, %.loc11_47 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.95f = name_ref x, file.%x +// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.ddf = name_ref x, file.%x // CHECK:STDOUT: %.loc12_15.1: ref %i32 = struct_access %x.ref, element1 // CHECK:STDOUT: %.loc12_15.2: %i32 = bind_value %.loc12_15.1 // CHECK:STDOUT: assign file.%y.var, %.loc12_15.2 diff --git a/toolchain/check/testdata/struct/nested_struct_in_place.carbon b/toolchain/check/testdata/struct/nested_struct_in_place.carbon index b51274f458c9..74da148ee45e 100644 --- a/toolchain/check/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/check/testdata/struct/nested_struct_in_place.carbon @@ -20,17 +20,17 @@ fn G() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [template] -// CHECK:STDOUT: %tuple.type.dc6: type = tuple_type (%i32, %i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.189: type = tuple_type (%i32, %i32, %i32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %struct_type.a.b.890: type = struct_type {.a: %tuple.type.dc6, .b: %tuple.type.dc6} [template] +// CHECK:STDOUT: %struct_type.a.b.2f9: type = struct_type {.a: %tuple.type.189, .b: %tuple.type.189} [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -44,8 +44,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %return.patt: %tuple.type.dc6 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.dc6 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.189 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.189 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_12: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] @@ -54,28 +54,28 @@ fn G() { // CHECK:STDOUT: %int_32.loc11_22: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_22: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc11_25.1: %tuple.type.ff9 = tuple_literal (%i32.loc11_12, %i32.loc11_17, %i32.loc11_22) -// CHECK:STDOUT: %.loc11_25.2: type = converted %.loc11_25.1, constants.%tuple.type.dc6 [template = constants.%tuple.type.dc6] -// CHECK:STDOUT: %return.param: ref %tuple.type.dc6 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %tuple.type.dc6 = return_slot %return.param +// CHECK:STDOUT: %.loc11_25.2: type = converted %.loc11_25.1, constants.%tuple.type.189 [template = constants.%tuple.type.189] +// CHECK:STDOUT: %return.param: ref %tuple.type.189 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %tuple.type.189 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %tuple.type.dc6; +// CHECK:STDOUT: fn @F() -> %tuple.type.189; // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %struct_type.a.b.890 = var v -// CHECK:STDOUT: %v: ref %struct_type.a.b.890 = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref %struct_type.a.b.2f9 = var v +// CHECK:STDOUT: %v: ref %struct_type.a.b.2f9 = bind_name v, %v.var // CHECK:STDOUT: %F.ref.loc14_61: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %.loc14_74.1: ref %tuple.type.dc6 = struct_access %v.var, element0 -// CHECK:STDOUT: %F.call.loc14_63: init %tuple.type.dc6 = call %F.ref.loc14_61() to %.loc14_74.1 +// CHECK:STDOUT: %.loc14_74.1: ref %tuple.type.189 = struct_access %v.var, element0 +// CHECK:STDOUT: %F.call.loc14_63: init %tuple.type.189 = call %F.ref.loc14_61() to %.loc14_74.1 // CHECK:STDOUT: %F.ref.loc14_71: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %.loc14_74.2: ref %tuple.type.dc6 = struct_access %v.var, element1 -// CHECK:STDOUT: %F.call.loc14_73: init %tuple.type.dc6 = call %F.ref.loc14_71() to %.loc14_74.2 -// CHECK:STDOUT: %.loc14_74.3: %struct_type.a.b.890 = struct_literal (%F.call.loc14_63, %F.call.loc14_73) -// CHECK:STDOUT: %.loc14_74.4: init %struct_type.a.b.890 = struct_init (%F.call.loc14_63, %F.call.loc14_73) to %v.var -// CHECK:STDOUT: %.loc14_75: init %struct_type.a.b.890 = converted %.loc14_74.3, %.loc14_74.4 +// CHECK:STDOUT: %.loc14_74.2: ref %tuple.type.189 = struct_access %v.var, element1 +// CHECK:STDOUT: %F.call.loc14_73: init %tuple.type.189 = call %F.ref.loc14_71() to %.loc14_74.2 +// CHECK:STDOUT: %.loc14_74.3: %struct_type.a.b.2f9 = struct_literal (%F.call.loc14_63, %F.call.loc14_73) +// CHECK:STDOUT: %.loc14_74.4: init %struct_type.a.b.2f9 = struct_init (%F.call.loc14_63, %F.call.loc14_73) to %v.var +// CHECK:STDOUT: %.loc14_75: init %struct_type.a.b.2f9 = converted %.loc14_74.3, %.loc14_74.4 // CHECK:STDOUT: assign %v.var, %.loc14_75 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/one_entry.carbon b/toolchain/check/testdata/struct/one_entry.carbon index 5420508c05fd..1338830656ff 100644 --- a/toolchain/check/testdata/struct/one_entry.carbon +++ b/toolchain/check/testdata/struct/one_entry.carbon @@ -16,23 +16,23 @@ var y: {.a: i32} = x; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.7cc: type = struct_type {.a: %i32} [template] +// CHECK:STDOUT: %struct_type.a.ba9: type = struct_type {.a: %i32} [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %struct: %struct_type.a.7cc = struct_value (%int_4.2ec) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %struct: %struct_type.a.ba9 = struct_value (%int_4.940) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -45,29 +45,29 @@ var y: {.a: i32} = x; // CHECK:STDOUT: .y = %y // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %struct_type.a.7cc = var x -// CHECK:STDOUT: %x: ref %struct_type.a.7cc = bind_name x, %x.var -// CHECK:STDOUT: %y.var: ref %struct_type.a.7cc = var y -// CHECK:STDOUT: %y: ref %struct_type.a.7cc = bind_name y, %y.var +// CHECK:STDOUT: %x.var: ref %struct_type.a.ba9 = var x +// CHECK:STDOUT: %x: ref %struct_type.a.ba9 = bind_name x, %x.var +// CHECK:STDOUT: %y.var: ref %struct_type.a.ba9 = var y +// CHECK:STDOUT: %y: ref %struct_type.a.ba9 = bind_name y, %y.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_27.1: %struct_type.a.a6c = struct_literal (%int_4) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_4, %int.convert_checked [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_27.3: init %struct_type.a.7cc = struct_init (%.loc11_27.2) to file.%x.var [template = constants.%struct] -// CHECK:STDOUT: %.loc11_28: init %struct_type.a.7cc = converted %.loc11_27.1, %.loc11_27.3 [template = constants.%struct] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_4, %int.convert_checked [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_27.3: init %struct_type.a.ba9 = struct_init (%.loc11_27.2) to file.%x.var [template = constants.%struct] +// CHECK:STDOUT: %.loc11_28: init %struct_type.a.ba9 = converted %.loc11_27.1, %.loc11_27.3 [template = constants.%struct] // CHECK:STDOUT: assign file.%x.var, %.loc11_28 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.7cc = name_ref x, file.%x +// CHECK:STDOUT: %x.ref: ref %struct_type.a.ba9 = name_ref x, file.%x // CHECK:STDOUT: %.loc12_20.1: ref %i32 = struct_access %x.ref, element0 // CHECK:STDOUT: %.loc12_20.2: %i32 = bind_value %.loc12_20.1 -// CHECK:STDOUT: %.loc12_20.3: init %struct_type.a.7cc = struct_init (%.loc12_20.2) to file.%y.var -// CHECK:STDOUT: %.loc12_21: init %struct_type.a.7cc = converted %x.ref, %.loc12_20.3 +// CHECK:STDOUT: %.loc12_20.3: init %struct_type.a.ba9 = struct_init (%.loc12_20.2) to file.%y.var +// CHECK:STDOUT: %.loc12_21: init %struct_type.a.ba9 = converted %x.ref, %.loc12_20.3 // CHECK:STDOUT: assign file.%y.var, %.loc12_21 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/partially_const.carbon b/toolchain/check/testdata/struct/partially_const.carbon index c6ee512ca419..62de806e34a7 100644 --- a/toolchain/check/testdata/struct/partially_const.carbon +++ b/toolchain/check/testdata/struct/partially_const.carbon @@ -17,24 +17,24 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.b.c.1ce: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [template] +// CHECK:STDOUT: %struct_type.a.b.c.0b6: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [template] // CHECK:STDOUT: %Make.type: type = fn_type @Make [template] // CHECK:STDOUT: %Make: %Make.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %struct_type.a.b.c.c6d: type = struct_type {.a: Core.IntLiteral, .b: %i32, .c: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %struct_type.a.b.c.1ee: type = struct_type {.a: Core.IntLiteral, .b: %i32, .c: Core.IntLiteral} [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -49,8 +49,8 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [template = constants.%Make] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, runtime_param0 -// CHECK:STDOUT: %return.patt: %struct_type.a.b.c.1ce = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %struct_type.a.b.c.1ce = out_param_pattern %return.patt, runtime_param1 +// CHECK:STDOUT: %return.patt: %struct_type.a.b.c.0b6 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %struct_type.a.b.c.0b6 = out_param_pattern %return.patt, runtime_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc11_25: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_25: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] @@ -58,42 +58,42 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %i32.loc11_34: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc11_43: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_43: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [template = constants.%struct_type.a.b.c.1ce] +// CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [template = constants.%struct_type.a.b.c.0b6] // CHECK:STDOUT: %n.param: %i32 = value_param runtime_param0 // CHECK:STDOUT: %.loc11: type = splice_block %i32.loc11_12 [template = constants.%i32] { // CHECK:STDOUT: %int_32.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_12: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %n: %i32 = bind_name n, %n.param -// CHECK:STDOUT: %return.param: ref %struct_type.a.b.c.1ce = out_param runtime_param1 -// CHECK:STDOUT: %return: ref %struct_type.a.b.c.1ce = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %struct_type.a.b.c.0b6 = out_param runtime_param1 +// CHECK:STDOUT: %return: ref %struct_type.a.b.c.0b6 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Make(%n.param_patt: %i32) -> %return.param_patt: %struct_type.a.b.c.1ce { +// CHECK:STDOUT: fn @Make(%n.param_patt: %i32) -> %return.param_patt: %struct_type.a.b.c.0b6 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0.loc12_16: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %int_0.loc12_32: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %.loc12_33.1: %struct_type.a.b.c.c6d = struct_literal (%int_0.loc12_16, %n.ref, %int_0.loc12_32) -// CHECK:STDOUT: %impl.elem0.loc12_33.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %.loc12_33.1: %struct_type.a.b.c.1ee = struct_literal (%int_0.loc12_16, %n.ref, %int_0.loc12_32) +// CHECK:STDOUT: %impl.elem0.loc12_33.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc12_33.1: = bound_method %int_0.loc12_16, %impl.elem0.loc12_33.1 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc12_33.1: = specific_function %Convert.bound.loc12_33.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc12_33.1: init %i32 = call %Convert.specific_fn.loc12_33.1(%int_0.loc12_16) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_33.2: init %i32 = converted %int_0.loc12_16, %int.convert_checked.loc12_33.1 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked.loc12_33.1: init %i32 = call %Convert.specific_fn.loc12_33.1(%int_0.loc12_16) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_33.2: init %i32 = converted %int_0.loc12_16, %int.convert_checked.loc12_33.1 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc12_33.3: ref %i32 = struct_access %return, element0 -// CHECK:STDOUT: %.loc12_33.4: init %i32 = initialize_from %.loc12_33.2 to %.loc12_33.3 [template = constants.%int_0.f61] +// CHECK:STDOUT: %.loc12_33.4: init %i32 = initialize_from %.loc12_33.2 to %.loc12_33.3 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc12_33.5: ref %i32 = struct_access %return, element1 // CHECK:STDOUT: %.loc12_33.6: init %i32 = initialize_from %n.ref to %.loc12_33.5 -// CHECK:STDOUT: %impl.elem0.loc12_33.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc12_33.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc12_33.2: = bound_method %int_0.loc12_32, %impl.elem0.loc12_33.2 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc12_33.2: = specific_function %Convert.bound.loc12_33.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc12_33.2: init %i32 = call %Convert.specific_fn.loc12_33.2(%int_0.loc12_32) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_33.7: init %i32 = converted %int_0.loc12_32, %int.convert_checked.loc12_33.2 [template = constants.%int_0.f61] +// CHECK:STDOUT: %int.convert_checked.loc12_33.2: init %i32 = call %Convert.specific_fn.loc12_33.2(%int_0.loc12_32) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_33.7: init %i32 = converted %int_0.loc12_32, %int.convert_checked.loc12_33.2 [template = constants.%int_0.6a9] // CHECK:STDOUT: %.loc12_33.8: ref %i32 = struct_access %return, element2 -// CHECK:STDOUT: %.loc12_33.9: init %i32 = initialize_from %.loc12_33.7 to %.loc12_33.8 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12_33.10: init %struct_type.a.b.c.1ce = struct_init (%.loc12_33.4, %.loc12_33.6, %.loc12_33.9) to %return -// CHECK:STDOUT: %.loc12_34: init %struct_type.a.b.c.1ce = converted %.loc12_33.1, %.loc12_33.10 +// CHECK:STDOUT: %.loc12_33.9: init %i32 = initialize_from %.loc12_33.7 to %.loc12_33.8 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12_33.10: init %struct_type.a.b.c.0b6 = struct_init (%.loc12_33.4, %.loc12_33.6, %.loc12_33.9) to %return +// CHECK:STDOUT: %.loc12_34: init %struct_type.a.b.c.0b6 = converted %.loc12_33.1, %.loc12_33.10 // CHECK:STDOUT: return %.loc12_34 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/reorder_fields.carbon b/toolchain/check/testdata/struct/reorder_fields.carbon index f0e59dec7d80..cad7306275c7 100644 --- a/toolchain/check/testdata/struct/reorder_fields.carbon +++ b/toolchain/check/testdata/struct/reorder_fields.carbon @@ -37,8 +37,8 @@ fn F() -> {.a: i32, .b: f64} { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Float = %import_ref.20b +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Float = %import_ref.1d6 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/tuple_as_element.carbon b/toolchain/check/testdata/struct/tuple_as_element.carbon index 27f6c2e96320..49f675292070 100644 --- a/toolchain/check/testdata/struct/tuple_as_element.carbon +++ b/toolchain/check/testdata/struct/tuple_as_element.carbon @@ -16,30 +16,30 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] -// CHECK:STDOUT: %struct_type.a.b.d03: type = struct_type {.a: %i32, .b: %tuple.type.0e4} [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %struct_type.a.b.3d5: type = struct_type {.a: %i32, .b: %tuple.type.a1c} [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] // CHECK:STDOUT: %struct_type.a.b.057: type = struct_type {.a: Core.IntLiteral, .b: %tuple.type.985} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_2.166) [template] -// CHECK:STDOUT: %struct: %struct_type.a.b.d03 = struct_value (%int_1.c60, %tuple) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_2.ef8) [template] +// CHECK:STDOUT: %struct: %struct_type.a.b.3d5 = struct_value (%int_1.5d2, %tuple) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -52,10 +52,10 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: .y = %y // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %struct_type.a.b.d03 = var x -// CHECK:STDOUT: %x: ref %struct_type.a.b.d03 = bind_name x, %x.var -// CHECK:STDOUT: %y.var: ref %struct_type.a.b.d03 = var y -// CHECK:STDOUT: %y: ref %struct_type.a.b.d03 = bind_name y, %y.var +// CHECK:STDOUT: %x.var: ref %struct_type.a.b.3d5 = var x +// CHECK:STDOUT: %x: ref %struct_type.a.b.3d5 = bind_name x, %x.var +// CHECK:STDOUT: %y.var: ref %struct_type.a.b.3d5 = var y +// CHECK:STDOUT: %y: ref %struct_type.a.b.3d5 = bind_name y, %y.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -64,39 +64,39 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc11_49.1: %tuple.type.985 = tuple_literal (%int_2) // CHECK:STDOUT: %.loc11_50.1: %struct_type.a.b.057 = struct_literal (%int_1, %.loc11_49.1) -// CHECK:STDOUT: %impl.elem0.loc11_50: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_50: = bound_method %int_1, %impl.elem0.loc11_50 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11_50: = specific_function %Convert.bound.loc11_50, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11_50: init %i32 = call %Convert.specific_fn.loc11_50(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_50.2: init %i32 = converted %int_1, %int.convert_checked.loc11_50 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc11_50: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_50: = bound_method %int_1, %impl.elem0.loc11_50 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11_50: = specific_function %Convert.bound.loc11_50, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11_50: init %i32 = call %Convert.specific_fn.loc11_50(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_50.2: init %i32 = converted %int_1, %int.convert_checked.loc11_50 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc11_50.3: ref %i32 = struct_access file.%x.var, element0 -// CHECK:STDOUT: %.loc11_50.4: init %i32 = initialize_from %.loc11_50.2 to %.loc11_50.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc11_49: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_49: = bound_method %int_2, %impl.elem0.loc11_49 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_49: = specific_function %Convert.bound.loc11_49, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_49: init %i32 = call %Convert.specific_fn.loc11_49(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_49.2: init %i32 = converted %int_2, %int.convert_checked.loc11_49 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_50.5: ref %tuple.type.0e4 = struct_access file.%x.var, element1 -// CHECK:STDOUT: %.loc11_49.3: init %tuple.type.0e4 = tuple_init (%.loc11_49.2) to %.loc11_50.5 [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_50.6: init %tuple.type.0e4 = converted %.loc11_49.1, %.loc11_49.3 [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_50.7: init %tuple.type.0e4 = initialize_from %.loc11_50.6 to %.loc11_50.5 [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_50.8: init %struct_type.a.b.d03 = struct_init (%.loc11_50.4, %.loc11_50.7) to file.%x.var [template = constants.%struct] -// CHECK:STDOUT: %.loc11_51: init %struct_type.a.b.d03 = converted %.loc11_50.1, %.loc11_50.8 [template = constants.%struct] +// CHECK:STDOUT: %.loc11_50.4: init %i32 = initialize_from %.loc11_50.2 to %.loc11_50.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc11_49: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_49: = bound_method %int_2, %impl.elem0.loc11_49 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_49: = specific_function %Convert.bound.loc11_49, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_49: init %i32 = call %Convert.specific_fn.loc11_49(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_49.2: init %i32 = converted %int_2, %int.convert_checked.loc11_49 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_50.5: ref %tuple.type.a1c = struct_access file.%x.var, element1 +// CHECK:STDOUT: %.loc11_49.3: init %tuple.type.a1c = tuple_init (%.loc11_49.2) to %.loc11_50.5 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_50.6: init %tuple.type.a1c = converted %.loc11_49.1, %.loc11_49.3 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_50.7: init %tuple.type.a1c = initialize_from %.loc11_50.6 to %.loc11_50.5 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_50.8: init %struct_type.a.b.3d5 = struct_init (%.loc11_50.4, %.loc11_50.7) to file.%x.var [template = constants.%struct] +// CHECK:STDOUT: %.loc11_51: init %struct_type.a.b.3d5 = converted %.loc11_50.1, %.loc11_50.8 [template = constants.%struct] // CHECK:STDOUT: assign file.%x.var, %.loc11_51 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.d03 = name_ref x, file.%x +// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.3d5 = name_ref x, file.%x // CHECK:STDOUT: %.loc12_32.1: ref %i32 = struct_access %x.ref, element0 // CHECK:STDOUT: %.loc12_32.2: %i32 = bind_value %.loc12_32.1 // CHECK:STDOUT: %.loc12_32.3: ref %i32 = struct_access file.%y.var, element0 // CHECK:STDOUT: %.loc12_32.4: init %i32 = initialize_from %.loc12_32.2 to %.loc12_32.3 -// CHECK:STDOUT: %.loc12_32.5: ref %tuple.type.0e4 = struct_access %x.ref, element1 +// CHECK:STDOUT: %.loc12_32.5: ref %tuple.type.a1c = struct_access %x.ref, element1 // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc12_32.5, element0 // CHECK:STDOUT: %.loc12_32.6: %i32 = bind_value %tuple.elem0 -// CHECK:STDOUT: %.loc12_32.7: ref %tuple.type.0e4 = struct_access file.%y.var, element1 -// CHECK:STDOUT: %.loc12_32.8: init %tuple.type.0e4 = tuple_init (%.loc12_32.6) to %.loc12_32.7 -// CHECK:STDOUT: %.loc12_32.9: init %tuple.type.0e4 = converted %.loc12_32.5, %.loc12_32.8 -// CHECK:STDOUT: %.loc12_32.10: init %tuple.type.0e4 = initialize_from %.loc12_32.9 to %.loc12_32.7 -// CHECK:STDOUT: %.loc12_32.11: init %struct_type.a.b.d03 = struct_init (%.loc12_32.4, %.loc12_32.10) to file.%y.var -// CHECK:STDOUT: %.loc12_33: init %struct_type.a.b.d03 = converted %x.ref, %.loc12_32.11 +// CHECK:STDOUT: %.loc12_32.7: ref %tuple.type.a1c = struct_access file.%y.var, element1 +// CHECK:STDOUT: %.loc12_32.8: init %tuple.type.a1c = tuple_init (%.loc12_32.6) to %.loc12_32.7 +// CHECK:STDOUT: %.loc12_32.9: init %tuple.type.a1c = converted %.loc12_32.5, %.loc12_32.8 +// CHECK:STDOUT: %.loc12_32.10: init %tuple.type.a1c = initialize_from %.loc12_32.9 to %.loc12_32.7 +// CHECK:STDOUT: %.loc12_32.11: init %struct_type.a.b.3d5 = struct_init (%.loc12_32.4, %.loc12_32.10) to file.%y.var +// CHECK:STDOUT: %.loc12_33: init %struct_type.a.b.3d5 = converted %x.ref, %.loc12_32.11 // CHECK:STDOUT: assign file.%y.var, %.loc12_33 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/two_entries.carbon b/toolchain/check/testdata/struct/two_entries.carbon index 30f43fede315..e8654391fa0e 100644 --- a/toolchain/check/testdata/struct/two_entries.carbon +++ b/toolchain/check/testdata/struct/two_entries.carbon @@ -19,27 +19,27 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %struct_type.a.b.3de: type = struct_type {.a: %i32, .b: %i32} [template] +// CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %struct: %struct_type.a.b.3de = struct_value (%int_1.c60, %int_2.166) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %struct: %struct_type.a.b.501 = struct_value (%int_1.5d2, %int_2.ef8) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -54,10 +54,10 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: .y = %y // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %struct_type.a.b.3de = var x -// CHECK:STDOUT: %x: ref %struct_type.a.b.3de = bind_name x, %x.var -// CHECK:STDOUT: %y.var: ref %struct_type.a.b.3de = var y -// CHECK:STDOUT: %y: ref %struct_type.a.b.3de = bind_name y, %y.var +// CHECK:STDOUT: %x.var: ref %struct_type.a.b.501 = var x +// CHECK:STDOUT: %x: ref %struct_type.a.b.501 = bind_name x, %x.var +// CHECK:STDOUT: %y.var: ref %struct_type.a.b.501 = var y +// CHECK:STDOUT: %y: ref %struct_type.a.b.501 = bind_name y, %y.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -65,44 +65,44 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc11: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc11_44.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc11, %int_2.loc11) -// CHECK:STDOUT: %impl.elem0.loc11_44.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_44.1: = bound_method %int_1.loc11, %impl.elem0.loc11_44.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc11_44.1: = specific_function %Convert.bound.loc11_44.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc11_44.1: init %i32 = call %Convert.specific_fn.loc11_44.1(%int_1.loc11) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_44.2: %i32 = value_of_initializer %int.convert_checked.loc11_44.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc11_44.3: %i32 = converted %int_1.loc11, %.loc11_44.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc11_44.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_44.2: = bound_method %int_2.loc11, %impl.elem0.loc11_44.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_44.2: = specific_function %Convert.bound.loc11_44.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_44.2: init %i32 = call %Convert.specific_fn.loc11_44.2(%int_2.loc11) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_44.4: %i32 = value_of_initializer %int.convert_checked.loc11_44.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_44.5: %i32 = converted %int_2.loc11, %.loc11_44.4 [template = constants.%int_2.166] -// CHECK:STDOUT: %struct: %struct_type.a.b.3de = struct_value (%.loc11_44.3, %.loc11_44.5) [template = constants.%struct] -// CHECK:STDOUT: %.loc11_45: %struct_type.a.b.3de = converted %.loc11_44.1, %struct [template = constants.%struct] -// CHECK:STDOUT: %v: %struct_type.a.b.3de = bind_name v, %.loc11_45 -// CHECK:STDOUT: %v.ref: %struct_type.a.b.3de = name_ref v, %v -// CHECK:STDOUT: %w: %struct_type.a.b.3de = bind_name w, %v.ref +// CHECK:STDOUT: %impl.elem0.loc11_44.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_44.1: = bound_method %int_1.loc11, %impl.elem0.loc11_44.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc11_44.1: = specific_function %Convert.bound.loc11_44.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc11_44.1: init %i32 = call %Convert.specific_fn.loc11_44.1(%int_1.loc11) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_44.2: %i32 = value_of_initializer %int.convert_checked.loc11_44.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc11_44.3: %i32 = converted %int_1.loc11, %.loc11_44.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc11_44.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_44.2: = bound_method %int_2.loc11, %impl.elem0.loc11_44.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_44.2: = specific_function %Convert.bound.loc11_44.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_44.2: init %i32 = call %Convert.specific_fn.loc11_44.2(%int_2.loc11) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_44.4: %i32 = value_of_initializer %int.convert_checked.loc11_44.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_44.5: %i32 = converted %int_2.loc11, %.loc11_44.4 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %struct: %struct_type.a.b.501 = struct_value (%.loc11_44.3, %.loc11_44.5) [template = constants.%struct] +// CHECK:STDOUT: %.loc11_45: %struct_type.a.b.501 = converted %.loc11_44.1, %struct [template = constants.%struct] +// CHECK:STDOUT: %v: %struct_type.a.b.501 = bind_name v, %.loc11_45 +// CHECK:STDOUT: %v.ref: %struct_type.a.b.501 = name_ref v, %v +// CHECK:STDOUT: %w: %struct_type.a.b.501 = bind_name w, %v.ref // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc14: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc14_44.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc14, %int_2.loc14) -// CHECK:STDOUT: %impl.elem0.loc14_44.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_44.1: = bound_method %int_1.loc14, %impl.elem0.loc14_44.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc14_44.1: = specific_function %Convert.bound.loc14_44.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc14_44.1: init %i32 = call %Convert.specific_fn.loc14_44.1(%int_1.loc14) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_44.2: init %i32 = converted %int_1.loc14, %int.convert_checked.loc14_44.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc14_44.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_44.1: = bound_method %int_1.loc14, %impl.elem0.loc14_44.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc14_44.1: = specific_function %Convert.bound.loc14_44.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc14_44.1: init %i32 = call %Convert.specific_fn.loc14_44.1(%int_1.loc14) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_44.2: init %i32 = converted %int_1.loc14, %int.convert_checked.loc14_44.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_44.3: ref %i32 = struct_access file.%x.var, element0 -// CHECK:STDOUT: %.loc14_44.4: init %i32 = initialize_from %.loc14_44.2 to %.loc14_44.3 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc14_44.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_44.2: = bound_method %int_2.loc14, %impl.elem0.loc14_44.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc14_44.2: = specific_function %Convert.bound.loc14_44.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc14_44.2: init %i32 = call %Convert.specific_fn.loc14_44.2(%int_2.loc14) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_44.5: init %i32 = converted %int_2.loc14, %int.convert_checked.loc14_44.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc14_44.4: init %i32 = initialize_from %.loc14_44.2 to %.loc14_44.3 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc14_44.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_44.2: = bound_method %int_2.loc14, %impl.elem0.loc14_44.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc14_44.2: = specific_function %Convert.bound.loc14_44.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc14_44.2: init %i32 = call %Convert.specific_fn.loc14_44.2(%int_2.loc14) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_44.5: init %i32 = converted %int_2.loc14, %int.convert_checked.loc14_44.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc14_44.6: ref %i32 = struct_access file.%x.var, element1 -// CHECK:STDOUT: %.loc14_44.7: init %i32 = initialize_from %.loc14_44.5 to %.loc14_44.6 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc14_44.8: init %struct_type.a.b.3de = struct_init (%.loc14_44.4, %.loc14_44.7) to file.%x.var [template = constants.%struct] -// CHECK:STDOUT: %.loc14_45: init %struct_type.a.b.3de = converted %.loc14_44.1, %.loc14_44.8 [template = constants.%struct] +// CHECK:STDOUT: %.loc14_44.7: init %i32 = initialize_from %.loc14_44.5 to %.loc14_44.6 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc14_44.8: init %struct_type.a.b.501 = struct_init (%.loc14_44.4, %.loc14_44.7) to file.%x.var [template = constants.%struct] +// CHECK:STDOUT: %.loc14_45: init %struct_type.a.b.501 = converted %.loc14_44.1, %.loc14_44.8 [template = constants.%struct] // CHECK:STDOUT: assign file.%x.var, %.loc14_45 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.3de = name_ref x, file.%x +// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.501 = name_ref x, file.%x // CHECK:STDOUT: %.loc15_29.1: ref %i32 = struct_access %x.ref, element0 // CHECK:STDOUT: %.loc15_29.2: %i32 = bind_value %.loc15_29.1 // CHECK:STDOUT: %.loc15_29.3: ref %i32 = struct_access file.%y.var, element0 @@ -111,8 +111,8 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %.loc15_29.6: %i32 = bind_value %.loc15_29.5 // CHECK:STDOUT: %.loc15_29.7: ref %i32 = struct_access file.%y.var, element1 // CHECK:STDOUT: %.loc15_29.8: init %i32 = initialize_from %.loc15_29.6 to %.loc15_29.7 -// CHECK:STDOUT: %.loc15_29.9: init %struct_type.a.b.3de = struct_init (%.loc15_29.4, %.loc15_29.8) to file.%y.var -// CHECK:STDOUT: %.loc15_30: init %struct_type.a.b.3de = converted %x.ref, %.loc15_29.9 +// CHECK:STDOUT: %.loc15_29.9: init %struct_type.a.b.501 = struct_init (%.loc15_29.4, %.loc15_29.8) to file.%y.var +// CHECK:STDOUT: %.loc15_30: init %struct_type.a.b.501 = converted %x.ref, %.loc15_29.9 // CHECK:STDOUT: assign file.%y.var, %.loc15_30 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/access/element_access.carbon b/toolchain/check/testdata/tuple/access/element_access.carbon index c6223dcc05cf..467f6c02d9ef 100644 --- a/toolchain/check/testdata/tuple/access/element_access.carbon +++ b/toolchain/check/testdata/tuple/access/element_access.carbon @@ -17,24 +17,24 @@ var c: i32 = b.0; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_12.43d) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_12.1e1) [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -48,10 +48,10 @@ var c: i32 = b.0; // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.0e4 = var a -// CHECK:STDOUT: %a: ref %tuple.type.0e4 = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %tuple.type.0e4 = var b -// CHECK:STDOUT: %b: ref %tuple.type.0e4 = bind_name b, %b.var +// CHECK:STDOUT: %a.var: ref %tuple.type.a1c = var a +// CHECK:STDOUT: %a: ref %tuple.type.a1c = bind_name a, %a.var +// CHECK:STDOUT: %b.var: ref %tuple.type.a1c = var b +// CHECK:STDOUT: %b: ref %tuple.type.a1c = bind_name b, %b.var // CHECK:STDOUT: %c.var: ref %i32 = var c // CHECK:STDOUT: %c: ref %i32 = bind_name c, %c.var // CHECK:STDOUT: } @@ -60,21 +60,21 @@ var c: i32 = b.0; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_21.1: %tuple.type.985 = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_12, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_21.2: init %i32 = converted %int_12, %int.convert_checked [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_21.3: init %tuple.type.0e4 = tuple_init (%.loc11_21.2) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_22: init %tuple.type.0e4 = converted %.loc11_21.1, %.loc11_21.3 [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_21.2: init %i32 = converted %int_12, %int.convert_checked [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_21.3: init %tuple.type.a1c = tuple_init (%.loc11_21.2) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_22: init %tuple.type.a1c = converted %.loc11_21.1, %.loc11_21.3 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_22 -// CHECK:STDOUT: %a.ref: ref %tuple.type.0e4 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.a1c = name_ref a, file.%a // CHECK:STDOUT: %tuple.elem0.loc12: ref %i32 = tuple_access %a.ref, element0 // CHECK:STDOUT: %.loc12_17.1: %i32 = bind_value %tuple.elem0.loc12 -// CHECK:STDOUT: %.loc12_17.2: init %tuple.type.0e4 = tuple_init (%.loc12_17.1) to file.%b.var -// CHECK:STDOUT: %.loc12_18: init %tuple.type.0e4 = converted %a.ref, %.loc12_17.2 +// CHECK:STDOUT: %.loc12_17.2: init %tuple.type.a1c = tuple_init (%.loc12_17.1) to file.%b.var +// CHECK:STDOUT: %.loc12_18: init %tuple.type.a1c = converted %a.ref, %.loc12_17.2 // CHECK:STDOUT: assign file.%b.var, %.loc12_18 -// CHECK:STDOUT: %b.ref: ref %tuple.type.0e4 = name_ref b, file.%b +// CHECK:STDOUT: %b.ref: ref %tuple.type.a1c = name_ref b, file.%b // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %tuple.elem0.loc13: ref %i32 = tuple_access %b.ref, element0 // CHECK:STDOUT: %.loc13: %i32 = bind_value %tuple.elem0.loc13 diff --git a/toolchain/check/testdata/tuple/access/fail_access_error.carbon b/toolchain/check/testdata/tuple/access/fail_access_error.carbon index 7ad128b02fcd..67c76733c422 100644 --- a/toolchain/check/testdata/tuple/access/fail_access_error.carbon +++ b/toolchain/check/testdata/tuple/access/fail_access_error.carbon @@ -19,27 +19,27 @@ var b: i32 = a.(oops); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %Convert.bound.b1c: = bound_method %int_6.462, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b26: = specific_function %Convert.bound.b1c, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_6.b03: %i32 = int_value 6 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_12.43d, %int_6.b03) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %Convert.bound.ce9: = bound_method %int_6.462, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.631: = specific_function %Convert.bound.ce9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_6.e56: %i32 = int_value 6 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_12.1e1, %int_6.e56) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -52,8 +52,8 @@ var b: i32 = a.(oops); // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.471 = var a -// CHECK:STDOUT: %a: ref %tuple.type.471 = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %tuple.type.d07 = var a +// CHECK:STDOUT: %a: ref %tuple.type.d07 = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: } @@ -63,24 +63,24 @@ var b: i32 = a.(oops); // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.f94 = tuple_literal (%int_12, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [template = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 -// CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [template = constants.%int_12.43d] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_6, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.b1c] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b26] -// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_6) [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_27.4: init %i32 = converted %int_6, %int.convert_checked.loc11_27.2 [template = constants.%int_6.b03] +// CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [template = constants.%int_12.1e1] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_6, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.ce9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.631] +// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_6) [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_27.4: init %i32 = converted %int_6, %int.convert_checked.loc11_27.2 [template = constants.%int_6.e56] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%a.var, element1 -// CHECK:STDOUT: %.loc11_27.5: init %i32 = initialize_from %.loc11_27.4 to %tuple.elem1 [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_27.6: init %tuple.type.471 = tuple_init (%.loc11_27.3, %.loc11_27.5) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_28: init %tuple.type.471 = converted %.loc11_27.1, %.loc11_27.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_27.5: init %i32 = initialize_from %.loc11_27.4 to %tuple.elem1 [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_27.6: init %tuple.type.d07 = tuple_init (%.loc11_27.3, %.loc11_27.5) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_28: init %tuple.type.d07 = converted %.loc11_27.1, %.loc11_27.6 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_28 -// CHECK:STDOUT: %a.ref: ref %tuple.type.471 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.d07 = name_ref a, file.%a // CHECK:STDOUT: %oops.ref: = name_ref oops, [template = ] // CHECK:STDOUT: assign file.%b.var, // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/tuple/access/fail_large_index.carbon b/toolchain/check/testdata/tuple/access/fail_large_index.carbon index 997c3fef6988..b1ba74b54d58 100644 --- a/toolchain/check/testdata/tuple/access/fail_large_index.carbon +++ b/toolchain/check/testdata/tuple/access/fail_large_index.carbon @@ -25,25 +25,25 @@ var d: i32 = b.(0x7FFF_FFFF); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_12.43d) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_12.1e1) [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2147483647: Core.IntLiteral = int_value 2147483647 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -58,10 +58,10 @@ var d: i32 = b.(0x7FFF_FFFF); // CHECK:STDOUT: .d = %d // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.0e4 = var a -// CHECK:STDOUT: %a: ref %tuple.type.0e4 = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %tuple.type.0e4 = var b -// CHECK:STDOUT: %b: ref %tuple.type.0e4 = bind_name b, %b.var +// CHECK:STDOUT: %a.var: ref %tuple.type.a1c = var a +// CHECK:STDOUT: %a: ref %tuple.type.a1c = bind_name a, %a.var +// CHECK:STDOUT: %b.var: ref %tuple.type.a1c = var b +// CHECK:STDOUT: %b: ref %tuple.type.a1c = bind_name b, %b.var // CHECK:STDOUT: %c.var: ref %i32 = var c // CHECK:STDOUT: %c: ref %i32 = bind_name c, %c.var // CHECK:STDOUT: %d.var: ref %i32 = var d @@ -72,24 +72,24 @@ var d: i32 = b.(0x7FFF_FFFF); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_21.1: %tuple.type.985 = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_12, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_21.2: init %i32 = converted %int_12, %int.convert_checked [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_21.3: init %tuple.type.0e4 = tuple_init (%.loc11_21.2) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_22: init %tuple.type.0e4 = converted %.loc11_21.1, %.loc11_21.3 [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_21.2: init %i32 = converted %int_12, %int.convert_checked [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_21.3: init %tuple.type.a1c = tuple_init (%.loc11_21.2) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_22: init %tuple.type.a1c = converted %.loc11_21.1, %.loc11_21.3 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_22 -// CHECK:STDOUT: %a.ref: ref %tuple.type.0e4 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.a1c = name_ref a, file.%a // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %a.ref, element0 // CHECK:STDOUT: %.loc12_17.1: %i32 = bind_value %tuple.elem0 -// CHECK:STDOUT: %.loc12_17.2: init %tuple.type.0e4 = tuple_init (%.loc12_17.1) to file.%b.var -// CHECK:STDOUT: %.loc12_18: init %tuple.type.0e4 = converted %a.ref, %.loc12_17.2 +// CHECK:STDOUT: %.loc12_17.2: init %tuple.type.a1c = tuple_init (%.loc12_17.1) to file.%b.var +// CHECK:STDOUT: %.loc12_18: init %tuple.type.a1c = converted %a.ref, %.loc12_17.2 // CHECK:STDOUT: assign file.%b.var, %.loc12_18 -// CHECK:STDOUT: %b.ref.loc17: ref %tuple.type.0e4 = name_ref b, file.%b +// CHECK:STDOUT: %b.ref.loc17: ref %tuple.type.a1c = name_ref b, file.%b // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1] // CHECK:STDOUT: assign file.%c.var, -// CHECK:STDOUT: %b.ref.loc21: ref %tuple.type.0e4 = name_ref b, file.%b +// CHECK:STDOUT: %b.ref.loc21: ref %tuple.type.a1c = name_ref b, file.%b // CHECK:STDOUT: %int_2147483647: Core.IntLiteral = int_value 2147483647 [template = constants.%int_2147483647] // CHECK:STDOUT: assign file.%d.var, // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/tuple/access/fail_negative_indexing.carbon b/toolchain/check/testdata/tuple/access/fail_negative_indexing.carbon index b5c7cef70844..0dfb78ae9048 100644 --- a/toolchain/check/testdata/tuple/access/fail_negative_indexing.carbon +++ b/toolchain/check/testdata/tuple/access/fail_negative_indexing.carbon @@ -19,35 +19,35 @@ var b: i32 = a.(-10); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %Convert.bound.b1c: = bound_method %int_6.462, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b26: = specific_function %Convert.bound.b1c, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_6.b03: %i32 = int_value 6 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_12.43d, %int_6.b03) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %Convert.bound.ce9: = bound_method %int_6.462, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.631: = specific_function %Convert.bound.ce9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_6.e56: %i32 = int_value 6 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_12.1e1, %int_6.e56) [template] // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [template] -// CHECK:STDOUT: %Op.type.4d0: type = fn_type @Op.13 [template] -// CHECK:STDOUT: %impl_witness.6d9: = impl_witness (imports.%import_ref.aaf) [template] -// CHECK:STDOUT: %Op.type.9fe: type = fn_type @Op.14 [template] -// CHECK:STDOUT: %Op.b5b: %Op.type.9fe = struct_value () [template] -// CHECK:STDOUT: %Op.bound: = bound_method %int_10, %Op.b5b [template] +// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.13 [template] +// CHECK:STDOUT: %impl_witness.0f6: = impl_witness (imports.%import_ref.c15) [template] +// CHECK:STDOUT: %Op.type.1be: type = fn_type @Op.14 [template] +// CHECK:STDOUT: %Op.bba: %Op.type.1be = struct_value () [template] +// CHECK:STDOUT: %Op.bound: = bound_method %int_10, %Op.bba [template] // CHECK:STDOUT: %int_-10: Core.IntLiteral = int_value -10 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Negate = %import_ref.a96 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Negate = %import_ref.6e9 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -60,8 +60,8 @@ var b: i32 = a.(-10); // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.471 = var a -// CHECK:STDOUT: %a: ref %tuple.type.471 = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %tuple.type.d07 = var a +// CHECK:STDOUT: %a: ref %tuple.type.d07 = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: } @@ -71,26 +71,26 @@ var b: i32 = a.(-10); // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.f94 = tuple_literal (%int_12, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [template = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 -// CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [template = constants.%int_12.43d] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_6, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.b1c] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b26] -// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_6) [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_27.4: init %i32 = converted %int_6, %int.convert_checked.loc11_27.2 [template = constants.%int_6.b03] +// CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [template = constants.%int_12.1e1] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_6, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.ce9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.631] +// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_6) [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_27.4: init %i32 = converted %int_6, %int.convert_checked.loc11_27.2 [template = constants.%int_6.e56] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%a.var, element1 -// CHECK:STDOUT: %.loc11_27.5: init %i32 = initialize_from %.loc11_27.4 to %tuple.elem1 [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_27.6: init %tuple.type.471 = tuple_init (%.loc11_27.3, %.loc11_27.5) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_28: init %tuple.type.471 = converted %.loc11_27.1, %.loc11_27.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_27.5: init %i32 = initialize_from %.loc11_27.4 to %tuple.elem1 [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_27.6: init %tuple.type.d07 = tuple_init (%.loc11_27.3, %.loc11_27.5) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_28: init %tuple.type.d07 = converted %.loc11_27.1, %.loc11_27.6 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_28 -// CHECK:STDOUT: %a.ref: ref %tuple.type.471 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.d07 = name_ref a, file.%a // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [template = constants.%int_10] -// CHECK:STDOUT: %impl.elem0.loc15: %Op.type.4d0 = impl_witness_access constants.%impl_witness.6d9, element0 [template = constants.%Op.b5b] +// CHECK:STDOUT: %impl.elem0.loc15: %Op.type.e42 = impl_witness_access constants.%impl_witness.0f6, element0 [template = constants.%Op.bba] // CHECK:STDOUT: %Op.bound: = bound_method %int_10, %impl.elem0.loc15 [template = constants.%Op.bound] // CHECK:STDOUT: %int.snegate: init Core.IntLiteral = call %Op.bound(%int_10) [template = constants.%int_-10] // CHECK:STDOUT: %.loc15_17.1: Core.IntLiteral = value_of_initializer %int.snegate [template = constants.%int_-10] diff --git a/toolchain/check/testdata/tuple/access/fail_non_deterministic_type.carbon b/toolchain/check/testdata/tuple/access/fail_non_deterministic_type.carbon index cd24d1efe7af..1b779e1f3e3d 100644 --- a/toolchain/check/testdata/tuple/access/fail_non_deterministic_type.carbon +++ b/toolchain/check/testdata/tuple/access/fail_non_deterministic_type.carbon @@ -20,31 +20,31 @@ var c: i32 = a.(b); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_2.166, %int_3.25b) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_2.ef8, %int_3.822) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -58,8 +58,8 @@ var c: i32 = a.(b); // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.471 = var a -// CHECK:STDOUT: %a: ref %tuple.type.471 = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %tuple.type.d07 = var a +// CHECK:STDOUT: %a: ref %tuple.type.d07 = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %c.var: ref %i32 = var c @@ -71,31 +71,31 @@ var c: i32 = a.(b); // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_26.1: %tuple.type.f94 = tuple_literal (%int_2, %int_3) -// CHECK:STDOUT: %impl.elem0.loc11_26.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_26.1: = bound_method %int_2, %impl.elem0.loc11_26.1 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc11_26.1: = specific_function %Convert.bound.loc11_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc11_26.1: init %i32 = call %Convert.specific_fn.loc11_26.1(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc11_26.2: init %i32 = converted %int_2, %int.convert_checked.loc11_26.1 [template = constants.%int_2.166] +// CHECK:STDOUT: %impl.elem0.loc11_26.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_26.1: = bound_method %int_2, %impl.elem0.loc11_26.1 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_26.1: = specific_function %Convert.bound.loc11_26.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc11_26.1: init %i32 = call %Convert.specific_fn.loc11_26.1(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc11_26.2: init %i32 = converted %int_2, %int.convert_checked.loc11_26.1 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 -// CHECK:STDOUT: %.loc11_26.3: init %i32 = initialize_from %.loc11_26.2 to %tuple.elem0 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc11_26.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_26.2: = bound_method %int_3, %impl.elem0.loc11_26.2 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc11_26.2: = specific_function %Convert.bound.loc11_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc11_26.2: init %i32 = call %Convert.specific_fn.loc11_26.2(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc11_26.4: init %i32 = converted %int_3, %int.convert_checked.loc11_26.2 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc11_26.3: init %i32 = initialize_from %.loc11_26.2 to %tuple.elem0 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc11_26.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_26.2: = bound_method %int_3, %impl.elem0.loc11_26.2 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc11_26.2: = specific_function %Convert.bound.loc11_26.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc11_26.2: init %i32 = call %Convert.specific_fn.loc11_26.2(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc11_26.4: init %i32 = converted %int_3, %int.convert_checked.loc11_26.2 [template = constants.%int_3.822] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%a.var, element1 -// CHECK:STDOUT: %.loc11_26.5: init %i32 = initialize_from %.loc11_26.4 to %tuple.elem1 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc11_26.6: init %tuple.type.471 = tuple_init (%.loc11_26.3, %.loc11_26.5) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_27: init %tuple.type.471 = converted %.loc11_26.1, %.loc11_26.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_26.5: init %i32 = initialize_from %.loc11_26.4 to %tuple.elem1 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc11_26.6: init %tuple.type.d07 = tuple_init (%.loc11_26.3, %.loc11_26.5) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_27: init %tuple.type.d07 = converted %.loc11_26.1, %.loc11_26.6 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_27 // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_0, %impl.elem0.loc12 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %int.convert_checked.loc12 [template = constants.%int_0.f61] +// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc12: = bound_method %int_0, %impl.elem0.loc12 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc12: = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %int.convert_checked.loc12 [template = constants.%int_0.6a9] // CHECK:STDOUT: assign file.%b.var, %.loc12 -// CHECK:STDOUT: %a.ref: ref %tuple.type.471 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.d07 = name_ref a, file.%a // CHECK:STDOUT: %b.ref: ref %i32 = name_ref b, file.%b // CHECK:STDOUT: assign file.%c.var, // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/tuple/access/fail_non_int_indexing.carbon b/toolchain/check/testdata/tuple/access/fail_non_int_indexing.carbon index 30526d2a6d90..ba5ef9d4d05d 100644 --- a/toolchain/check/testdata/tuple/access/fail_non_int_indexing.carbon +++ b/toolchain/check/testdata/tuple/access/fail_non_int_indexing.carbon @@ -22,28 +22,28 @@ var b: i32 = a.(2.6); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %Convert.bound.b1c: = bound_method %int_6.462, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b26: = specific_function %Convert.bound.b1c, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_6.b03: %i32 = int_value 6 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_12.43d, %int_6.b03) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %Convert.bound.ce9: = bound_method %int_6.462, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.631: = specific_function %Convert.bound.ce9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_6.e56: %i32 = int_value 6 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_12.1e1, %int_6.e56) [template] // CHECK:STDOUT: %float: f64 = float_literal 2.6000000000000001 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -56,8 +56,8 @@ var b: i32 = a.(2.6); // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.471 = var a -// CHECK:STDOUT: %a: ref %tuple.type.471 = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %tuple.type.d07 = var a +// CHECK:STDOUT: %a: ref %tuple.type.d07 = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: } @@ -67,24 +67,24 @@ var b: i32 = a.(2.6); // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.f94 = tuple_literal (%int_12, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [template = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 -// CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [template = constants.%int_12.43d] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_6, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.b1c] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b26] -// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_6) [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_27.4: init %i32 = converted %int_6, %int.convert_checked.loc11_27.2 [template = constants.%int_6.b03] +// CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [template = constants.%int_12.1e1] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_6, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.ce9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.631] +// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_6) [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_27.4: init %i32 = converted %int_6, %int.convert_checked.loc11_27.2 [template = constants.%int_6.e56] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%a.var, element1 -// CHECK:STDOUT: %.loc11_27.5: init %i32 = initialize_from %.loc11_27.4 to %tuple.elem1 [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_27.6: init %tuple.type.471 = tuple_init (%.loc11_27.3, %.loc11_27.5) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_28: init %tuple.type.471 = converted %.loc11_27.1, %.loc11_27.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_27.5: init %i32 = initialize_from %.loc11_27.4 to %tuple.elem1 [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_27.6: init %tuple.type.d07 = tuple_init (%.loc11_27.3, %.loc11_27.5) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_28: init %tuple.type.d07 = converted %.loc11_27.1, %.loc11_27.6 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_28 -// CHECK:STDOUT: %a.ref: ref %tuple.type.471 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.d07 = name_ref a, file.%a // CHECK:STDOUT: %float: f64 = float_literal 2.6000000000000001 [template = constants.%float] // CHECK:STDOUT: %.loc18: Core.IntLiteral = converted %float, [template = ] // CHECK:STDOUT: assign file.%b.var, diff --git a/toolchain/check/testdata/tuple/access/fail_non_tuple_access.carbon b/toolchain/check/testdata/tuple/access/fail_non_tuple_access.carbon index 6422c747424a..dd2c745bd6fd 100644 --- a/toolchain/check/testdata/tuple/access/fail_non_tuple_access.carbon +++ b/toolchain/check/testdata/tuple/access/fail_non_tuple_access.carbon @@ -35,21 +35,21 @@ fn Main() { // CHECK:STDOUT: %array_type: type = array_type %int_2, %i32 [template] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [template] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_5.70b: %i32 = int_value 5 [template] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_5.70b, %int_5.70b) [template] +// CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [template] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_5.0f6, %int_5.0f6) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .IndexWith = %import_ref.76d -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .IndexWith = %import_ref.671 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -73,22 +73,22 @@ fn Main() { // CHECK:STDOUT: %int_5.loc18_30: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] // CHECK:STDOUT: %int_5.loc18_33: Core.IntLiteral = int_value 5 [template = constants.%int_5.64b] // CHECK:STDOUT: %.loc18_34.1: %tuple.type = tuple_literal (%int_5.loc18_30, %int_5.loc18_33) -// CHECK:STDOUT: %impl.elem0.loc18_34.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0.loc18_34.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc18_34.1: = bound_method %int_5.loc18_30, %impl.elem0.loc18_34.1 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc18_34.1: = specific_function %Convert.bound.loc18_34.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc18_34.1: init %i32 = call %Convert.specific_fn.loc18_34.1(%int_5.loc18_30) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc18_34.2: init %i32 = converted %int_5.loc18_30, %int.convert_checked.loc18_34.1 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked.loc18_34.1: init %i32 = call %Convert.specific_fn.loc18_34.1(%int_5.loc18_30) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc18_34.2: init %i32 = converted %int_5.loc18_30, %int.convert_checked.loc18_34.1 [template = constants.%int_5.0f6] // CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [template = constants.%int_0] // CHECK:STDOUT: %.loc18_34.3: ref %i32 = array_index %non_tuple.var, %int_0.loc18 -// CHECK:STDOUT: %.loc18_34.4: init %i32 = initialize_from %.loc18_34.2 to %.loc18_34.3 [template = constants.%int_5.70b] -// CHECK:STDOUT: %impl.elem0.loc18_34.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %.loc18_34.4: init %i32 = initialize_from %.loc18_34.2 to %.loc18_34.3 [template = constants.%int_5.0f6] +// CHECK:STDOUT: %impl.elem0.loc18_34.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound.loc18_34.2: = bound_method %int_5.loc18_33, %impl.elem0.loc18_34.2 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn.loc18_34.2: = specific_function %Convert.bound.loc18_34.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked.loc18_34.2: init %i32 = call %Convert.specific_fn.loc18_34.2(%int_5.loc18_33) [template = constants.%int_5.70b] -// CHECK:STDOUT: %.loc18_34.5: init %i32 = converted %int_5.loc18_33, %int.convert_checked.loc18_34.2 [template = constants.%int_5.70b] +// CHECK:STDOUT: %int.convert_checked.loc18_34.2: init %i32 = call %Convert.specific_fn.loc18_34.2(%int_5.loc18_33) [template = constants.%int_5.0f6] +// CHECK:STDOUT: %.loc18_34.5: init %i32 = converted %int_5.loc18_33, %int.convert_checked.loc18_34.2 [template = constants.%int_5.0f6] // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [template = constants.%int_1] // CHECK:STDOUT: %.loc18_34.6: ref %i32 = array_index %non_tuple.var, %int_1.loc18 -// CHECK:STDOUT: %.loc18_34.7: init %i32 = initialize_from %.loc18_34.5 to %.loc18_34.6 [template = constants.%int_5.70b] +// CHECK:STDOUT: %.loc18_34.7: init %i32 = initialize_from %.loc18_34.5 to %.loc18_34.6 [template = constants.%int_5.0f6] // CHECK:STDOUT: %.loc18_34.8: init %array_type = array_init (%.loc18_34.4, %.loc18_34.7) to %non_tuple.var [template = constants.%array] // CHECK:STDOUT: %.loc18_35: init %array_type = converted %.loc18_34.1, %.loc18_34.8 [template = constants.%array] // CHECK:STDOUT: assign %non_tuple.var, %.loc18_35 diff --git a/toolchain/check/testdata/tuple/access/fail_out_of_bound_access.carbon b/toolchain/check/testdata/tuple/access/fail_out_of_bound_access.carbon index bc20a84a0cc8..5f6b9fe953a7 100644 --- a/toolchain/check/testdata/tuple/access/fail_out_of_bound_access.carbon +++ b/toolchain/check/testdata/tuple/access/fail_out_of_bound_access.carbon @@ -19,28 +19,28 @@ var b: i32 = a.2; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %Convert.bound.b1c: = bound_method %int_6.462, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b26: = specific_function %Convert.bound.b1c, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_6.b03: %i32 = int_value 6 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_12.43d, %int_6.b03) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %Convert.bound.ce9: = bound_method %int_6.462, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.631: = specific_function %Convert.bound.ce9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_6.e56: %i32 = int_value 6 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_12.1e1, %int_6.e56) [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -53,8 +53,8 @@ var b: i32 = a.2; // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.471 = var a -// CHECK:STDOUT: %a: ref %tuple.type.471 = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %tuple.type.d07 = var a +// CHECK:STDOUT: %a: ref %tuple.type.d07 = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: } @@ -64,24 +64,24 @@ var b: i32 = a.2; // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.f94 = tuple_literal (%int_12, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [template = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 -// CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [template = constants.%int_12.43d] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_6, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.b1c] -// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b26] -// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_6) [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_27.4: init %i32 = converted %int_6, %int.convert_checked.loc11_27.2 [template = constants.%int_6.b03] +// CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [template = constants.%int_12.1e1] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_27.2: = bound_method %int_6, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.ce9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.631] +// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_6) [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_27.4: init %i32 = converted %int_6, %int.convert_checked.loc11_27.2 [template = constants.%int_6.e56] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%a.var, element1 -// CHECK:STDOUT: %.loc11_27.5: init %i32 = initialize_from %.loc11_27.4 to %tuple.elem1 [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_27.6: init %tuple.type.471 = tuple_init (%.loc11_27.3, %.loc11_27.5) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_28: init %tuple.type.471 = converted %.loc11_27.1, %.loc11_27.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_27.5: init %i32 = initialize_from %.loc11_27.4 to %tuple.elem1 [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_27.6: init %tuple.type.d07 = tuple_init (%.loc11_27.3, %.loc11_27.5) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_28: init %tuple.type.d07 = converted %.loc11_27.1, %.loc11_27.6 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_28 -// CHECK:STDOUT: %a.ref: ref %tuple.type.471 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.d07 = name_ref a, file.%a // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2] // CHECK:STDOUT: assign file.%b.var, // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/tuple/access/fail_out_of_bound_not_literal.carbon b/toolchain/check/testdata/tuple/access/fail_out_of_bound_not_literal.carbon index 94829ac5cfb3..83c040c878a1 100644 --- a/toolchain/check/testdata/tuple/access/fail_out_of_bound_not_literal.carbon +++ b/toolchain/check/testdata/tuple/access/fail_out_of_bound_not_literal.carbon @@ -19,21 +19,21 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %int_34.3f9: Core.IntLiteral = int_value 34 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %Convert.bound.eae: = bound_method %int_34.3f9, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.767: = specific_function %Convert.bound.eae, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_34.bd3: %i32 = int_value 34 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_12.43d, %int_34.bd3) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %Convert.bound.82c: = bound_method %int_34.3f9, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.6d4: = specific_function %Convert.bound.82c, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_34.980: %i32 = int_value 34 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_12.1e1, %int_34.980) [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %struct_type.index: type = struct_type {.index: Core.IntLiteral} [template] // CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_2) [template] @@ -41,8 +41,8 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -55,8 +55,8 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.471 = var a -// CHECK:STDOUT: %a: ref %tuple.type.471 = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %tuple.type.d07 = var a +// CHECK:STDOUT: %a: ref %tuple.type.d07 = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: } @@ -66,24 +66,24 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [template = constants.%int_12.6a3] // CHECK:STDOUT: %int_34: Core.IntLiteral = int_value 34 [template = constants.%int_34.3f9] // CHECK:STDOUT: %.loc11_28.1: %tuple.type.f94 = tuple_literal (%int_12, %int_34) -// CHECK:STDOUT: %impl.elem0.loc11_28.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_28.1: = bound_method %int_12, %impl.elem0.loc11_28.1 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11_28.1: = specific_function %Convert.bound.loc11_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11_28.1: init %i32 = call %Convert.specific_fn.loc11_28.1(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_28.2: init %i32 = converted %int_12, %int.convert_checked.loc11_28.1 [template = constants.%int_12.43d] +// CHECK:STDOUT: %impl.elem0.loc11_28.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_28.1: = bound_method %int_12, %impl.elem0.loc11_28.1 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11_28.1: = specific_function %Convert.bound.loc11_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11_28.1: init %i32 = call %Convert.specific_fn.loc11_28.1(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_28.2: init %i32 = converted %int_12, %int.convert_checked.loc11_28.1 [template = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 -// CHECK:STDOUT: %.loc11_28.3: init %i32 = initialize_from %.loc11_28.2 to %tuple.elem0 [template = constants.%int_12.43d] -// CHECK:STDOUT: %impl.elem0.loc11_28.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_28.2: = bound_method %int_34, %impl.elem0.loc11_28.2 [template = constants.%Convert.bound.eae] -// CHECK:STDOUT: %Convert.specific_fn.loc11_28.2: = specific_function %Convert.bound.loc11_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.767] -// CHECK:STDOUT: %int.convert_checked.loc11_28.2: init %i32 = call %Convert.specific_fn.loc11_28.2(%int_34) [template = constants.%int_34.bd3] -// CHECK:STDOUT: %.loc11_28.4: init %i32 = converted %int_34, %int.convert_checked.loc11_28.2 [template = constants.%int_34.bd3] +// CHECK:STDOUT: %.loc11_28.3: init %i32 = initialize_from %.loc11_28.2 to %tuple.elem0 [template = constants.%int_12.1e1] +// CHECK:STDOUT: %impl.elem0.loc11_28.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_28.2: = bound_method %int_34, %impl.elem0.loc11_28.2 [template = constants.%Convert.bound.82c] +// CHECK:STDOUT: %Convert.specific_fn.loc11_28.2: = specific_function %Convert.bound.loc11_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.6d4] +// CHECK:STDOUT: %int.convert_checked.loc11_28.2: init %i32 = call %Convert.specific_fn.loc11_28.2(%int_34) [template = constants.%int_34.980] +// CHECK:STDOUT: %.loc11_28.4: init %i32 = converted %int_34, %int.convert_checked.loc11_28.2 [template = constants.%int_34.980] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%a.var, element1 -// CHECK:STDOUT: %.loc11_28.5: init %i32 = initialize_from %.loc11_28.4 to %tuple.elem1 [template = constants.%int_34.bd3] -// CHECK:STDOUT: %.loc11_28.6: init %tuple.type.471 = tuple_init (%.loc11_28.3, %.loc11_28.5) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_29: init %tuple.type.471 = converted %.loc11_28.1, %.loc11_28.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_28.5: init %i32 = initialize_from %.loc11_28.4 to %tuple.elem1 [template = constants.%int_34.980] +// CHECK:STDOUT: %.loc11_28.6: init %tuple.type.d07 = tuple_init (%.loc11_28.3, %.loc11_28.5) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_29: init %tuple.type.d07 = converted %.loc11_28.1, %.loc11_28.6 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_29 -// CHECK:STDOUT: %a.ref: ref %tuple.type.471 = name_ref a, file.%a +// CHECK:STDOUT: %a.ref: ref %tuple.type.d07 = name_ref a, file.%a // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2] // CHECK:STDOUT: %.loc15_28.1: %struct_type.index = struct_literal (%int_2) // CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_2) [template = constants.%struct] diff --git a/toolchain/check/testdata/tuple/access/index_not_literal.carbon b/toolchain/check/testdata/tuple/access/index_not_literal.carbon index e2075bd344d0..32ed6e99b754 100644 --- a/toolchain/check/testdata/tuple/access/index_not_literal.carbon +++ b/toolchain/check/testdata/tuple/access/index_not_literal.carbon @@ -18,50 +18,50 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.c2e: type = tuple_type (bool, %i32) [template] +// CHECK:STDOUT: %tuple.type.261: type = tuple_type (bool, %i32) [template] // CHECK:STDOUT: %true: bool = bool_literal true [template] // CHECK:STDOUT: %int_34.3f9: Core.IntLiteral = int_value 34 [template] // CHECK:STDOUT: %tuple.type.3c2: type = tuple_type (bool, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %Convert.type.a9b: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.eae: = bound_method %int_34.3f9, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.767: = specific_function %Convert.bound.eae, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_34.bd3: %i32 = int_value 34 [template] -// CHECK:STDOUT: %tuple: %tuple.type.c2e = tuple_value (%true, %int_34.bd3) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.82c: = bound_method %int_34.3f9, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.6d4: = specific_function %Convert.bound.82c, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_34.980: %i32 = int_value 34 [template] +// CHECK:STDOUT: %tuple: %tuple.type.261 = tuple_value (%true, %int_34.980) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %struct_type.index.b1b: type = struct_type {.index: Core.IntLiteral} [template] // CHECK:STDOUT: %struct.972: %struct_type.index.b1b = struct_value (%int_1.5b8) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] -// CHECK:STDOUT: %Convert.type.1b9: type = fn_type @Convert.4, @As(%i32) [template] -// CHECK:STDOUT: %impl_witness.c9a: = impl_witness (imports.%import_ref.6fa), @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.type.531: type = fn_type @Convert.5, @impl.3(%int_32) [template] -// CHECK:STDOUT: %Convert.6c4: %Convert.type.531 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.47b: = bound_method %int_0.5c6, %Convert.6c4 [template] -// CHECK:STDOUT: %Convert.specific_fn.e13: = specific_function %Convert.bound.47b, @Convert.5(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %impl_witness.dd3: = impl_witness (imports.%import_ref.a80), @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.type.d18: type = fn_type @Convert.3, @impl.2(%int_32) [template] -// CHECK:STDOUT: %Convert.079: %Convert.type.d18 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.64e: = bound_method %int_0.f61, %Convert.079 [template] -// CHECK:STDOUT: %Convert.specific_fn.f03: = specific_function %Convert.bound.64e, @Convert.3(%int_32) [template] -// CHECK:STDOUT: %Convert.bound.e50: = bound_method %int_1.5b8, %Convert.6c4 [template] -// CHECK:STDOUT: %Convert.specific_fn.f7a: = specific_function %Convert.bound.e50, @Convert.5(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %struct_type.index.bb3: type = struct_type {.index: %i32} [template] -// CHECK:STDOUT: %struct.a97: %struct_type.index.bb3 = struct_value (%int_1.c60) [template] -// CHECK:STDOUT: %Convert.bound.7d6: = bound_method %int_1.c60, %Convert.079 [template] -// CHECK:STDOUT: %Convert.specific_fn.08c: = specific_function %Convert.bound.7d6, @Convert.3(%int_32) [template] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.4, @As(%i32) [template] +// CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%import_ref.78a), @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.3(%int_32) [template] +// CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.129: = bound_method %int_0.5c6, %Convert.197 [template] +// CHECK:STDOUT: %Convert.specific_fn.dc5: = specific_function %Convert.bound.129, @Convert.5(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%import_ref.85c), @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.2(%int_32) [template] +// CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.0fd: = bound_method %int_0.6a9, %Convert.960 [template] +// CHECK:STDOUT: %Convert.specific_fn.f3f: = specific_function %Convert.bound.0fd, @Convert.3(%int_32) [template] +// CHECK:STDOUT: %Convert.bound.c1b: = bound_method %int_1.5b8, %Convert.197 [template] +// CHECK:STDOUT: %Convert.specific_fn.f9a: = specific_function %Convert.bound.c1b, @Convert.5(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %struct_type.index.6ea: type = struct_type {.index: %i32} [template] +// CHECK:STDOUT: %struct.63a: %struct_type.index.6ea = struct_value (%int_1.5d2) [template] +// CHECK:STDOUT: %Convert.bound.faf: = bound_method %int_1.5d2, %Convert.960 [template] +// CHECK:STDOUT: %Convert.specific_fn.a84: = specific_function %Convert.bound.faf, @Convert.3(%int_32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .As = %import_ref.166 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .As = %import_ref.16b // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -76,8 +76,8 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: .d = %d // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.c2e = var a -// CHECK:STDOUT: %a: ref %tuple.type.c2e = bind_name a, %a.var +// CHECK:STDOUT: %a.var: ref %tuple.type.261 = var a +// CHECK:STDOUT: %a: ref %tuple.type.261 = bind_name a, %a.var // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %c.var: ref bool = var c @@ -93,17 +93,17 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %.loc11_31.1: %tuple.type.3c2 = tuple_literal (%true, %int_34) // CHECK:STDOUT: %tuple.elem0.loc11: ref bool = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_31.2: init bool = initialize_from %true to %tuple.elem0.loc11 [template = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc11: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_34, %impl.elem0.loc11 [template = constants.%Convert.bound.eae] -// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.767] -// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_34) [template = constants.%int_34.bd3] -// CHECK:STDOUT: %.loc11_31.3: init %i32 = converted %int_34, %int.convert_checked.loc11 [template = constants.%int_34.bd3] +// CHECK:STDOUT: %impl.elem0.loc11: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11: = bound_method %int_34, %impl.elem0.loc11 [template = constants.%Convert.bound.82c] +// CHECK:STDOUT: %Convert.specific_fn.loc11: = specific_function %Convert.bound.loc11, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.6d4] +// CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %Convert.specific_fn.loc11(%int_34) [template = constants.%int_34.980] +// CHECK:STDOUT: %.loc11_31.3: init %i32 = converted %int_34, %int.convert_checked.loc11 [template = constants.%int_34.980] // CHECK:STDOUT: %tuple.elem1.loc11: ref %i32 = tuple_access file.%a.var, element1 -// CHECK:STDOUT: %.loc11_31.4: init %i32 = initialize_from %.loc11_31.3 to %tuple.elem1.loc11 [template = constants.%int_34.bd3] -// CHECK:STDOUT: %.loc11_31.5: init %tuple.type.c2e = tuple_init (%.loc11_31.2, %.loc11_31.4) to file.%a.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_32: init %tuple.type.c2e = converted %.loc11_31.1, %.loc11_31.5 [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_31.4: init %i32 = initialize_from %.loc11_31.3 to %tuple.elem1.loc11 [template = constants.%int_34.980] +// CHECK:STDOUT: %.loc11_31.5: init %tuple.type.261 = tuple_init (%.loc11_31.2, %.loc11_31.4) to file.%a.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_32: init %tuple.type.261 = converted %.loc11_31.1, %.loc11_31.5 [template = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_32 -// CHECK:STDOUT: %a.ref.loc12: ref %tuple.type.c2e = name_ref a, file.%a +// CHECK:STDOUT: %a.ref.loc12: ref %tuple.type.261 = name_ref a, file.%a // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc12_28.1: %struct_type.index.b1b = struct_literal (%int_1.loc12) // CHECK:STDOUT: %struct.loc12: %struct_type.index.b1b = struct_value (%int_1.loc12) [template = constants.%struct.972] @@ -112,42 +112,42 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %tuple.elem1.loc12: ref %i32 = tuple_access %a.ref.loc12, element1 // CHECK:STDOUT: %.loc12_15: %i32 = bind_value %tuple.elem1.loc12 // CHECK:STDOUT: assign file.%b.var, %.loc12_15 -// CHECK:STDOUT: %a.ref.loc13: ref %tuple.type.c2e = name_ref a, file.%a +// CHECK:STDOUT: %a.ref.loc13: ref %tuple.type.261 = name_ref a, file.%a // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc13: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc13_20.1: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.c9a, element0 [template = constants.%Convert.6c4] -// CHECK:STDOUT: %Convert.bound.loc13_20.1: = bound_method %int_0, %impl.elem0.loc13_20.1 [template = constants.%Convert.bound.47b] -// CHECK:STDOUT: %Convert.specific_fn.loc13_20.1: = specific_function %Convert.bound.loc13_20.1, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn.e13] -// CHECK:STDOUT: %int.convert_checked.loc13_20.1: init %i32 = call %Convert.specific_fn.loc13_20.1(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc13_20.1: %i32 = value_of_initializer %int.convert_checked.loc13_20.1 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc13_20.2: %i32 = converted %int_0, %.loc13_20.1 [template = constants.%int_0.f61] -// CHECK:STDOUT: %impl.elem0.loc13_20.2: %Convert.type.a9b = impl_witness_access constants.%impl_witness.dd3, element0 [template = constants.%Convert.079] -// CHECK:STDOUT: %Convert.bound.loc13_20.2: = bound_method %.loc13_20.2, %impl.elem0.loc13_20.2 [template = constants.%Convert.bound.64e] -// CHECK:STDOUT: %Convert.specific_fn.loc13_20.2: = specific_function %Convert.bound.loc13_20.2, @Convert.3(constants.%int_32) [template = constants.%Convert.specific_fn.f03] +// CHECK:STDOUT: %impl.elem0.loc13_20.1: %Convert.type.99b = impl_witness_access constants.%impl_witness.882, element0 [template = constants.%Convert.197] +// CHECK:STDOUT: %Convert.bound.loc13_20.1: = bound_method %int_0, %impl.elem0.loc13_20.1 [template = constants.%Convert.bound.129] +// CHECK:STDOUT: %Convert.specific_fn.loc13_20.1: = specific_function %Convert.bound.loc13_20.1, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn.dc5] +// CHECK:STDOUT: %int.convert_checked.loc13_20.1: init %i32 = call %Convert.specific_fn.loc13_20.1(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc13_20.1: %i32 = value_of_initializer %int.convert_checked.loc13_20.1 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc13_20.2: %i32 = converted %int_0, %.loc13_20.1 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %impl.elem0.loc13_20.2: %Convert.type.71e = impl_witness_access constants.%impl_witness.023, element0 [template = constants.%Convert.960] +// CHECK:STDOUT: %Convert.bound.loc13_20.2: = bound_method %.loc13_20.2, %impl.elem0.loc13_20.2 [template = constants.%Convert.bound.0fd] +// CHECK:STDOUT: %Convert.specific_fn.loc13_20.2: = specific_function %Convert.bound.loc13_20.2, @Convert.3(constants.%int_32) [template = constants.%Convert.specific_fn.f3f] // CHECK:STDOUT: %int.convert_checked.loc13_20.2: init Core.IntLiteral = call %Convert.specific_fn.loc13_20.2(%.loc13_20.2) [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc13_20.3: Core.IntLiteral = value_of_initializer %int.convert_checked.loc13_20.2 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc13_20.4: Core.IntLiteral = converted %.loc13_20.2, %.loc13_20.3 [template = constants.%int_0.5c6] // CHECK:STDOUT: %tuple.elem0.loc13: ref bool = tuple_access %a.ref.loc13, element0 // CHECK:STDOUT: %.loc13_16: bool = bind_value %tuple.elem0.loc13 // CHECK:STDOUT: assign file.%c.var, %.loc13_16 -// CHECK:STDOUT: %a.ref.loc14: ref %tuple.type.c2e = name_ref a, file.%a +// CHECK:STDOUT: %a.ref.loc14: ref %tuple.type.261 = name_ref a, file.%a // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc14: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc14: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc14_29: %Convert.type.1b9 = impl_witness_access constants.%impl_witness.c9a, element0 [template = constants.%Convert.6c4] -// CHECK:STDOUT: %Convert.bound.loc14_29: = bound_method %int_1.loc14, %impl.elem0.loc14_29 [template = constants.%Convert.bound.e50] -// CHECK:STDOUT: %Convert.specific_fn.loc14_29: = specific_function %Convert.bound.loc14_29, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn.f7a] -// CHECK:STDOUT: %int.convert_checked.loc14_29: init %i32 = call %Convert.specific_fn.loc14_29(%int_1.loc14) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_29.1: %i32 = value_of_initializer %int.convert_checked.loc14_29 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_29.2: %i32 = converted %int_1.loc14, %.loc14_29.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc14_35.1: %struct_type.index.bb3 = struct_literal (%.loc14_29.2) -// CHECK:STDOUT: %struct.loc14: %struct_type.index.bb3 = struct_value (%.loc14_29.2) [template = constants.%struct.a97] -// CHECK:STDOUT: %.loc14_35.2: %struct_type.index.bb3 = converted %.loc14_35.1, %struct.loc14 [template = constants.%struct.a97] -// CHECK:STDOUT: %.loc14_36.1: %i32 = struct_access %.loc14_35.2, element0 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc14_36: %Convert.type.a9b = impl_witness_access constants.%impl_witness.dd3, element0 [template = constants.%Convert.079] -// CHECK:STDOUT: %Convert.bound.loc14_36: = bound_method %.loc14_36.1, %impl.elem0.loc14_36 [template = constants.%Convert.bound.7d6] -// CHECK:STDOUT: %Convert.specific_fn.loc14_36: = specific_function %Convert.bound.loc14_36, @Convert.3(constants.%int_32) [template = constants.%Convert.specific_fn.08c] +// CHECK:STDOUT: %impl.elem0.loc14_29: %Convert.type.99b = impl_witness_access constants.%impl_witness.882, element0 [template = constants.%Convert.197] +// CHECK:STDOUT: %Convert.bound.loc14_29: = bound_method %int_1.loc14, %impl.elem0.loc14_29 [template = constants.%Convert.bound.c1b] +// CHECK:STDOUT: %Convert.specific_fn.loc14_29: = specific_function %Convert.bound.loc14_29, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn.f9a] +// CHECK:STDOUT: %int.convert_checked.loc14_29: init %i32 = call %Convert.specific_fn.loc14_29(%int_1.loc14) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_29.1: %i32 = value_of_initializer %int.convert_checked.loc14_29 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_29.2: %i32 = converted %int_1.loc14, %.loc14_29.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc14_35.1: %struct_type.index.6ea = struct_literal (%.loc14_29.2) +// CHECK:STDOUT: %struct.loc14: %struct_type.index.6ea = struct_value (%.loc14_29.2) [template = constants.%struct.63a] +// CHECK:STDOUT: %.loc14_35.2: %struct_type.index.6ea = converted %.loc14_35.1, %struct.loc14 [template = constants.%struct.63a] +// CHECK:STDOUT: %.loc14_36.1: %i32 = struct_access %.loc14_35.2, element0 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc14_36: %Convert.type.71e = impl_witness_access constants.%impl_witness.023, element0 [template = constants.%Convert.960] +// CHECK:STDOUT: %Convert.bound.loc14_36: = bound_method %.loc14_36.1, %impl.elem0.loc14_36 [template = constants.%Convert.bound.faf] +// CHECK:STDOUT: %Convert.specific_fn.loc14_36: = specific_function %Convert.bound.loc14_36, @Convert.3(constants.%int_32) [template = constants.%Convert.specific_fn.a84] // CHECK:STDOUT: %int.convert_checked.loc14_36: init Core.IntLiteral = call %Convert.specific_fn.loc14_36(%.loc14_36.1) [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_36.2: Core.IntLiteral = value_of_initializer %int.convert_checked.loc14_36 [template = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_36.3: Core.IntLiteral = converted %.loc14_36.1, %.loc14_36.2 [template = constants.%int_1.5b8] diff --git a/toolchain/check/testdata/tuple/access/return_value_access.carbon b/toolchain/check/testdata/tuple/access/return_value_access.carbon index d9bb445f6bba..053714911706 100644 --- a/toolchain/check/testdata/tuple/access/return_value_access.carbon +++ b/toolchain/check/testdata/tuple/access/return_value_access.carbon @@ -20,27 +20,27 @@ fn Run() -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_0.f61) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_0.6a9) [template] // CHECK:STDOUT: %Run.type: type = fn_type @Run [template] // CHECK:STDOUT: %Run: %Run.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -54,15 +54,15 @@ fn Run() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %return.patt: %tuple.type.0e4 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.0e4 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.a1c = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.a1c = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc11_16.1: %tuple.type.85c = tuple_literal (%i32) -// CHECK:STDOUT: %.loc11_16.2: type = converted %.loc11_16.1, constants.%tuple.type.0e4 [template = constants.%tuple.type.0e4] -// CHECK:STDOUT: %return.param: ref %tuple.type.0e4 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %tuple.type.0e4 = return_slot %return.param +// CHECK:STDOUT: %.loc11_16.2: type = converted %.loc11_16.1, constants.%tuple.type.a1c [template = constants.%tuple.type.a1c] +// CHECK:STDOUT: %return.param: ref %tuple.type.a1c = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %tuple.type.a1c = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [template = constants.%Run] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern @@ -77,28 +77,28 @@ fn Run() -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %tuple.type.0e4 { +// CHECK:STDOUT: fn @F() -> %tuple.type.a1c { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc11_30.1: %tuple.type.985 = tuple_literal (%int_0) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_30.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc11_30.3: %i32 = converted %int_0, %.loc11_30.2 [template = constants.%int_0.f61] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%.loc11_30.3) [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_31: %tuple.type.0e4 = converted %.loc11_30.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_30.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc11_30.3: %i32 = converted %int_0, %.loc11_30.2 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%.loc11_30.3) [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_31: %tuple.type.a1c = converted %.loc11_30.1, %tuple [template = constants.%tuple] // CHECK:STDOUT: return %.loc11_31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %F.call: init %tuple.type.0e4 = call %F.ref() +// CHECK:STDOUT: %F.call: init %tuple.type.a1c = call %F.ref() // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] -// CHECK:STDOUT: %.loc14_12.1: ref %tuple.type.0e4 = temporary_storage -// CHECK:STDOUT: %.loc14_12.2: ref %tuple.type.0e4 = temporary %.loc14_12.1, %F.call +// CHECK:STDOUT: %.loc14_12.1: ref %tuple.type.a1c = temporary_storage +// CHECK:STDOUT: %.loc14_12.2: ref %tuple.type.a1c = temporary %.loc14_12.1, %F.call // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc14_12.2, element0 // CHECK:STDOUT: %.loc14_13: %i32 = bind_value %tuple.elem0 // CHECK:STDOUT: return %.loc14_13 diff --git a/toolchain/check/testdata/tuple/fail_assign_nested.carbon b/toolchain/check/testdata/tuple/fail_assign_nested.carbon index a2bf8784ae4e..6ed017c0d30c 100644 --- a/toolchain/check/testdata/tuple/fail_assign_nested.carbon +++ b/toolchain/check/testdata/tuple/fail_assign_nested.carbon @@ -18,8 +18,8 @@ var x: ((i32, i32), (i32, i32)) = ((1, 2, 3), (4, 5, 6)); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %tuple.type.c0a: type = tuple_type (%tuple.type.471, %tuple.type.471) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.ff1: type = tuple_type (%tuple.type.d07, %tuple.type.d07) [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template] @@ -32,7 +32,7 @@ var x: ((i32, i32), (i32, i32)) = ((1, 2, 3), (4, 5, 6)); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -44,8 +44,8 @@ var x: ((i32, i32), (i32, i32)) = ((1, 2, 3), (4, 5, 6)); // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %tuple.type.c0a = var x -// CHECK:STDOUT: %x: ref %tuple.type.c0a = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %tuple.type.ff1 = var x +// CHECK:STDOUT: %x: ref %tuple.type.ff1 = bind_name x, %x.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/tuple/fail_element_type_mismatch.carbon b/toolchain/check/testdata/tuple/fail_element_type_mismatch.carbon index ab2c6156a229..fc0d41e4f000 100644 --- a/toolchain/check/testdata/tuple/fail_element_type_mismatch.carbon +++ b/toolchain/check/testdata/tuple/fail_element_type_mismatch.carbon @@ -21,23 +21,23 @@ var x: (i32, i32) = (2, 65.89); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %float: f64 = float_literal 65.890000000000001 [template] // CHECK:STDOUT: %tuple.type.2c1: type = tuple_type (Core.IntLiteral, f64) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -49,8 +49,8 @@ var x: (i32, i32) = (2, 65.89); // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %tuple.type.471 = var x -// CHECK:STDOUT: %x: ref %tuple.type.471 = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %tuple.type.d07 = var x +// CHECK:STDOUT: %x: ref %tuple.type.d07 = bind_name x, %x.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -58,13 +58,13 @@ var x: (i32, i32) = (2, 65.89); // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %float: f64 = float_literal 65.890000000000001 [template = constants.%float] // CHECK:STDOUT: %.loc17_30.1: %tuple.type.2c1 = tuple_literal (%int_2, %float) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc17_30.2: init %i32 = converted %int_2, %int.convert_checked [template = constants.%int_2.166] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc17_30.2: init %i32 = converted %int_2, %int.convert_checked [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%x.var, element0 -// CHECK:STDOUT: %.loc17_30.3: init %i32 = initialize_from %.loc17_30.2 to %tuple.elem0 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc17_30.3: init %i32 = initialize_from %.loc17_30.2 to %tuple.elem0 [template = constants.%int_2.ef8] // CHECK:STDOUT: %.loc17_30.4: %i32 = converted %float, [template = ] // CHECK:STDOUT: assign file.%x.var, // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/tuple/fail_nested_incomplete.carbon b/toolchain/check/testdata/tuple/fail_nested_incomplete.carbon index 5cc12783cdc4..aa2a2d71fb27 100644 --- a/toolchain/check/testdata/tuple/fail_nested_incomplete.carbon +++ b/toolchain/check/testdata/tuple/fail_nested_incomplete.carbon @@ -30,7 +30,7 @@ var p: Incomplete* = &t[1]; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/fail_too_few_element.carbon b/toolchain/check/testdata/tuple/fail_too_few_element.carbon index 28f609b23c9d..57d68ea09902 100644 --- a/toolchain/check/testdata/tuple/fail_too_few_element.carbon +++ b/toolchain/check/testdata/tuple/fail_too_few_element.carbon @@ -18,14 +18,14 @@ var x: (i32, i32) = (2, ); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -37,8 +37,8 @@ var x: (i32, i32) = (2, ); // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %tuple.type.471 = var x -// CHECK:STDOUT: %x: ref %tuple.type.471 = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %tuple.type.d07 = var x +// CHECK:STDOUT: %x: ref %tuple.type.d07 = bind_name x, %x.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/tuple/fail_type_assign.carbon b/toolchain/check/testdata/tuple/fail_type_assign.carbon index 7e8090878c10..e6702bb1d973 100644 --- a/toolchain/check/testdata/tuple/fail_type_assign.carbon +++ b/toolchain/check/testdata/tuple/fail_type_assign.carbon @@ -22,13 +22,13 @@ var x: (i32, ) = (i32, ); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -40,8 +40,8 @@ var x: (i32, ) = (i32, ); // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %tuple.type.0e4 = var x -// CHECK:STDOUT: %x: ref %tuple.type.0e4 = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %tuple.type.a1c = var x +// CHECK:STDOUT: %x: ref %tuple.type.a1c = bind_name x, %x.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/tuple/fail_value_as_type.carbon b/toolchain/check/testdata/tuple/fail_value_as_type.carbon index 83e2ee94c851..3b231e5d88f4 100644 --- a/toolchain/check/testdata/tuple/fail_value_as_type.carbon +++ b/toolchain/check/testdata/tuple/fail_value_as_type.carbon @@ -23,7 +23,7 @@ var x: (1, ); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/import.carbon b/toolchain/check/testdata/tuple/import.carbon index 47d4fa8a0f9b..1ae9e8d10691 100644 --- a/toolchain/check/testdata/tuple/import.carbon +++ b/toolchain/check/testdata/tuple/import.carbon @@ -58,56 +58,56 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.b41: = bound_method %int_0.5c6, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c35: = specific_function %Convert.bound.b41, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_0.f61: %i32 = int_value 0 [template] -// CHECK:STDOUT: %tuple.2c2: %tuple.type.0e4 = tuple_value (%int_0.f61) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.d62: = specific_function %Convert.bound.d04, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [template] +// CHECK:STDOUT: %tuple.592: %tuple.type.a1c = tuple_value (%int_0.6a9) [template] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [template] -// CHECK:STDOUT: %tuple.type.0e1: type = tuple_type (%tuple.type.0e4, %i32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %tuple.type.b19: type = tuple_type (%tuple.type.0e1, %tuple.type.471) [template] +// CHECK:STDOUT: %tuple.type.fe6: type = tuple_type (%tuple.type.a1c, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.fc1: type = tuple_type (%tuple.type.fe6, %tuple.type.d07) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %tuple.type.186: type = tuple_type (%tuple.type.985, Core.IntLiteral) [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %tuple.type.d47: type = tuple_type (%tuple.type.186, %tuple.type.f94) [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %tuple.20c: %tuple.type.0e1 = tuple_value (%tuple.2c2, %int_1.c60) [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] -// CHECK:STDOUT: %Convert.bound.0db: = bound_method %int_3.1ba, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.456: = specific_function %Convert.bound.0db, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_3.25b: %i32 = int_value 3 [template] -// CHECK:STDOUT: %tuple.44c: %tuple.type.471 = tuple_value (%int_2.166, %int_3.25b) [template] -// CHECK:STDOUT: %tuple.125: %tuple.type.b19 = tuple_value (%tuple.20c, %tuple.44c) [template] -// CHECK:STDOUT: %X: %tuple.type.471 = bind_symbolic_name X, 0 [symbolic] -// CHECK:STDOUT: %X.patt: %tuple.type.471 = symbolic_binding_pattern X, 0 [symbolic] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %tuple.236: %tuple.type.fe6 = tuple_value (%tuple.592, %int_1.5d2) [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] +// CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.b42: = specific_function %Convert.bound.b30, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [template] +// CHECK:STDOUT: %tuple.11a: %tuple.type.d07 = tuple_value (%int_2.ef8, %int_3.822) [template] +// CHECK:STDOUT: %tuple.ba9: %tuple.type.fc1 = tuple_value (%tuple.236, %tuple.11a) [template] +// CHECK:STDOUT: %X: %tuple.type.d07 = bind_symbolic_name X, 0 [symbolic] +// CHECK:STDOUT: %X.patt: %tuple.type.d07 = symbolic_binding_pattern X, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] -// CHECK:STDOUT: %C.617: type = class_type @C, @C(%X) [symbolic] +// CHECK:STDOUT: %C.54f: type = class_type @C, @C(%X) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %tuple.58e: %tuple.type.471 = tuple_value (%int_1.c60, %int_2.166) [template] -// CHECK:STDOUT: %C.614: type = class_type @C, @C(%tuple.58e) [template] +// CHECK:STDOUT: %tuple.21c: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_2.ef8) [template] +// CHECK:STDOUT: %C.ee0: type = class_type @C, @C(%tuple.21c) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -122,56 +122,56 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a_ref.var: ref %tuple.type.0e4 = var a_ref -// CHECK:STDOUT: %a_ref: ref %tuple.type.0e4 = bind_name a_ref, %a_ref.var -// CHECK:STDOUT: %b_ref.var: ref %tuple.type.b19 = var b_ref -// CHECK:STDOUT: %b_ref: ref %tuple.type.b19 = bind_name b_ref, %b_ref.var +// CHECK:STDOUT: %a_ref.var: ref %tuple.type.a1c = var a_ref +// CHECK:STDOUT: %a_ref: ref %tuple.type.a1c = bind_name a_ref, %a_ref.var +// CHECK:STDOUT: %b_ref.var: ref %tuple.type.fc1 = var b_ref +// CHECK:STDOUT: %b_ref: ref %tuple.type.fc1 = bind_name b_ref, %b_ref.var // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [template = constants.%C.generic] { -// CHECK:STDOUT: %X.patt.loc7_9.1: %tuple.type.471 = symbolic_binding_pattern X, 0 [symbolic = %X.patt.loc7_9.2 (constants.%X.patt)] -// CHECK:STDOUT: %X.param_patt: %tuple.type.471 = value_param_pattern %X.patt.loc7_9.1, runtime_param [symbolic = %X.patt.loc7_9.2 (constants.%X.patt)] +// CHECK:STDOUT: %X.patt.loc7_9.1: %tuple.type.d07 = symbolic_binding_pattern X, 0 [symbolic = %X.patt.loc7_9.2 (constants.%X.patt)] +// CHECK:STDOUT: %X.param_patt: %tuple.type.d07 = value_param_pattern %X.patt.loc7_9.1, runtime_param [symbolic = %X.patt.loc7_9.2 (constants.%X.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %X.param: %tuple.type.471 = value_param runtime_param -// CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [template = constants.%tuple.type.471] { +// CHECK:STDOUT: %X.param: %tuple.type.d07 = value_param runtime_param +// CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [template = constants.%tuple.type.d07] { // CHECK:STDOUT: %int_32.loc7_14: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc7_14: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %int_32.loc7_19: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc7_19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc7_22.2: %tuple.type.24b = tuple_literal (%i32.loc7_14, %i32.loc7_19) -// CHECK:STDOUT: %.loc7_22.3: type = converted %.loc7_22.2, constants.%tuple.type.471 [template = constants.%tuple.type.471] +// CHECK:STDOUT: %.loc7_22.3: type = converted %.loc7_22.2, constants.%tuple.type.d07 [template = constants.%tuple.type.d07] // CHECK:STDOUT: } -// CHECK:STDOUT: %X.loc7_9.1: %tuple.type.471 = bind_symbolic_name X, 0, %X.param [symbolic = %X.loc7_9.2 (constants.%X)] +// CHECK:STDOUT: %X.loc7_9.1: %tuple.type.d07 = bind_symbolic_name X, 0, %X.param [symbolic = %X.loc7_9.2 (constants.%X)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %return.patt: %C.614 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %C.614 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %C.ee0 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %C.ee0 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] // CHECK:STDOUT: %.loc9_18.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc9_18.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc9_18.1: = bound_method %int_1, %impl.elem0.loc9_18.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc9_18.1: = specific_function %Convert.bound.loc9_18.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc9_18.1: init %i32 = call %Convert.specific_fn.loc9_18.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc9_18.2: %i32 = value_of_initializer %int.convert_checked.loc9_18.1 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc9_18.3: %i32 = converted %int_1, %.loc9_18.2 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc9_18.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc9_18.2: = bound_method %int_2, %impl.elem0.loc9_18.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc9_18.2: = specific_function %Convert.bound.loc9_18.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc9_18.2: init %i32 = call %Convert.specific_fn.loc9_18.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc9_18.4: %i32 = value_of_initializer %int.convert_checked.loc9_18.2 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc9_18.5: %i32 = converted %int_2, %.loc9_18.4 [template = constants.%int_2.166] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%.loc9_18.3, %.loc9_18.5) [template = constants.%tuple.58e] -// CHECK:STDOUT: %.loc9_19: %tuple.type.471 = converted %.loc9_18.1, %tuple [template = constants.%tuple.58e] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%tuple.58e) [template = constants.%C.614] -// CHECK:STDOUT: %return.param: ref %C.614 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %C.614 = return_slot %return.param +// CHECK:STDOUT: %impl.elem0.loc9_18.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc9_18.1: = bound_method %int_1, %impl.elem0.loc9_18.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc9_18.1: = specific_function %Convert.bound.loc9_18.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc9_18.1: init %i32 = call %Convert.specific_fn.loc9_18.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc9_18.2: %i32 = value_of_initializer %int.convert_checked.loc9_18.1 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc9_18.3: %i32 = converted %int_1, %.loc9_18.2 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc9_18.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc9_18.2: = bound_method %int_2, %impl.elem0.loc9_18.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc9_18.2: = specific_function %Convert.bound.loc9_18.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc9_18.2: init %i32 = call %Convert.specific_fn.loc9_18.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc9_18.4: %i32 = value_of_initializer %int.convert_checked.loc9_18.2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc9_18.5: %i32 = converted %int_2, %.loc9_18.4 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%.loc9_18.3, %.loc9_18.5) [template = constants.%tuple.21c] +// CHECK:STDOUT: %.loc9_19: %tuple.type.d07 = converted %.loc9_18.1, %tuple [template = constants.%tuple.21c] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%tuple.21c) [template = constants.%C.ee0] +// CHECK:STDOUT: %return.param: ref %C.ee0 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %C.ee0 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%X.loc7_9.1: %tuple.type.471) { -// CHECK:STDOUT: %X.loc7_9.2: %tuple.type.471 = bind_symbolic_name X, 0 [symbolic = %X.loc7_9.2 (constants.%X)] -// CHECK:STDOUT: %X.patt.loc7_9.2: %tuple.type.471 = symbolic_binding_pattern X, 0 [symbolic = %X.patt.loc7_9.2 (constants.%X.patt)] +// CHECK:STDOUT: generic class @C(%X.loc7_9.1: %tuple.type.d07) { +// CHECK:STDOUT: %X.loc7_9.2: %tuple.type.d07 = bind_symbolic_name X, 0 [symbolic = %X.loc7_9.2 (constants.%X)] +// CHECK:STDOUT: %X.patt.loc7_9.2: %tuple.type.d07 = symbolic_binding_pattern X, 0 [symbolic = %X.patt.loc7_9.2 (constants.%X.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -179,24 +179,24 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template = constants.%complete_type.357] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.617 +// CHECK:STDOUT: .Self = constants.%C.54f // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %C.614; +// CHECK:STDOUT: fn @F() -> %C.ee0; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0.loc4: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc4_24.1: %tuple.type.985 = tuple_literal (%int_0.loc4) -// CHECK:STDOUT: %impl.elem0.loc4: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc4: = bound_method %int_0.loc4, %impl.elem0.loc4 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc4: = specific_function %Convert.bound.loc4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc4: init %i32 = call %Convert.specific_fn.loc4(%int_0.loc4) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4_24.2: init %i32 = converted %int_0.loc4, %int.convert_checked.loc4 [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc4_24.3: init %tuple.type.0e4 = tuple_init (%.loc4_24.2) to file.%a_ref.var [template = constants.%tuple.2c2] -// CHECK:STDOUT: %.loc4_25: init %tuple.type.0e4 = converted %.loc4_24.1, %.loc4_24.3 [template = constants.%tuple.2c2] +// CHECK:STDOUT: %impl.elem0.loc4: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc4: = bound_method %int_0.loc4, %impl.elem0.loc4 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc4: = specific_function %Convert.bound.loc4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc4: init %i32 = call %Convert.specific_fn.loc4(%int_0.loc4) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4_24.2: init %i32 = converted %int_0.loc4, %int.convert_checked.loc4 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc4_24.3: init %tuple.type.a1c = tuple_init (%.loc4_24.2) to file.%a_ref.var [template = constants.%tuple.592] +// CHECK:STDOUT: %.loc4_25: init %tuple.type.a1c = converted %.loc4_24.1, %.loc4_24.3 [template = constants.%tuple.592] // CHECK:STDOUT: assign file.%a_ref.var, %.loc4_25 // CHECK:STDOUT: %int_0.loc5: Core.IntLiteral = int_value 0 [template = constants.%int_0.5c6] // CHECK:STDOUT: %.loc5_47.1: %tuple.type.985 = tuple_literal (%int_0.loc5) @@ -206,44 +206,44 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1ba] // CHECK:STDOUT: %.loc5_59.1: %tuple.type.f94 = tuple_literal (%int_2, %int_3) // CHECK:STDOUT: %.loc5_60.1: %tuple.type.d47 = tuple_literal (%.loc5_51.1, %.loc5_59.1) -// CHECK:STDOUT: %impl.elem0.loc5_47: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc5_47: = bound_method %int_0.loc5, %impl.elem0.loc5_47 [template = constants.%Convert.bound.b41] -// CHECK:STDOUT: %Convert.specific_fn.loc5_47: = specific_function %Convert.bound.loc5_47, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c35] -// CHECK:STDOUT: %int.convert_checked.loc5_47: init %i32 = call %Convert.specific_fn.loc5_47(%int_0.loc5) [template = constants.%int_0.f61] -// CHECK:STDOUT: %.loc5_47.2: init %i32 = converted %int_0.loc5, %int.convert_checked.loc5_47 [template = constants.%int_0.f61] -// CHECK:STDOUT: %tuple.elem0.loc5_60: ref %tuple.type.0e1 = tuple_access file.%b_ref.var, element0 -// CHECK:STDOUT: %tuple.elem0.loc5_51: ref %tuple.type.0e4 = tuple_access %tuple.elem0.loc5_60, element0 -// CHECK:STDOUT: %.loc5_47.3: init %tuple.type.0e4 = tuple_init (%.loc5_47.2) to %tuple.elem0.loc5_51 [template = constants.%tuple.2c2] -// CHECK:STDOUT: %.loc5_51.2: init %tuple.type.0e4 = converted %.loc5_47.1, %.loc5_47.3 [template = constants.%tuple.2c2] -// CHECK:STDOUT: %.loc5_51.3: init %tuple.type.0e4 = initialize_from %.loc5_51.2 to %tuple.elem0.loc5_51 [template = constants.%tuple.2c2] -// CHECK:STDOUT: %impl.elem0.loc5_51: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc5_51: = bound_method %int_1, %impl.elem0.loc5_51 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc5_51: = specific_function %Convert.bound.loc5_51, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc5_51: init %i32 = call %Convert.specific_fn.loc5_51(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc5_51.4: init %i32 = converted %int_1, %int.convert_checked.loc5_51 [template = constants.%int_1.c60] +// CHECK:STDOUT: %impl.elem0.loc5_47: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc5_47: = bound_method %int_0.loc5, %impl.elem0.loc5_47 [template = constants.%Convert.bound.d04] +// CHECK:STDOUT: %Convert.specific_fn.loc5_47: = specific_function %Convert.bound.loc5_47, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.d62] +// CHECK:STDOUT: %int.convert_checked.loc5_47: init %i32 = call %Convert.specific_fn.loc5_47(%int_0.loc5) [template = constants.%int_0.6a9] +// CHECK:STDOUT: %.loc5_47.2: init %i32 = converted %int_0.loc5, %int.convert_checked.loc5_47 [template = constants.%int_0.6a9] +// CHECK:STDOUT: %tuple.elem0.loc5_60: ref %tuple.type.fe6 = tuple_access file.%b_ref.var, element0 +// CHECK:STDOUT: %tuple.elem0.loc5_51: ref %tuple.type.a1c = tuple_access %tuple.elem0.loc5_60, element0 +// CHECK:STDOUT: %.loc5_47.3: init %tuple.type.a1c = tuple_init (%.loc5_47.2) to %tuple.elem0.loc5_51 [template = constants.%tuple.592] +// CHECK:STDOUT: %.loc5_51.2: init %tuple.type.a1c = converted %.loc5_47.1, %.loc5_47.3 [template = constants.%tuple.592] +// CHECK:STDOUT: %.loc5_51.3: init %tuple.type.a1c = initialize_from %.loc5_51.2 to %tuple.elem0.loc5_51 [template = constants.%tuple.592] +// CHECK:STDOUT: %impl.elem0.loc5_51: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc5_51: = bound_method %int_1, %impl.elem0.loc5_51 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc5_51: = specific_function %Convert.bound.loc5_51, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc5_51: init %i32 = call %Convert.specific_fn.loc5_51(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc5_51.4: init %i32 = converted %int_1, %int.convert_checked.loc5_51 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem1.loc5_51: ref %i32 = tuple_access %tuple.elem0.loc5_60, element1 -// CHECK:STDOUT: %.loc5_51.5: init %i32 = initialize_from %.loc5_51.4 to %tuple.elem1.loc5_51 [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc5_51.6: init %tuple.type.0e1 = tuple_init (%.loc5_51.3, %.loc5_51.5) to %tuple.elem0.loc5_60 [template = constants.%tuple.20c] -// CHECK:STDOUT: %.loc5_60.2: init %tuple.type.0e1 = converted %.loc5_51.1, %.loc5_51.6 [template = constants.%tuple.20c] -// CHECK:STDOUT: %impl.elem0.loc5_59.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc5_59.1: = bound_method %int_2, %impl.elem0.loc5_59.1 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc5_59.1: = specific_function %Convert.bound.loc5_59.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc5_59.1: init %i32 = call %Convert.specific_fn.loc5_59.1(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc5_59.2: init %i32 = converted %int_2, %int.convert_checked.loc5_59.1 [template = constants.%int_2.166] -// CHECK:STDOUT: %tuple.elem1.loc5_60: ref %tuple.type.471 = tuple_access file.%b_ref.var, element1 +// CHECK:STDOUT: %.loc5_51.5: init %i32 = initialize_from %.loc5_51.4 to %tuple.elem1.loc5_51 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc5_51.6: init %tuple.type.fe6 = tuple_init (%.loc5_51.3, %.loc5_51.5) to %tuple.elem0.loc5_60 [template = constants.%tuple.236] +// CHECK:STDOUT: %.loc5_60.2: init %tuple.type.fe6 = converted %.loc5_51.1, %.loc5_51.6 [template = constants.%tuple.236] +// CHECK:STDOUT: %impl.elem0.loc5_59.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc5_59.1: = bound_method %int_2, %impl.elem0.loc5_59.1 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc5_59.1: = specific_function %Convert.bound.loc5_59.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc5_59.1: init %i32 = call %Convert.specific_fn.loc5_59.1(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc5_59.2: init %i32 = converted %int_2, %int.convert_checked.loc5_59.1 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %tuple.elem1.loc5_60: ref %tuple.type.d07 = tuple_access file.%b_ref.var, element1 // CHECK:STDOUT: %tuple.elem0.loc5_59: ref %i32 = tuple_access %tuple.elem1.loc5_60, element0 -// CHECK:STDOUT: %.loc5_59.3: init %i32 = initialize_from %.loc5_59.2 to %tuple.elem0.loc5_59 [template = constants.%int_2.166] -// CHECK:STDOUT: %impl.elem0.loc5_59.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc5_59.2: = bound_method %int_3, %impl.elem0.loc5_59.2 [template = constants.%Convert.bound.0db] -// CHECK:STDOUT: %Convert.specific_fn.loc5_59.2: = specific_function %Convert.bound.loc5_59.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.456] -// CHECK:STDOUT: %int.convert_checked.loc5_59.2: init %i32 = call %Convert.specific_fn.loc5_59.2(%int_3) [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc5_59.4: init %i32 = converted %int_3, %int.convert_checked.loc5_59.2 [template = constants.%int_3.25b] +// CHECK:STDOUT: %.loc5_59.3: init %i32 = initialize_from %.loc5_59.2 to %tuple.elem0.loc5_59 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %impl.elem0.loc5_59.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc5_59.2: = bound_method %int_3, %impl.elem0.loc5_59.2 [template = constants.%Convert.bound.b30] +// CHECK:STDOUT: %Convert.specific_fn.loc5_59.2: = specific_function %Convert.bound.loc5_59.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b42] +// CHECK:STDOUT: %int.convert_checked.loc5_59.2: init %i32 = call %Convert.specific_fn.loc5_59.2(%int_3) [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc5_59.4: init %i32 = converted %int_3, %int.convert_checked.loc5_59.2 [template = constants.%int_3.822] // CHECK:STDOUT: %tuple.elem1.loc5_59: ref %i32 = tuple_access %tuple.elem1.loc5_60, element1 -// CHECK:STDOUT: %.loc5_59.5: init %i32 = initialize_from %.loc5_59.4 to %tuple.elem1.loc5_59 [template = constants.%int_3.25b] -// CHECK:STDOUT: %.loc5_59.6: init %tuple.type.471 = tuple_init (%.loc5_59.3, %.loc5_59.5) to %tuple.elem1.loc5_60 [template = constants.%tuple.44c] -// CHECK:STDOUT: %.loc5_60.3: init %tuple.type.471 = converted %.loc5_59.1, %.loc5_59.6 [template = constants.%tuple.44c] -// CHECK:STDOUT: %.loc5_60.4: init %tuple.type.b19 = tuple_init (%.loc5_60.2, %.loc5_60.3) to file.%b_ref.var [template = constants.%tuple.125] -// CHECK:STDOUT: %.loc5_61: init %tuple.type.b19 = converted %.loc5_60.1, %.loc5_60.4 [template = constants.%tuple.125] +// CHECK:STDOUT: %.loc5_59.5: init %i32 = initialize_from %.loc5_59.4 to %tuple.elem1.loc5_59 [template = constants.%int_3.822] +// CHECK:STDOUT: %.loc5_59.6: init %tuple.type.d07 = tuple_init (%.loc5_59.3, %.loc5_59.5) to %tuple.elem1.loc5_60 [template = constants.%tuple.11a] +// CHECK:STDOUT: %.loc5_60.3: init %tuple.type.d07 = converted %.loc5_59.1, %.loc5_59.6 [template = constants.%tuple.11a] +// CHECK:STDOUT: %.loc5_60.4: init %tuple.type.fc1 = tuple_init (%.loc5_60.2, %.loc5_60.3) to file.%b_ref.var [template = constants.%tuple.ba9] +// CHECK:STDOUT: %.loc5_61: init %tuple.type.fc1 = converted %.loc5_60.1, %.loc5_60.4 [template = constants.%tuple.ba9] // CHECK:STDOUT: assign file.%b_ref.var, %.loc5_61 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -253,9 +253,9 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %X.patt.loc7_9.2 => constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%tuple.58e) { -// CHECK:STDOUT: %X.loc7_9.2 => constants.%tuple.58e -// CHECK:STDOUT: %X.patt.loc7_9.2 => constants.%tuple.58e +// CHECK:STDOUT: specific @C(constants.%tuple.21c) { +// CHECK:STDOUT: %X.loc7_9.2 => constants.%tuple.21c +// CHECK:STDOUT: %X.patt.loc7_9.2 => constants.%tuple.21c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- implicit.impl.carbon @@ -263,45 +263,45 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.590: type = tuple_type (%i32) [template] -// CHECK:STDOUT: %tuple.type.7c4: type = tuple_type (%tuple.type.590, %i32) [template] -// CHECK:STDOUT: %tuple.type.e07: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %tuple.type.fce: type = tuple_type (%tuple.type.7c4, %tuple.type.e07) [template] +// CHECK:STDOUT: %tuple.type.dd4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.154: type = tuple_type (%tuple.type.dd4, %i32) [template] +// CHECK:STDOUT: %tuple.type.c2c: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.cfa: type = tuple_type (%tuple.type.154, %tuple.type.c2c) [template] // CHECK:STDOUT: %C.type: type = generic_class_type @C [template] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %X: %tuple.type.e07 = bind_symbolic_name X, 0 [symbolic] -// CHECK:STDOUT: %X.patt: %tuple.type.e07 = symbolic_binding_pattern X, 0 [symbolic] -// CHECK:STDOUT: %int_1.059: %i32 = int_value 1 [template] -// CHECK:STDOUT: %int_2.ed9: %i32 = int_value 2 [template] -// CHECK:STDOUT: %tuple: %tuple.type.e07 = tuple_value (%int_1.059, %int_2.ed9) [template] -// CHECK:STDOUT: %C.fd9: type = class_type @C, @C(%tuple) [template] +// CHECK:STDOUT: %X: %tuple.type.c2c = bind_symbolic_name X, 0 [symbolic] +// CHECK:STDOUT: %X.patt: %tuple.type.c2c = symbolic_binding_pattern X, 0 [symbolic] +// CHECK:STDOUT: %int_1.47b: %i32 = int_value 1 [template] +// CHECK:STDOUT: %int_2.d0d: %i32 = int_value 2 [template] +// CHECK:STDOUT: %tuple: %tuple.type.c2c = tuple_value (%int_1.47b, %int_2.d0d) [template] +// CHECK:STDOUT: %C.cf0: type = class_type @C, @C(%tuple) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.c6d: ref %tuple.type.590 = import_ref Implicit//default, a_ref, loaded -// CHECK:STDOUT: %import_ref.1fe: ref %tuple.type.fce = import_ref Implicit//default, b_ref, loaded -// CHECK:STDOUT: %import_ref.c9b: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.0dc: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.f99: ref %tuple.type.dd4 = import_ref Implicit//default, a_ref, loaded +// CHECK:STDOUT: %import_ref.447: ref %tuple.type.cfa = import_ref Implicit//default, b_ref, loaded +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.d69 -// CHECK:STDOUT: .ImplicitAs = %import_ref.edd +// CHECK:STDOUT: .Int = %import_ref.2c8 +// CHECK:STDOUT: .ImplicitAs = %import_ref.e26 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Implicit//default, loc7_26, loaded [template = constants.%complete_type.357] -// CHECK:STDOUT: %import_ref.2e0 = import_ref Implicit//default, inst1096 [no loc], unloaded +// CHECK:STDOUT: %import_ref.964 = import_ref Implicit//default, inst1096 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .a_ref = imports.%import_ref.c6d -// CHECK:STDOUT: .b_ref = imports.%import_ref.1fe -// CHECK:STDOUT: .C = imports.%import_ref.c9b -// CHECK:STDOUT: .F = imports.%import_ref.0dc +// CHECK:STDOUT: .a_ref = imports.%import_ref.f99 +// CHECK:STDOUT: .b_ref = imports.%import_ref.447 +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a // CHECK:STDOUT: .b = %b @@ -310,71 +310,71 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %Implicit.import = import Implicit // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %a.var: ref %tuple.type.590 = var a -// CHECK:STDOUT: %a: ref %tuple.type.590 = bind_name a, %a.var -// CHECK:STDOUT: %b.var: ref %tuple.type.fce = var b -// CHECK:STDOUT: %b: ref %tuple.type.fce = bind_name b, %b.var -// CHECK:STDOUT: %c.var: ref %C.fd9 = var c -// CHECK:STDOUT: %c: ref %C.fd9 = bind_name c, %c.var +// CHECK:STDOUT: %a.var: ref %tuple.type.dd4 = var a +// CHECK:STDOUT: %a: ref %tuple.type.dd4 = bind_name a, %a.var +// CHECK:STDOUT: %b.var: ref %tuple.type.cfa = var b +// CHECK:STDOUT: %b: ref %tuple.type.cfa = bind_name b, %b.var +// CHECK:STDOUT: %c.var: ref %C.cf0 = var c +// CHECK:STDOUT: %c: ref %C.cf0 = bind_name c, %c.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(constants.%X: %tuple.type.e07) [from "implicit.carbon"] { -// CHECK:STDOUT: %X: %tuple.type.e07 = bind_symbolic_name X, 0 [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %X.patt: %tuple.type.e07 = symbolic_binding_pattern X, 0 [symbolic = %X.patt (constants.%X.patt)] +// CHECK:STDOUT: generic class @C(constants.%X: %tuple.type.c2c) [from "implicit.carbon"] { +// CHECK:STDOUT: %X: %tuple.type.c2c = bind_symbolic_name X, 0 [symbolic = %X (constants.%X)] +// CHECK:STDOUT: %X.patt: %tuple.type.c2c = symbolic_binding_pattern X, 0 [symbolic = %X.patt (constants.%X.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.2e0 +// CHECK:STDOUT: .Self = imports.%import_ref.964 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %C.fd9 [from "implicit.carbon"]; +// CHECK:STDOUT: fn @F() -> %C.cf0 [from "implicit.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a_ref.ref: ref %tuple.type.590 = name_ref a_ref, imports.%import_ref.c6d +// CHECK:STDOUT: %a_ref.ref: ref %tuple.type.dd4 = name_ref a_ref, imports.%import_ref.f99 // CHECK:STDOUT: %tuple.elem0.loc4: ref %i32 = tuple_access %a_ref.ref, element0 // CHECK:STDOUT: %.loc4_17.1: %i32 = bind_value %tuple.elem0.loc4 -// CHECK:STDOUT: %.loc4_17.2: init %tuple.type.590 = tuple_init (%.loc4_17.1) to file.%a.var -// CHECK:STDOUT: %.loc4_22: init %tuple.type.590 = converted %a_ref.ref, %.loc4_17.2 +// CHECK:STDOUT: %.loc4_17.2: init %tuple.type.dd4 = tuple_init (%.loc4_17.1) to file.%a.var +// CHECK:STDOUT: %.loc4_22: init %tuple.type.dd4 = converted %a_ref.ref, %.loc4_17.2 // CHECK:STDOUT: assign file.%a.var, %.loc4_22 -// CHECK:STDOUT: %b_ref.ref: ref %tuple.type.fce = name_ref b_ref, imports.%import_ref.1fe -// CHECK:STDOUT: %tuple.elem0.loc5_38.1: ref %tuple.type.7c4 = tuple_access %b_ref.ref, element0 -// CHECK:STDOUT: %tuple.elem0.loc5_38.2: ref %tuple.type.590 = tuple_access %tuple.elem0.loc5_38.1, element0 +// CHECK:STDOUT: %b_ref.ref: ref %tuple.type.cfa = name_ref b_ref, imports.%import_ref.447 +// CHECK:STDOUT: %tuple.elem0.loc5_38.1: ref %tuple.type.154 = tuple_access %b_ref.ref, element0 +// CHECK:STDOUT: %tuple.elem0.loc5_38.2: ref %tuple.type.dd4 = tuple_access %tuple.elem0.loc5_38.1, element0 // CHECK:STDOUT: %tuple.elem0.loc5_38.3: ref %i32 = tuple_access %tuple.elem0.loc5_38.2, element0 // CHECK:STDOUT: %.loc5_38.1: %i32 = bind_value %tuple.elem0.loc5_38.3 -// CHECK:STDOUT: %tuple.elem0.loc5_38.4: ref %tuple.type.7c4 = tuple_access file.%b.var, element0 -// CHECK:STDOUT: %tuple.elem0.loc5_38.5: ref %tuple.type.590 = tuple_access %tuple.elem0.loc5_38.4, element0 -// CHECK:STDOUT: %.loc5_38.2: init %tuple.type.590 = tuple_init (%.loc5_38.1) to %tuple.elem0.loc5_38.5 -// CHECK:STDOUT: %.loc5_38.3: init %tuple.type.590 = converted %tuple.elem0.loc5_38.2, %.loc5_38.2 -// CHECK:STDOUT: %.loc5_38.4: init %tuple.type.590 = initialize_from %.loc5_38.3 to %tuple.elem0.loc5_38.5 +// CHECK:STDOUT: %tuple.elem0.loc5_38.4: ref %tuple.type.154 = tuple_access file.%b.var, element0 +// CHECK:STDOUT: %tuple.elem0.loc5_38.5: ref %tuple.type.dd4 = tuple_access %tuple.elem0.loc5_38.4, element0 +// CHECK:STDOUT: %.loc5_38.2: init %tuple.type.dd4 = tuple_init (%.loc5_38.1) to %tuple.elem0.loc5_38.5 +// CHECK:STDOUT: %.loc5_38.3: init %tuple.type.dd4 = converted %tuple.elem0.loc5_38.2, %.loc5_38.2 +// CHECK:STDOUT: %.loc5_38.4: init %tuple.type.dd4 = initialize_from %.loc5_38.3 to %tuple.elem0.loc5_38.5 // CHECK:STDOUT: %tuple.elem1.loc5_38.1: ref %i32 = tuple_access %tuple.elem0.loc5_38.1, element1 // CHECK:STDOUT: %.loc5_38.5: %i32 = bind_value %tuple.elem1.loc5_38.1 // CHECK:STDOUT: %tuple.elem1.loc5_38.2: ref %i32 = tuple_access %tuple.elem0.loc5_38.4, element1 // CHECK:STDOUT: %.loc5_38.6: init %i32 = initialize_from %.loc5_38.5 to %tuple.elem1.loc5_38.2 -// CHECK:STDOUT: %.loc5_38.7: init %tuple.type.7c4 = tuple_init (%.loc5_38.4, %.loc5_38.6) to %tuple.elem0.loc5_38.4 -// CHECK:STDOUT: %.loc5_38.8: init %tuple.type.7c4 = converted %tuple.elem0.loc5_38.1, %.loc5_38.7 -// CHECK:STDOUT: %tuple.elem1.loc5_38.3: ref %tuple.type.e07 = tuple_access %b_ref.ref, element1 +// CHECK:STDOUT: %.loc5_38.7: init %tuple.type.154 = tuple_init (%.loc5_38.4, %.loc5_38.6) to %tuple.elem0.loc5_38.4 +// CHECK:STDOUT: %.loc5_38.8: init %tuple.type.154 = converted %tuple.elem0.loc5_38.1, %.loc5_38.7 +// CHECK:STDOUT: %tuple.elem1.loc5_38.3: ref %tuple.type.c2c = tuple_access %b_ref.ref, element1 // CHECK:STDOUT: %tuple.elem0.loc5_38.6: ref %i32 = tuple_access %tuple.elem1.loc5_38.3, element0 // CHECK:STDOUT: %.loc5_38.9: %i32 = bind_value %tuple.elem0.loc5_38.6 -// CHECK:STDOUT: %tuple.elem1.loc5_38.4: ref %tuple.type.e07 = tuple_access file.%b.var, element1 +// CHECK:STDOUT: %tuple.elem1.loc5_38.4: ref %tuple.type.c2c = tuple_access file.%b.var, element1 // CHECK:STDOUT: %tuple.elem0.loc5_38.7: ref %i32 = tuple_access %tuple.elem1.loc5_38.4, element0 // CHECK:STDOUT: %.loc5_38.10: init %i32 = initialize_from %.loc5_38.9 to %tuple.elem0.loc5_38.7 // CHECK:STDOUT: %tuple.elem1.loc5_38.5: ref %i32 = tuple_access %tuple.elem1.loc5_38.3, element1 // CHECK:STDOUT: %.loc5_38.11: %i32 = bind_value %tuple.elem1.loc5_38.5 // CHECK:STDOUT: %tuple.elem1.loc5_38.6: ref %i32 = tuple_access %tuple.elem1.loc5_38.4, element1 // CHECK:STDOUT: %.loc5_38.12: init %i32 = initialize_from %.loc5_38.11 to %tuple.elem1.loc5_38.6 -// CHECK:STDOUT: %.loc5_38.13: init %tuple.type.e07 = tuple_init (%.loc5_38.10, %.loc5_38.12) to %tuple.elem1.loc5_38.4 -// CHECK:STDOUT: %.loc5_38.14: init %tuple.type.e07 = converted %tuple.elem1.loc5_38.3, %.loc5_38.13 -// CHECK:STDOUT: %.loc5_38.15: init %tuple.type.fce = tuple_init (%.loc5_38.8, %.loc5_38.14) to file.%b.var -// CHECK:STDOUT: %.loc5_43: init %tuple.type.fce = converted %b_ref.ref, %.loc5_38.15 +// CHECK:STDOUT: %.loc5_38.13: init %tuple.type.c2c = tuple_init (%.loc5_38.10, %.loc5_38.12) to %tuple.elem1.loc5_38.4 +// CHECK:STDOUT: %.loc5_38.14: init %tuple.type.c2c = converted %tuple.elem1.loc5_38.3, %.loc5_38.13 +// CHECK:STDOUT: %.loc5_38.15: init %tuple.type.cfa = tuple_init (%.loc5_38.8, %.loc5_38.14) to file.%b.var +// CHECK:STDOUT: %.loc5_43: init %tuple.type.cfa = converted %b_ref.ref, %.loc5_38.15 // CHECK:STDOUT: assign file.%b.var, %.loc5_43 -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.0dc [template = constants.%F] -// CHECK:STDOUT: %.loc6: ref %C.fd9 = splice_block file.%c.var {} -// CHECK:STDOUT: %F.call: init %C.fd9 = call %F.ref() to %.loc6 +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] +// CHECK:STDOUT: %.loc6: ref %C.cf0 = splice_block file.%c.var {} +// CHECK:STDOUT: %F.call: init %C.cf0 = call %F.ref() to %.loc6 // CHECK:STDOUT: assign file.%c.var, %F.call // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -400,36 +400,36 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %tuple.type.e07: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %X: %tuple.type.e07 = bind_symbolic_name X, 0 [symbolic] -// CHECK:STDOUT: %X.patt: %tuple.type.e07 = symbolic_binding_pattern X, 0 [symbolic] +// CHECK:STDOUT: %tuple.type.c2c: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %X: %tuple.type.c2c = bind_symbolic_name X, 0 [symbolic] +// CHECK:STDOUT: %X.patt: %tuple.type.c2c = symbolic_binding_pattern X, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] -// CHECK:STDOUT: %int_2.ed9: %i32 = int_value 2 [template] -// CHECK:STDOUT: %int_1.059: %i32 = int_value 1 [template] -// CHECK:STDOUT: %tuple: %tuple.type.e07 = tuple_value (%int_1.059, %int_2.ed9) [template] -// CHECK:STDOUT: %C.fd9: type = class_type @C, @C(%tuple) [template] +// CHECK:STDOUT: %int_2.d0d: %i32 = int_value 2 [template] +// CHECK:STDOUT: %int_1.47b: %i32 = int_value 1 [template] +// CHECK:STDOUT: %tuple: %tuple.type.c2c = tuple_value (%int_1.47b, %int_2.d0d) [template] +// CHECK:STDOUT: %C.cf0: type = class_type @C, @C(%tuple) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.b53 = import_ref Implicit//default, a_ref, unloaded -// CHECK:STDOUT: %import_ref.a35 = import_ref Implicit//default, b_ref, unloaded -// CHECK:STDOUT: %import_ref.c9b: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.0dc: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.5ad = import_ref Implicit//default, a_ref, unloaded +// CHECK:STDOUT: %import_ref.134 = import_ref Implicit//default, b_ref, unloaded +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Implicit//default, loc7_26, loaded [template = constants.%complete_type.357] -// CHECK:STDOUT: %import_ref.2e0 = import_ref Implicit//default, inst1096 [no loc], unloaded +// CHECK:STDOUT: %import_ref.964 = import_ref Implicit//default, inst1096 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .a_ref = imports.%import_ref.b53 -// CHECK:STDOUT: .b_ref = imports.%import_ref.a35 -// CHECK:STDOUT: .C = imports.%import_ref.c9b -// CHECK:STDOUT: .F = imports.%import_ref.0dc +// CHECK:STDOUT: .a_ref = imports.%import_ref.5ad +// CHECK:STDOUT: .b_ref = imports.%import_ref.134 +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .c_bad = %c_bad // CHECK:STDOUT: } @@ -440,26 +440,26 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %c_bad: ref = bind_name c_bad, %c_bad.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(constants.%X: %tuple.type.e07) [from "implicit.carbon"] { -// CHECK:STDOUT: %X: %tuple.type.e07 = bind_symbolic_name X, 0 [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %X.patt: %tuple.type.e07 = symbolic_binding_pattern X, 0 [symbolic = %X.patt (constants.%X.patt)] +// CHECK:STDOUT: generic class @C(constants.%X: %tuple.type.c2c) [from "implicit.carbon"] { +// CHECK:STDOUT: %X: %tuple.type.c2c = bind_symbolic_name X, 0 [symbolic = %X (constants.%X)] +// CHECK:STDOUT: %X.patt: %tuple.type.c2c = symbolic_binding_pattern X, 0 [symbolic = %X.patt (constants.%X.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.2e0 +// CHECK:STDOUT: .Self = imports.%import_ref.964 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %C.fd9 [from "implicit.carbon"]; +// CHECK:STDOUT: fn @F() -> %C.cf0 [from "implicit.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.0dc [template = constants.%F] -// CHECK:STDOUT: %.loc12: ref %C.fd9 = temporary_storage -// CHECK:STDOUT: %F.call: init %C.fd9 = call %F.ref() to %.loc12 +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] +// CHECK:STDOUT: %.loc12: ref %C.cf0 = temporary_storage +// CHECK:STDOUT: %F.call: init %C.cf0 = call %F.ref() to %.loc12 // CHECK:STDOUT: assign file.%c_bad.var, // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -485,72 +485,72 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %C.generic: %C.type = struct_value () [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [template] -// CHECK:STDOUT: %tuple.type.e07: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %X: %tuple.type.e07 = bind_symbolic_name X, 0 [symbolic] -// CHECK:STDOUT: %X.patt: %tuple.type.e07 = symbolic_binding_pattern X, 0 [symbolic] -// CHECK:STDOUT: %int_3.781: %i32 = int_value 3 [template] -// CHECK:STDOUT: %int_4.1ad: %i32 = int_value 4 [template] -// CHECK:STDOUT: %tuple.96b: %tuple.type.e07 = tuple_value (%int_3.781, %int_4.1ad) [template] -// CHECK:STDOUT: %C.586: type = class_type @C, @C(%tuple.96b) [template] +// CHECK:STDOUT: %tuple.type.c2c: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %X: %tuple.type.c2c = bind_symbolic_name X, 0 [symbolic] +// CHECK:STDOUT: %X.patt: %tuple.type.c2c = symbolic_binding_pattern X, 0 [symbolic] +// CHECK:STDOUT: %int_3.d47: %i32 = int_value 3 [template] +// CHECK:STDOUT: %int_4.ea3: %i32 = int_value 4 [template] +// CHECK:STDOUT: %tuple.5de: %tuple.type.c2c = tuple_value (%int_3.d47, %int_4.ea3) [template] +// CHECK:STDOUT: %C.ed5: type = class_type @C, @C(%tuple.5de) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %int_2: %i32 = int_value 2 [template] // CHECK:STDOUT: %int_1: %i32 = int_value 1 [template] -// CHECK:STDOUT: %tuple.b20: %tuple.type.e07 = tuple_value (%int_1, %int_2) [template] -// CHECK:STDOUT: %C.fd9: type = class_type @C, @C(%tuple.b20) [template] +// CHECK:STDOUT: %tuple.56c: %tuple.type.c2c = tuple_value (%int_1, %int_2) [template] +// CHECK:STDOUT: %C.cf0: type = class_type @C, @C(%tuple.56c) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.b53 = import_ref Implicit//default, a_ref, unloaded -// CHECK:STDOUT: %import_ref.a35 = import_ref Implicit//default, b_ref, unloaded -// CHECK:STDOUT: %import_ref.c9b: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] -// CHECK:STDOUT: %import_ref.0dc: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] +// CHECK:STDOUT: %import_ref.5ad = import_ref Implicit//default, a_ref, unloaded +// CHECK:STDOUT: %import_ref.134 = import_ref Implicit//default, b_ref, unloaded +// CHECK:STDOUT: %import_ref.bb9: %C.type = import_ref Implicit//default, C, loaded [template = constants.%C.generic] +// CHECK:STDOUT: %import_ref.b37: %F.type = import_ref Implicit//default, F, loaded [template = constants.%F] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.edd +// CHECK:STDOUT: .ImplicitAs = %import_ref.e26 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %import_ref.8f2: = import_ref Implicit//default, loc7_26, loaded [template = constants.%complete_type.357] -// CHECK:STDOUT: %import_ref.2e0 = import_ref Implicit//default, inst1096 [no loc], unloaded +// CHECK:STDOUT: %import_ref.964 = import_ref Implicit//default, inst1096 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .a_ref = imports.%import_ref.b53 -// CHECK:STDOUT: .b_ref = imports.%import_ref.a35 -// CHECK:STDOUT: .C = imports.%import_ref.c9b -// CHECK:STDOUT: .F = imports.%import_ref.0dc +// CHECK:STDOUT: .a_ref = imports.%import_ref.5ad +// CHECK:STDOUT: .b_ref = imports.%import_ref.134 +// CHECK:STDOUT: .C = imports.%import_ref.bb9 +// CHECK:STDOUT: .F = imports.%import_ref.b37 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .c_bad = %c_bad // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import = import Implicit // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %c_bad.var: ref %C.586 = var c_bad -// CHECK:STDOUT: %c_bad: ref %C.586 = bind_name c_bad, %c_bad.var +// CHECK:STDOUT: %c_bad.var: ref %C.ed5 = var c_bad +// CHECK:STDOUT: %c_bad: ref %C.ed5 = bind_name c_bad, %c_bad.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(constants.%X: %tuple.type.e07) [from "implicit.carbon"] { -// CHECK:STDOUT: %X: %tuple.type.e07 = bind_symbolic_name X, 0 [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %X.patt: %tuple.type.e07 = symbolic_binding_pattern X, 0 [symbolic = %X.patt (constants.%X.patt)] +// CHECK:STDOUT: generic class @C(constants.%X: %tuple.type.c2c) [from "implicit.carbon"] { +// CHECK:STDOUT: %X: %tuple.type.c2c = bind_symbolic_name X, 0 [symbolic = %X (constants.%X)] +// CHECK:STDOUT: %X.patt: %tuple.type.c2c = symbolic_binding_pattern X, 0 [symbolic = %X.patt (constants.%X.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.2e0 +// CHECK:STDOUT: .Self = imports.%import_ref.964 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %C.fd9 [from "implicit.carbon"]; +// CHECK:STDOUT: fn @F() -> %C.cf0 [from "implicit.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.0dc [template = constants.%F] -// CHECK:STDOUT: %.loc10_26: ref %C.fd9 = temporary_storage -// CHECK:STDOUT: %F.call: init %C.fd9 = call %F.ref() to %.loc10_26 -// CHECK:STDOUT: %.loc10_27: %C.586 = converted %F.call, [template = ] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref.b37 [template = constants.%F] +// CHECK:STDOUT: %.loc10_26: ref %C.cf0 = temporary_storage +// CHECK:STDOUT: %F.call: init %C.cf0 = call %F.ref() to %.loc10_26 +// CHECK:STDOUT: %.loc10_27: %C.ed5 = converted %F.call, [template = ] // CHECK:STDOUT: assign file.%c_bad.var, // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -560,16 +560,16 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %X.patt => constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%tuple.96b) { -// CHECK:STDOUT: %X => constants.%tuple.96b -// CHECK:STDOUT: %X.patt => constants.%tuple.96b +// CHECK:STDOUT: specific @C(constants.%tuple.5de) { +// CHECK:STDOUT: %X => constants.%tuple.5de +// CHECK:STDOUT: %X.patt => constants.%tuple.5de // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%tuple.b20) { -// CHECK:STDOUT: %X => constants.%tuple.b20 -// CHECK:STDOUT: %X.patt => constants.%tuple.b20 +// CHECK:STDOUT: specific @C(constants.%tuple.56c) { +// CHECK:STDOUT: %X => constants.%tuple.56c +// CHECK:STDOUT: %X.patt => constants.%tuple.56c // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/nested_tuple.carbon b/toolchain/check/testdata/tuple/nested_tuple.carbon index cc56ac4a0f57..52f2fa694a49 100644 --- a/toolchain/check/testdata/tuple/nested_tuple.carbon +++ b/toolchain/check/testdata/tuple/nested_tuple.carbon @@ -15,34 +15,34 @@ var x: ((i32, i32), i32) = ((12, 76), 6); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] -// CHECK:STDOUT: %tuple.type.5a7: type = tuple_type (%tuple.type.471, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.f72: type = tuple_type (%tuple.type.d07, %i32) [template] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [template] // CHECK:STDOUT: %int_76.872: Core.IntLiteral = int_value 76 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [template] // CHECK:STDOUT: %tuple.type.acf: type = tuple_type (%tuple.type.f94, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.8aa: = bound_method %int_12.6a3, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.545: = specific_function %Convert.bound.8aa, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_12.43d: %i32 = int_value 12 [template] -// CHECK:STDOUT: %Convert.bound.169: = bound_method %int_76.872, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.5a1: = specific_function %Convert.bound.169, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_76.fed: %i32 = int_value 76 [template] -// CHECK:STDOUT: %tuple.664: %tuple.type.471 = tuple_value (%int_12.43d, %int_76.fed) [template] -// CHECK:STDOUT: %Convert.bound.b1c: = bound_method %int_6.462, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b26: = specific_function %Convert.bound.b1c, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_6.b03: %i32 = int_value 6 [template] -// CHECK:STDOUT: %tuple.1cb: %tuple.type.5a7 = tuple_value (%tuple.664, %int_6.b03) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9a9: = specific_function %Convert.bound.221, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [template] +// CHECK:STDOUT: %Convert.bound.033: = bound_method %int_76.872, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.454: = specific_function %Convert.bound.033, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_76.8dd: %i32 = int_value 76 [template] +// CHECK:STDOUT: %tuple.737: %tuple.type.d07 = tuple_value (%int_12.1e1, %int_76.8dd) [template] +// CHECK:STDOUT: %Convert.bound.ce9: = bound_method %int_6.462, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.631: = specific_function %Convert.bound.ce9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_6.e56: %i32 = int_value 6 [template] +// CHECK:STDOUT: %tuple.51f: %tuple.type.f72 = tuple_value (%tuple.737, %int_6.e56) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -54,8 +54,8 @@ var x: ((i32, i32), i32) = ((12, 76), 6); // CHECK:STDOUT: .x = %x // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %tuple.type.5a7 = var x -// CHECK:STDOUT: %x: ref %tuple.type.5a7 = bind_name x, %x.var +// CHECK:STDOUT: %x.var: ref %tuple.type.f72 = var x +// CHECK:STDOUT: %x: ref %tuple.type.f72 = bind_name x, %x.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -65,32 +65,32 @@ var x: ((i32, i32), i32) = ((12, 76), 6); // CHECK:STDOUT: %.loc11_36.1: %tuple.type.f94 = tuple_literal (%int_12, %int_76) // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [template = constants.%int_6.462] // CHECK:STDOUT: %.loc11_40.1: %tuple.type.acf = tuple_literal (%.loc11_36.1, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_36.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_36.1: = bound_method %int_12, %impl.elem0.loc11_36.1 [template = constants.%Convert.bound.8aa] -// CHECK:STDOUT: %Convert.specific_fn.loc11_36.1: = specific_function %Convert.bound.loc11_36.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.545] -// CHECK:STDOUT: %int.convert_checked.loc11_36.1: init %i32 = call %Convert.specific_fn.loc11_36.1(%int_12) [template = constants.%int_12.43d] -// CHECK:STDOUT: %.loc11_36.2: init %i32 = converted %int_12, %int.convert_checked.loc11_36.1 [template = constants.%int_12.43d] -// CHECK:STDOUT: %tuple.elem0.loc11_40: ref %tuple.type.471 = tuple_access file.%x.var, element0 +// CHECK:STDOUT: %impl.elem0.loc11_36.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_36.1: = bound_method %int_12, %impl.elem0.loc11_36.1 [template = constants.%Convert.bound.221] +// CHECK:STDOUT: %Convert.specific_fn.loc11_36.1: = specific_function %Convert.bound.loc11_36.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9a9] +// CHECK:STDOUT: %int.convert_checked.loc11_36.1: init %i32 = call %Convert.specific_fn.loc11_36.1(%int_12) [template = constants.%int_12.1e1] +// CHECK:STDOUT: %.loc11_36.2: init %i32 = converted %int_12, %int.convert_checked.loc11_36.1 [template = constants.%int_12.1e1] +// CHECK:STDOUT: %tuple.elem0.loc11_40: ref %tuple.type.d07 = tuple_access file.%x.var, element0 // CHECK:STDOUT: %tuple.elem0.loc11_36: ref %i32 = tuple_access %tuple.elem0.loc11_40, element0 -// CHECK:STDOUT: %.loc11_36.3: init %i32 = initialize_from %.loc11_36.2 to %tuple.elem0.loc11_36 [template = constants.%int_12.43d] -// CHECK:STDOUT: %impl.elem0.loc11_36.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_36.2: = bound_method %int_76, %impl.elem0.loc11_36.2 [template = constants.%Convert.bound.169] -// CHECK:STDOUT: %Convert.specific_fn.loc11_36.2: = specific_function %Convert.bound.loc11_36.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.5a1] -// CHECK:STDOUT: %int.convert_checked.loc11_36.2: init %i32 = call %Convert.specific_fn.loc11_36.2(%int_76) [template = constants.%int_76.fed] -// CHECK:STDOUT: %.loc11_36.4: init %i32 = converted %int_76, %int.convert_checked.loc11_36.2 [template = constants.%int_76.fed] +// CHECK:STDOUT: %.loc11_36.3: init %i32 = initialize_from %.loc11_36.2 to %tuple.elem0.loc11_36 [template = constants.%int_12.1e1] +// CHECK:STDOUT: %impl.elem0.loc11_36.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_36.2: = bound_method %int_76, %impl.elem0.loc11_36.2 [template = constants.%Convert.bound.033] +// CHECK:STDOUT: %Convert.specific_fn.loc11_36.2: = specific_function %Convert.bound.loc11_36.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.454] +// CHECK:STDOUT: %int.convert_checked.loc11_36.2: init %i32 = call %Convert.specific_fn.loc11_36.2(%int_76) [template = constants.%int_76.8dd] +// CHECK:STDOUT: %.loc11_36.4: init %i32 = converted %int_76, %int.convert_checked.loc11_36.2 [template = constants.%int_76.8dd] // CHECK:STDOUT: %tuple.elem1.loc11_36: ref %i32 = tuple_access %tuple.elem0.loc11_40, element1 -// CHECK:STDOUT: %.loc11_36.5: init %i32 = initialize_from %.loc11_36.4 to %tuple.elem1.loc11_36 [template = constants.%int_76.fed] -// CHECK:STDOUT: %.loc11_36.6: init %tuple.type.471 = tuple_init (%.loc11_36.3, %.loc11_36.5) to %tuple.elem0.loc11_40 [template = constants.%tuple.664] -// CHECK:STDOUT: %.loc11_40.2: init %tuple.type.471 = converted %.loc11_36.1, %.loc11_36.6 [template = constants.%tuple.664] -// CHECK:STDOUT: %impl.elem0.loc11_40: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_40: = bound_method %int_6, %impl.elem0.loc11_40 [template = constants.%Convert.bound.b1c] -// CHECK:STDOUT: %Convert.specific_fn.loc11_40: = specific_function %Convert.bound.loc11_40, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b26] -// CHECK:STDOUT: %int.convert_checked.loc11_40: init %i32 = call %Convert.specific_fn.loc11_40(%int_6) [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_40.3: init %i32 = converted %int_6, %int.convert_checked.loc11_40 [template = constants.%int_6.b03] +// CHECK:STDOUT: %.loc11_36.5: init %i32 = initialize_from %.loc11_36.4 to %tuple.elem1.loc11_36 [template = constants.%int_76.8dd] +// CHECK:STDOUT: %.loc11_36.6: init %tuple.type.d07 = tuple_init (%.loc11_36.3, %.loc11_36.5) to %tuple.elem0.loc11_40 [template = constants.%tuple.737] +// CHECK:STDOUT: %.loc11_40.2: init %tuple.type.d07 = converted %.loc11_36.1, %.loc11_36.6 [template = constants.%tuple.737] +// CHECK:STDOUT: %impl.elem0.loc11_40: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_40: = bound_method %int_6, %impl.elem0.loc11_40 [template = constants.%Convert.bound.ce9] +// CHECK:STDOUT: %Convert.specific_fn.loc11_40: = specific_function %Convert.bound.loc11_40, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.631] +// CHECK:STDOUT: %int.convert_checked.loc11_40: init %i32 = call %Convert.specific_fn.loc11_40(%int_6) [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_40.3: init %i32 = converted %int_6, %int.convert_checked.loc11_40 [template = constants.%int_6.e56] // CHECK:STDOUT: %tuple.elem1.loc11_40: ref %i32 = tuple_access file.%x.var, element1 -// CHECK:STDOUT: %.loc11_40.4: init %i32 = initialize_from %.loc11_40.3 to %tuple.elem1.loc11_40 [template = constants.%int_6.b03] -// CHECK:STDOUT: %.loc11_40.5: init %tuple.type.5a7 = tuple_init (%.loc11_40.2, %.loc11_40.4) to file.%x.var [template = constants.%tuple.1cb] -// CHECK:STDOUT: %.loc11_41: init %tuple.type.5a7 = converted %.loc11_40.1, %.loc11_40.5 [template = constants.%tuple.1cb] +// CHECK:STDOUT: %.loc11_40.4: init %i32 = initialize_from %.loc11_40.3 to %tuple.elem1.loc11_40 [template = constants.%int_6.e56] +// CHECK:STDOUT: %.loc11_40.5: init %tuple.type.f72 = tuple_init (%.loc11_40.2, %.loc11_40.4) to file.%x.var [template = constants.%tuple.51f] +// CHECK:STDOUT: %.loc11_41: init %tuple.type.f72 = converted %.loc11_40.1, %.loc11_40.5 [template = constants.%tuple.51f] // CHECK:STDOUT: assign file.%x.var, %.loc11_41 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/nested_tuple_in_place.carbon b/toolchain/check/testdata/tuple/nested_tuple_in_place.carbon index f3af25b84716..0dbee0fb5246 100644 --- a/toolchain/check/testdata/tuple/nested_tuple_in_place.carbon +++ b/toolchain/check/testdata/tuple/nested_tuple_in_place.carbon @@ -24,34 +24,34 @@ fn H() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [template] -// CHECK:STDOUT: %tuple.type.dc6: type = tuple_type (%i32, %i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.189: type = tuple_type (%i32, %i32, %i32) [template] // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] -// CHECK:STDOUT: %tuple.type.1aa: type = tuple_type (%tuple.type.dc6, %tuple.type.dc6) [template] +// CHECK:STDOUT: %tuple.type.99b: type = tuple_type (%tuple.type.189, %tuple.type.189) [template] // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] -// CHECK:STDOUT: %tuple.type.e6f: type = tuple_type (%i32, %tuple.type.dc6, %i32) [template] +// CHECK:STDOUT: %tuple.type.516: type = tuple_type (%i32, %tuple.type.189, %i32) [template] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [template] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [template] -// CHECK:STDOUT: %tuple.type.3b6: type = tuple_type (Core.IntLiteral, %tuple.type.dc6, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.afd: = bound_method %int_1.5b8, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.b73: = specific_function %Convert.bound.afd, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_1.c60: %i32 = int_value 1 [template] -// CHECK:STDOUT: %Convert.bound.f0b: = bound_method %int_2.ecc, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.20e: = specific_function %Convert.bound.f0b, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_2.166: %i32 = int_value 2 [template] +// CHECK:STDOUT: %tuple.type.667: type = tuple_type (Core.IntLiteral, %tuple.type.189, Core.IntLiteral) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.70c: = specific_function %Convert.bound.ab5, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [template] +// CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.787: = specific_function %Convert.bound.ef9, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -66,8 +66,8 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { -// CHECK:STDOUT: %return.patt: %tuple.type.dc6 = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: %tuple.type.dc6 = out_param_pattern %return.patt, runtime_param0 +// CHECK:STDOUT: %return.patt: %tuple.type.189 = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: %tuple.type.189 = out_param_pattern %return.patt, runtime_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_12: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] @@ -76,59 +76,59 @@ fn H() { // CHECK:STDOUT: %int_32.loc11_22: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc11_22: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc11_25.1: %tuple.type.ff9 = tuple_literal (%i32.loc11_12, %i32.loc11_17, %i32.loc11_22) -// CHECK:STDOUT: %.loc11_25.2: type = converted %.loc11_25.1, constants.%tuple.type.dc6 [template = constants.%tuple.type.dc6] -// CHECK:STDOUT: %return.param: ref %tuple.type.dc6 = out_param runtime_param0 -// CHECK:STDOUT: %return: ref %tuple.type.dc6 = return_slot %return.param +// CHECK:STDOUT: %.loc11_25.2: type = converted %.loc11_25.1, constants.%tuple.type.189 [template = constants.%tuple.type.189] +// CHECK:STDOUT: %return.param: ref %tuple.type.189 = out_param runtime_param0 +// CHECK:STDOUT: %return: ref %tuple.type.189 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {} // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %tuple.type.dc6; +// CHECK:STDOUT: fn @F() -> %tuple.type.189; // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %tuple.type.1aa = var v -// CHECK:STDOUT: %v: ref %tuple.type.1aa = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref %tuple.type.99b = var v +// CHECK:STDOUT: %v: ref %tuple.type.99b = bind_name v, %v.var // CHECK:STDOUT: %F.ref.loc14_48: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %tuple.elem0: ref %tuple.type.dc6 = tuple_access %v.var, element0 -// CHECK:STDOUT: %F.call.loc14_50: init %tuple.type.dc6 = call %F.ref.loc14_48() to %tuple.elem0 +// CHECK:STDOUT: %tuple.elem0: ref %tuple.type.189 = tuple_access %v.var, element0 +// CHECK:STDOUT: %F.call.loc14_50: init %tuple.type.189 = call %F.ref.loc14_48() to %tuple.elem0 // CHECK:STDOUT: %F.ref.loc14_53: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %tuple.elem1: ref %tuple.type.dc6 = tuple_access %v.var, element1 -// CHECK:STDOUT: %F.call.loc14_55: init %tuple.type.dc6 = call %F.ref.loc14_53() to %tuple.elem1 -// CHECK:STDOUT: %.loc14_56.1: %tuple.type.1aa = tuple_literal (%F.call.loc14_50, %F.call.loc14_55) -// CHECK:STDOUT: %.loc14_56.2: init %tuple.type.1aa = tuple_init (%F.call.loc14_50, %F.call.loc14_55) to %v.var -// CHECK:STDOUT: %.loc14_57: init %tuple.type.1aa = converted %.loc14_56.1, %.loc14_56.2 +// CHECK:STDOUT: %tuple.elem1: ref %tuple.type.189 = tuple_access %v.var, element1 +// CHECK:STDOUT: %F.call.loc14_55: init %tuple.type.189 = call %F.ref.loc14_53() to %tuple.elem1 +// CHECK:STDOUT: %.loc14_56.1: %tuple.type.99b = tuple_literal (%F.call.loc14_50, %F.call.loc14_55) +// CHECK:STDOUT: %.loc14_56.2: init %tuple.type.99b = tuple_init (%F.call.loc14_50, %F.call.loc14_55) to %v.var +// CHECK:STDOUT: %.loc14_57: init %tuple.type.99b = converted %.loc14_56.1, %.loc14_56.2 // CHECK:STDOUT: assign %v.var, %.loc14_57 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %tuple.type.e6f = var v -// CHECK:STDOUT: %v: ref %tuple.type.e6f = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref %tuple.type.516 = var v +// CHECK:STDOUT: %v: ref %tuple.type.516 = bind_name v, %v.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.5b8] // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %tuple.elem1: ref %tuple.type.dc6 = tuple_access %v.var, element1 -// CHECK:STDOUT: %F.call: init %tuple.type.dc6 = call %F.ref() to %tuple.elem1 +// CHECK:STDOUT: %tuple.elem1: ref %tuple.type.189 = tuple_access %v.var, element1 +// CHECK:STDOUT: %F.call: init %tuple.type.189 = call %F.ref() to %tuple.elem1 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.ecc] -// CHECK:STDOUT: %.loc18_50.1: %tuple.type.3b6 = tuple_literal (%int_1, %F.call, %int_2) -// CHECK:STDOUT: %impl.elem0.loc18_50.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18_50.1: = bound_method %int_1, %impl.elem0.loc18_50.1 [template = constants.%Convert.bound.afd] -// CHECK:STDOUT: %Convert.specific_fn.loc18_50.1: = specific_function %Convert.bound.loc18_50.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.b73] -// CHECK:STDOUT: %int.convert_checked.loc18_50.1: init %i32 = call %Convert.specific_fn.loc18_50.1(%int_1) [template = constants.%int_1.c60] -// CHECK:STDOUT: %.loc18_50.2: init %i32 = converted %int_1, %int.convert_checked.loc18_50.1 [template = constants.%int_1.c60] +// CHECK:STDOUT: %.loc18_50.1: %tuple.type.667 = tuple_literal (%int_1, %F.call, %int_2) +// CHECK:STDOUT: %impl.elem0.loc18_50.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18_50.1: = bound_method %int_1, %impl.elem0.loc18_50.1 [template = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %Convert.specific_fn.loc18_50.1: = specific_function %Convert.bound.loc18_50.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.70c] +// CHECK:STDOUT: %int.convert_checked.loc18_50.1: init %i32 = call %Convert.specific_fn.loc18_50.1(%int_1) [template = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc18_50.2: init %i32 = converted %int_1, %int.convert_checked.loc18_50.1 [template = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %v.var, element0 -// CHECK:STDOUT: %.loc18_50.3: init %i32 = initialize_from %.loc18_50.2 to %tuple.elem0 [template = constants.%int_1.c60] -// CHECK:STDOUT: %impl.elem0.loc18_50.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc18_50.2: = bound_method %int_2, %impl.elem0.loc18_50.2 [template = constants.%Convert.bound.f0b] -// CHECK:STDOUT: %Convert.specific_fn.loc18_50.2: = specific_function %Convert.bound.loc18_50.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.20e] -// CHECK:STDOUT: %int.convert_checked.loc18_50.2: init %i32 = call %Convert.specific_fn.loc18_50.2(%int_2) [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc18_50.4: init %i32 = converted %int_2, %int.convert_checked.loc18_50.2 [template = constants.%int_2.166] +// CHECK:STDOUT: %.loc18_50.3: init %i32 = initialize_from %.loc18_50.2 to %tuple.elem0 [template = constants.%int_1.5d2] +// CHECK:STDOUT: %impl.elem0.loc18_50.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc18_50.2: = bound_method %int_2, %impl.elem0.loc18_50.2 [template = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %Convert.specific_fn.loc18_50.2: = specific_function %Convert.bound.loc18_50.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.787] +// CHECK:STDOUT: %int.convert_checked.loc18_50.2: init %i32 = call %Convert.specific_fn.loc18_50.2(%int_2) [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc18_50.4: init %i32 = converted %int_2, %int.convert_checked.loc18_50.2 [template = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem2: ref %i32 = tuple_access %v.var, element2 -// CHECK:STDOUT: %.loc18_50.5: init %i32 = initialize_from %.loc18_50.4 to %tuple.elem2 [template = constants.%int_2.166] -// CHECK:STDOUT: %.loc18_50.6: init %tuple.type.e6f = tuple_init (%.loc18_50.3, %F.call, %.loc18_50.5) to %v.var -// CHECK:STDOUT: %.loc18_51: init %tuple.type.e6f = converted %.loc18_50.1, %.loc18_50.6 +// CHECK:STDOUT: %.loc18_50.5: init %i32 = initialize_from %.loc18_50.4 to %tuple.elem2 [template = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc18_50.6: init %tuple.type.516 = tuple_init (%.loc18_50.3, %F.call, %.loc18_50.5) to %v.var +// CHECK:STDOUT: %.loc18_51: init %tuple.type.516 = converted %.loc18_50.1, %.loc18_50.6 // CHECK:STDOUT: assign %v.var, %.loc18_51 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/one_element.carbon b/toolchain/check/testdata/tuple/one_element.carbon index 2fe14a83ca21..d5a1b2834142 100644 --- a/toolchain/check/testdata/tuple/one_element.carbon +++ b/toolchain/check/testdata/tuple/one_element.carbon @@ -16,23 +16,23 @@ var y: (i32,) = x; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.0e4: type = tuple_type (%i32) [template] +// CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.925 [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [template] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %tuple: %tuple.type.0e4 = tuple_value (%int_4.2ec) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_4.940) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -45,29 +45,29 @@ var y: (i32,) = x; // CHECK:STDOUT: .y = %y // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %tuple.type.0e4 = var x -// CHECK:STDOUT: %x: ref %tuple.type.0e4 = bind_name x, %x.var -// CHECK:STDOUT: %y.var: ref %tuple.type.0e4 = var y -// CHECK:STDOUT: %y: ref %tuple.type.0e4 = bind_name y, %y.var +// CHECK:STDOUT: %x.var: ref %tuple.type.a1c = var x +// CHECK:STDOUT: %x: ref %tuple.type.a1c = bind_name x, %x.var +// CHECK:STDOUT: %y.var: ref %tuple.type.a1c = var y +// CHECK:STDOUT: %y: ref %tuple.type.a1c = bind_name y, %y.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_20.1: %tuple.type.985 = tuple_literal (%int_4) -// CHECK:STDOUT: %impl.elem0: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] +// CHECK:STDOUT: %impl.elem0: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4, %impl.elem0 [template = constants.%Convert.bound] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn] -// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_20.2: init %i32 = converted %int_4, %int.convert_checked [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_20.3: init %tuple.type.0e4 = tuple_init (%.loc11_20.2) to file.%x.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_21: init %tuple.type.0e4 = converted %.loc11_20.1, %.loc11_20.3 [template = constants.%tuple] +// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_4) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_20.2: init %i32 = converted %int_4, %int.convert_checked [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_20.3: init %tuple.type.a1c = tuple_init (%.loc11_20.2) to file.%x.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_21: init %tuple.type.a1c = converted %.loc11_20.1, %.loc11_20.3 [template = constants.%tuple] // CHECK:STDOUT: assign file.%x.var, %.loc11_21 -// CHECK:STDOUT: %x.ref: ref %tuple.type.0e4 = name_ref x, file.%x +// CHECK:STDOUT: %x.ref: ref %tuple.type.a1c = name_ref x, file.%x // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %x.ref, element0 // CHECK:STDOUT: %.loc12_17.1: %i32 = bind_value %tuple.elem0 -// CHECK:STDOUT: %.loc12_17.2: init %tuple.type.0e4 = tuple_init (%.loc12_17.1) to file.%y.var -// CHECK:STDOUT: %.loc12_18: init %tuple.type.0e4 = converted %x.ref, %.loc12_17.2 +// CHECK:STDOUT: %.loc12_17.2: init %tuple.type.a1c = tuple_init (%.loc12_17.1) to file.%y.var +// CHECK:STDOUT: %.loc12_18: init %tuple.type.a1c = converted %x.ref, %.loc12_17.2 // CHECK:STDOUT: assign file.%y.var, %.loc12_18 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/two_elements.carbon b/toolchain/check/testdata/tuple/two_elements.carbon index 36c67b91b5b4..86bd3f68aaab 100644 --- a/toolchain/check/testdata/tuple/two_elements.carbon +++ b/toolchain/check/testdata/tuple/two_elements.carbon @@ -19,27 +19,27 @@ var y: (i32, i32) = x; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %tuple.type.471: type = tuple_type (%i32, %i32) [template] +// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [template] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [template] // CHECK:STDOUT: %int_102.b54: Core.IntLiteral = int_value 102 [template] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template] -// CHECK:STDOUT: %Convert.type.cd1: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] -// CHECK:STDOUT: %impl_witness.5b0: = impl_witness (imports.%import_ref.723), @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.type.466: type = fn_type @Convert.2, @impl.1(%int_32) [template] -// CHECK:STDOUT: %Convert.925: %Convert.type.466 = struct_value () [template] -// CHECK:STDOUT: %Convert.bound.fe5: = bound_method %int_4.0c1, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.c6f: = specific_function %Convert.bound.fe5, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_4.2ec: %i32 = int_value 4 [template] -// CHECK:STDOUT: %Convert.bound.002: = bound_method %int_102.b54, %Convert.925 [template] -// CHECK:STDOUT: %Convert.specific_fn.9e2: = specific_function %Convert.bound.002, @Convert.2(%int_32) [template] -// CHECK:STDOUT: %int_102.54f: %i32 = int_value 102 [template] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%int_4.2ec, %int_102.54f) [template] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template] +// CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template] +// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template] +// CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.450: = specific_function %Convert.bound.ac3, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [template] +// CHECK:STDOUT: %Convert.bound.063: = bound_method %int_102.b54, %Convert.956 [template] +// CHECK:STDOUT: %Convert.specific_fn.9b4: = specific_function %Convert.bound.063, @Convert.2(%int_32) [template] +// CHECK:STDOUT: %int_102.b91: %i32 = int_value 102 [template] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_4.940, %int_102.b91) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -54,10 +54,10 @@ var y: (i32, i32) = x; // CHECK:STDOUT: .y = %y // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %x.var: ref %tuple.type.471 = var x -// CHECK:STDOUT: %x: ref %tuple.type.471 = bind_name x, %x.var -// CHECK:STDOUT: %y.var: ref %tuple.type.471 = var y -// CHECK:STDOUT: %y: ref %tuple.type.471 = bind_name y, %y.var +// CHECK:STDOUT: %x.var: ref %tuple.type.d07 = var x +// CHECK:STDOUT: %x: ref %tuple.type.d07 = bind_name x, %x.var +// CHECK:STDOUT: %y.var: ref %tuple.type.d07 = var y +// CHECK:STDOUT: %y: ref %tuple.type.d07 = bind_name y, %y.var // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -65,44 +65,44 @@ var y: (i32, i32) = x; // CHECK:STDOUT: %int_4.loc11: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %int_102.loc11: Core.IntLiteral = int_value 102 [template = constants.%int_102.b54] // CHECK:STDOUT: %.loc11_28.1: %tuple.type.f94 = tuple_literal (%int_4.loc11, %int_102.loc11) -// CHECK:STDOUT: %impl.elem0.loc11_28.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_28.1: = bound_method %int_4.loc11, %impl.elem0.loc11_28.1 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc11_28.1: = specific_function %Convert.bound.loc11_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc11_28.1: init %i32 = call %Convert.specific_fn.loc11_28.1(%int_4.loc11) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_28.2: %i32 = value_of_initializer %int.convert_checked.loc11_28.1 [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc11_28.3: %i32 = converted %int_4.loc11, %.loc11_28.2 [template = constants.%int_4.2ec] -// CHECK:STDOUT: %impl.elem0.loc11_28.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc11_28.2: = bound_method %int_102.loc11, %impl.elem0.loc11_28.2 [template = constants.%Convert.bound.002] -// CHECK:STDOUT: %Convert.specific_fn.loc11_28.2: = specific_function %Convert.bound.loc11_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9e2] -// CHECK:STDOUT: %int.convert_checked.loc11_28.2: init %i32 = call %Convert.specific_fn.loc11_28.2(%int_102.loc11) [template = constants.%int_102.54f] -// CHECK:STDOUT: %.loc11_28.4: %i32 = value_of_initializer %int.convert_checked.loc11_28.2 [template = constants.%int_102.54f] -// CHECK:STDOUT: %.loc11_28.5: %i32 = converted %int_102.loc11, %.loc11_28.4 [template = constants.%int_102.54f] -// CHECK:STDOUT: %tuple: %tuple.type.471 = tuple_value (%.loc11_28.3, %.loc11_28.5) [template = constants.%tuple] -// CHECK:STDOUT: %.loc11_29: %tuple.type.471 = converted %.loc11_28.1, %tuple [template = constants.%tuple] -// CHECK:STDOUT: %v: %tuple.type.471 = bind_name v, %.loc11_29 -// CHECK:STDOUT: %v.ref: %tuple.type.471 = name_ref v, %v -// CHECK:STDOUT: %w: %tuple.type.471 = bind_name w, %v.ref +// CHECK:STDOUT: %impl.elem0.loc11_28.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_28.1: = bound_method %int_4.loc11, %impl.elem0.loc11_28.1 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc11_28.1: = specific_function %Convert.bound.loc11_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc11_28.1: init %i32 = call %Convert.specific_fn.loc11_28.1(%int_4.loc11) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_28.2: %i32 = value_of_initializer %int.convert_checked.loc11_28.1 [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc11_28.3: %i32 = converted %int_4.loc11, %.loc11_28.2 [template = constants.%int_4.940] +// CHECK:STDOUT: %impl.elem0.loc11_28.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc11_28.2: = bound_method %int_102.loc11, %impl.elem0.loc11_28.2 [template = constants.%Convert.bound.063] +// CHECK:STDOUT: %Convert.specific_fn.loc11_28.2: = specific_function %Convert.bound.loc11_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9b4] +// CHECK:STDOUT: %int.convert_checked.loc11_28.2: init %i32 = call %Convert.specific_fn.loc11_28.2(%int_102.loc11) [template = constants.%int_102.b91] +// CHECK:STDOUT: %.loc11_28.4: %i32 = value_of_initializer %int.convert_checked.loc11_28.2 [template = constants.%int_102.b91] +// CHECK:STDOUT: %.loc11_28.5: %i32 = converted %int_102.loc11, %.loc11_28.4 [template = constants.%int_102.b91] +// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%.loc11_28.3, %.loc11_28.5) [template = constants.%tuple] +// CHECK:STDOUT: %.loc11_29: %tuple.type.d07 = converted %.loc11_28.1, %tuple [template = constants.%tuple] +// CHECK:STDOUT: %v: %tuple.type.d07 = bind_name v, %.loc11_29 +// CHECK:STDOUT: %v.ref: %tuple.type.d07 = name_ref v, %v +// CHECK:STDOUT: %w: %tuple.type.d07 = bind_name w, %v.ref // CHECK:STDOUT: %int_4.loc14: Core.IntLiteral = int_value 4 [template = constants.%int_4.0c1] // CHECK:STDOUT: %int_102.loc14: Core.IntLiteral = int_value 102 [template = constants.%int_102.b54] // CHECK:STDOUT: %.loc14_28.1: %tuple.type.f94 = tuple_literal (%int_4.loc14, %int_102.loc14) -// CHECK:STDOUT: %impl.elem0.loc14_28.1: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_28.1: = bound_method %int_4.loc14, %impl.elem0.loc14_28.1 [template = constants.%Convert.bound.fe5] -// CHECK:STDOUT: %Convert.specific_fn.loc14_28.1: = specific_function %Convert.bound.loc14_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.c6f] -// CHECK:STDOUT: %int.convert_checked.loc14_28.1: init %i32 = call %Convert.specific_fn.loc14_28.1(%int_4.loc14) [template = constants.%int_4.2ec] -// CHECK:STDOUT: %.loc14_28.2: init %i32 = converted %int_4.loc14, %int.convert_checked.loc14_28.1 [template = constants.%int_4.2ec] +// CHECK:STDOUT: %impl.elem0.loc14_28.1: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_28.1: = bound_method %int_4.loc14, %impl.elem0.loc14_28.1 [template = constants.%Convert.bound.ac3] +// CHECK:STDOUT: %Convert.specific_fn.loc14_28.1: = specific_function %Convert.bound.loc14_28.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.450] +// CHECK:STDOUT: %int.convert_checked.loc14_28.1: init %i32 = call %Convert.specific_fn.loc14_28.1(%int_4.loc14) [template = constants.%int_4.940] +// CHECK:STDOUT: %.loc14_28.2: init %i32 = converted %int_4.loc14, %int.convert_checked.loc14_28.1 [template = constants.%int_4.940] // CHECK:STDOUT: %tuple.elem0.loc14: ref %i32 = tuple_access file.%x.var, element0 -// CHECK:STDOUT: %.loc14_28.3: init %i32 = initialize_from %.loc14_28.2 to %tuple.elem0.loc14 [template = constants.%int_4.2ec] -// CHECK:STDOUT: %impl.elem0.loc14_28.2: %Convert.type.cd1 = impl_witness_access constants.%impl_witness.5b0, element0 [template = constants.%Convert.925] -// CHECK:STDOUT: %Convert.bound.loc14_28.2: = bound_method %int_102.loc14, %impl.elem0.loc14_28.2 [template = constants.%Convert.bound.002] -// CHECK:STDOUT: %Convert.specific_fn.loc14_28.2: = specific_function %Convert.bound.loc14_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9e2] -// CHECK:STDOUT: %int.convert_checked.loc14_28.2: init %i32 = call %Convert.specific_fn.loc14_28.2(%int_102.loc14) [template = constants.%int_102.54f] -// CHECK:STDOUT: %.loc14_28.4: init %i32 = converted %int_102.loc14, %int.convert_checked.loc14_28.2 [template = constants.%int_102.54f] +// CHECK:STDOUT: %.loc14_28.3: init %i32 = initialize_from %.loc14_28.2 to %tuple.elem0.loc14 [template = constants.%int_4.940] +// CHECK:STDOUT: %impl.elem0.loc14_28.2: %Convert.type.1b6 = impl_witness_access constants.%impl_witness.d39, element0 [template = constants.%Convert.956] +// CHECK:STDOUT: %Convert.bound.loc14_28.2: = bound_method %int_102.loc14, %impl.elem0.loc14_28.2 [template = constants.%Convert.bound.063] +// CHECK:STDOUT: %Convert.specific_fn.loc14_28.2: = specific_function %Convert.bound.loc14_28.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9b4] +// CHECK:STDOUT: %int.convert_checked.loc14_28.2: init %i32 = call %Convert.specific_fn.loc14_28.2(%int_102.loc14) [template = constants.%int_102.b91] +// CHECK:STDOUT: %.loc14_28.4: init %i32 = converted %int_102.loc14, %int.convert_checked.loc14_28.2 [template = constants.%int_102.b91] // CHECK:STDOUT: %tuple.elem1.loc14: ref %i32 = tuple_access file.%x.var, element1 -// CHECK:STDOUT: %.loc14_28.5: init %i32 = initialize_from %.loc14_28.4 to %tuple.elem1.loc14 [template = constants.%int_102.54f] -// CHECK:STDOUT: %.loc14_28.6: init %tuple.type.471 = tuple_init (%.loc14_28.3, %.loc14_28.5) to file.%x.var [template = constants.%tuple] -// CHECK:STDOUT: %.loc14_29: init %tuple.type.471 = converted %.loc14_28.1, %.loc14_28.6 [template = constants.%tuple] +// CHECK:STDOUT: %.loc14_28.5: init %i32 = initialize_from %.loc14_28.4 to %tuple.elem1.loc14 [template = constants.%int_102.b91] +// CHECK:STDOUT: %.loc14_28.6: init %tuple.type.d07 = tuple_init (%.loc14_28.3, %.loc14_28.5) to file.%x.var [template = constants.%tuple] +// CHECK:STDOUT: %.loc14_29: init %tuple.type.d07 = converted %.loc14_28.1, %.loc14_28.6 [template = constants.%tuple] // CHECK:STDOUT: assign file.%x.var, %.loc14_29 -// CHECK:STDOUT: %x.ref: ref %tuple.type.471 = name_ref x, file.%x +// CHECK:STDOUT: %x.ref: ref %tuple.type.d07 = name_ref x, file.%x // CHECK:STDOUT: %tuple.elem0.loc15_21.1: ref %i32 = tuple_access %x.ref, element0 // CHECK:STDOUT: %.loc15_21.1: %i32 = bind_value %tuple.elem0.loc15_21.1 // CHECK:STDOUT: %tuple.elem0.loc15_21.2: ref %i32 = tuple_access file.%y.var, element0 @@ -111,8 +111,8 @@ var y: (i32, i32) = x; // CHECK:STDOUT: %.loc15_21.3: %i32 = bind_value %tuple.elem1.loc15_21.1 // CHECK:STDOUT: %tuple.elem1.loc15_21.2: ref %i32 = tuple_access file.%y.var, element1 // CHECK:STDOUT: %.loc15_21.4: init %i32 = initialize_from %.loc15_21.3 to %tuple.elem1.loc15_21.2 -// CHECK:STDOUT: %.loc15_21.5: init %tuple.type.471 = tuple_init (%.loc15_21.2, %.loc15_21.4) to file.%y.var -// CHECK:STDOUT: %.loc15_22: init %tuple.type.471 = converted %x.ref, %.loc15_21.5 +// CHECK:STDOUT: %.loc15_21.5: init %tuple.type.d07 = tuple_init (%.loc15_21.2, %.loc15_21.4) to file.%y.var +// CHECK:STDOUT: %.loc15_22: init %tuple.type.d07 = converted %x.ref, %.loc15_21.5 // CHECK:STDOUT: assign file.%y.var, %.loc15_22 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/var/fail_storage_is_literal.carbon b/toolchain/check/testdata/var/fail_storage_is_literal.carbon index 2ce08aaf5be1..eb8135674134 100644 --- a/toolchain/check/testdata/var/fail_storage_is_literal.carbon +++ b/toolchain/check/testdata/var/fail_storage_is_literal.carbon @@ -28,7 +28,7 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index 6f10a3cac1e3..2b8db5d18939 100644 --- a/toolchain/check/testdata/where_expr/constraints.carbon +++ b/toolchain/check/testdata/where_expr/constraints.carbon @@ -120,9 +120,9 @@ fn NotEmptyStruct() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %J.type: type = facet_type <@J> [template] -// CHECK:STDOUT: %Self.f9f: %J.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.ccd: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %assoc_type.579: type = assoc_entity_type %I.type, type [template] // CHECK:STDOUT: %assoc0: %assoc_type.579 = assoc_entity element0, @I.%Member [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] @@ -230,7 +230,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.f9f] +// CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.ccd] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -238,7 +238,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: %Member: type = assoc_const_decl Member [template] // CHECK:STDOUT: %assoc0: %assoc_type.579 = assoc_entity element0, %Member [template = constants.%assoc0] // CHECK:STDOUT: %Second: %J.type = assoc_const_decl Second [template] @@ -291,11 +291,11 @@ fn NotEmptyStruct() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %L.type: type = facet_type <@L> [template] -// CHECK:STDOUT: %Self.863: %L.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.1d2: %L.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %M.type: type = facet_type <@M> [template] -// CHECK:STDOUT: %Self.443: %M.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.bcc: %M.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %K.type: type = facet_type <@K> [template] -// CHECK:STDOUT: %Self.744: %K.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.09f: %K.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %assoc_type: type = assoc_entity_type %K.type, %L.type [template] // CHECK:STDOUT: %assoc0: %assoc_type = assoc_entity element0, @K.%Associated [template] // CHECK:STDOUT: %.Self: %K.type = bind_symbolic_name .Self [symbolic] @@ -352,7 +352,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @L { -// CHECK:STDOUT: %Self: %L.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.863] +// CHECK:STDOUT: %Self: %L.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.1d2] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -360,7 +360,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @M { -// CHECK:STDOUT: %Self: %M.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.443] +// CHECK:STDOUT: %Self: %M.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.bcc] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -368,7 +368,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @K { -// CHECK:STDOUT: %Self: %K.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.744] +// CHECK:STDOUT: %Self: %K.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.09f] // CHECK:STDOUT: %Associated: %L.type = assoc_const_decl Associated [template] // CHECK:STDOUT: %assoc0: %assoc_type = assoc_entity element0, %Associated [template = constants.%assoc0] // CHECK:STDOUT: @@ -404,7 +404,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -459,7 +459,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -516,7 +516,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -583,26 +583,26 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.b29: type = import_ref Main//state_constraints, J, loaded [template = constants.%J.type] -// CHECK:STDOUT: %import_ref.492 = import_ref Main//state_constraints, I, unloaded -// CHECK:STDOUT: %import_ref.61d = import_ref Main//state_constraints, EqualEqual, unloaded -// CHECK:STDOUT: %import_ref.fcb: %Impls.type = import_ref Main//state_constraints, Impls, loaded [template = constants.%Impls] -// CHECK:STDOUT: %import_ref.df6 = import_ref Main//state_constraints, And, unloaded +// CHECK:STDOUT: %import_ref.7c1: type = import_ref Main//state_constraints, J, loaded [template = constants.%J.type] +// CHECK:STDOUT: %import_ref.541 = import_ref Main//state_constraints, I, unloaded +// CHECK:STDOUT: %import_ref.cdb = import_ref Main//state_constraints, EqualEqual, unloaded +// CHECK:STDOUT: %import_ref.e7f: %Impls.type = import_ref Main//state_constraints, Impls, loaded [template = constants.%Impls] +// CHECK:STDOUT: %import_ref.45f = import_ref Main//state_constraints, And, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.17d = import_ref Main//state_constraints, inst17 [no loc], unloaded +// CHECK:STDOUT: %import_ref.8fd = import_ref Main//state_constraints, inst17 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .J = imports.%import_ref.b29 -// CHECK:STDOUT: .I = imports.%import_ref.492 -// CHECK:STDOUT: .EqualEqual = imports.%import_ref.61d -// CHECK:STDOUT: .Impls = imports.%import_ref.fcb -// CHECK:STDOUT: .And = imports.%import_ref.df6 +// CHECK:STDOUT: .J = imports.%import_ref.7c1 +// CHECK:STDOUT: .I = imports.%import_ref.541 +// CHECK:STDOUT: .EqualEqual = imports.%import_ref.cdb +// CHECK:STDOUT: .Impls = imports.%import_ref.e7f +// CHECK:STDOUT: .And = imports.%import_ref.45f // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .DoesNotImplI = %DoesNotImplI.decl @@ -614,7 +614,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: impl_decl @impl [template] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %J.ref: type = name_ref J, imports.%import_ref.b29 [template = constants.%J.type] +// CHECK:STDOUT: %J.ref: type = name_ref J, imports.%import_ref.7c1 [template = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness () [template = constants.%impl_witness] // CHECK:STDOUT: %DoesNotImplI.decl: %DoesNotImplI.type = fn_decl @DoesNotImplI [template = constants.%DoesNotImplI] {} {} @@ -624,7 +624,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } { // CHECK:STDOUT: %Y.param: %J_where.type = value_param runtime_param // CHECK:STDOUT: %.loc26_22.1: type = splice_block %.loc26_22.2 [template = constants.%J_where.type] { -// CHECK:STDOUT: %J.ref: type = name_ref J, imports.%import_ref.b29 [template = constants.%J.type] +// CHECK:STDOUT: %J.ref: type = name_ref J, imports.%import_ref.7c1 [template = constants.%J.type] // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic = constants.%.Self] // CHECK:STDOUT: %.loc26_38: %empty_struct_type = struct_literal () @@ -639,7 +639,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: // CHECK:STDOUT: interface @J [from "state_constraints.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.17d +// CHECK:STDOUT: .Self = imports.%import_ref.8fd // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: @@ -658,7 +658,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: // CHECK:STDOUT: fn @DoesNotImplI() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Impls.ref: %Impls.type = name_ref Impls, imports.%import_ref.fcb [template = constants.%Impls] +// CHECK:STDOUT: %Impls.ref: %Impls.type = name_ref Impls, imports.%import_ref.e7f [template = constants.%Impls] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %.loc23: %J_where.type = converted %C.ref, [template = ] // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/where_expr/dot_self_index.carbon b/toolchain/check/testdata/where_expr/dot_self_index.carbon index 81c549a9b250..4fced364e41f 100644 --- a/toolchain/check/testdata/where_expr/dot_self_index.carbon +++ b/toolchain/check/testdata/where_expr/dot_self_index.carbon @@ -29,49 +29,49 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.type.d5a: type = generic_interface_type @Empty [template] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template] // CHECK:STDOUT: %Empty.generic: %Empty.type.d5a = struct_value () [template] -// CHECK:STDOUT: %Empty.type.a54: type = facet_type <@Empty, @Empty(%W)> [symbolic] -// CHECK:STDOUT: %Self: %Empty.type.a54 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %assoc_type.263: type = assoc_entity_type %Empty.type.a54, type [symbolic] -// CHECK:STDOUT: %assoc0.78a: %assoc_type.263 = assoc_entity element0, @Empty.%A [symbolic] +// CHECK:STDOUT: %Empty.type.3e5fde.1: type = facet_type <@Empty, @Empty(%W)> [symbolic] +// CHECK:STDOUT: %Self: %Empty.type.3e5fde.1 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %assoc_type.79df66.1: type = assoc_entity_type %Empty.type.3e5fde.1, type [symbolic] +// CHECK:STDOUT: %assoc0.b2890e.1: %assoc_type.79df66.1 = assoc_entity element0, @Empty.%A [symbolic] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %Empty.type.f74: type = facet_type <@Empty, @Empty(%T)> [symbolic] -// CHECK:STDOUT: %.Self.ec8: %Empty.type.f74 = bind_symbolic_name .Self [symbolic] -// CHECK:STDOUT: %require_complete.9fb: = require_complete_type %Empty.type.f74 [symbolic] -// CHECK:STDOUT: %assoc_type.c52: type = assoc_entity_type %Empty.type.f74, type [symbolic] -// CHECK:STDOUT: %assoc0.292: %assoc_type.c52 = assoc_entity element0, @Empty.%A [symbolic] -// CHECK:STDOUT: %.Self.as_wit.b86: = facet_access_witness %.Self.ec8 [symbolic] -// CHECK:STDOUT: %impl.elem0.76f: type = impl_witness_access %.Self.as_wit.b86, element0 [symbolic] -// CHECK:STDOUT: %ptr.251: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %Empty_where.type.963: type = facet_type <@Empty, @Empty(%T) where %impl.elem0.76f = %ptr.251> [symbolic] +// CHECK:STDOUT: %Empty.type.3e5fde.2: type = facet_type <@Empty, @Empty(%T)> [symbolic] +// CHECK:STDOUT: %.Self.c95: %Empty.type.3e5fde.2 = bind_symbolic_name .Self [symbolic] +// CHECK:STDOUT: %require_complete.22f: = require_complete_type %Empty.type.3e5fde.2 [symbolic] +// CHECK:STDOUT: %assoc_type.79df66.2: type = assoc_entity_type %Empty.type.3e5fde.2, type [symbolic] +// CHECK:STDOUT: %assoc0.b2890e.2: %assoc_type.79df66.2 = assoc_entity element0, @Empty.%A [symbolic] +// CHECK:STDOUT: %.Self.as_wit.da4: = facet_access_witness %.Self.c95 [symbolic] +// CHECK:STDOUT: %impl.elem0.41c: type = impl_witness_access %.Self.as_wit.da4, element0 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %Empty_where.type.4ed: type = facet_type <@Empty, @Empty(%T) where %impl.elem0.41c = %ptr.79f> [symbolic] // CHECK:STDOUT: %V: type = bind_symbolic_name V, 1 [symbolic] // CHECK:STDOUT: %V.patt: type = symbolic_binding_pattern V, 1 [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] -// CHECK:STDOUT: %require_complete.067: = require_complete_type %Empty_where.type.963 [symbolic] +// CHECK:STDOUT: %require_complete.510: = require_complete_type %Empty_where.type.4ed [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %Empty.type.4af: type = facet_type <@Empty, @Empty(%i32)> [template] -// CHECK:STDOUT: %.Self.a46: %Empty.type.4af = bind_symbolic_name .Self [symbolic] -// CHECK:STDOUT: %assoc_type.488: type = assoc_entity_type %Empty.type.4af, type [template] -// CHECK:STDOUT: %assoc0.7bc: %assoc_type.488 = assoc_entity element0, @Empty.%A [template] -// CHECK:STDOUT: %.Self.as_wit.c5e: = facet_access_witness %.Self.a46 [symbolic] -// CHECK:STDOUT: %impl.elem0.b4f: type = impl_witness_access %.Self.as_wit.c5e, element0 [symbolic] -// CHECK:STDOUT: %ptr.dc3: type = ptr_type %i32 [template] -// CHECK:STDOUT: %Empty_where.type.5d3: type = facet_type <@Empty, @Empty(%i32) where %impl.elem0.b4f = %ptr.dc3> [template] +// CHECK:STDOUT: %Empty.type.f0b: type = facet_type <@Empty, @Empty(%i32)> [template] +// CHECK:STDOUT: %.Self.e6e: %Empty.type.f0b = bind_symbolic_name .Self [symbolic] +// CHECK:STDOUT: %assoc_type.eda: type = assoc_entity_type %Empty.type.f0b, type [template] +// CHECK:STDOUT: %assoc0.da0: %assoc_type.eda = assoc_entity element0, @Empty.%A [template] +// CHECK:STDOUT: %.Self.as_wit.581: = facet_access_witness %.Self.e6e [symbolic] +// CHECK:STDOUT: %impl.elem0.797: type = impl_witness_access %.Self.as_wit.581, element0 [symbolic] +// CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [template] +// CHECK:STDOUT: %Empty_where.type.a58: type = facet_type <@Empty, @Empty(%i32) where %impl.elem0.797 = %ptr.235> [template] // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [template] -// CHECK:STDOUT: %complete_type.6c0: = complete_type_witness %Empty.type.4af [template] +// CHECK:STDOUT: %complete_type.091: = complete_type_witness %Empty.type.f0b [template] // CHECK:STDOUT: %H.specific_fn: = specific_function %H, @H(%i32, bool) [template] -// CHECK:STDOUT: %complete_type.a60: = complete_type_witness %Empty_where.type.5d3 [template] +// CHECK:STDOUT: %complete_type.5e7: = complete_type_witness %Empty_where.type.a58 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -95,58 +95,58 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] { // CHECK:STDOUT: %T.patt.loc18_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc18_6.2 (constants.%T.patt)] // CHECK:STDOUT: %T.param_patt: type = value_param_pattern %T.patt.loc18_6.1, runtime_param [symbolic = %T.patt.loc18_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %U.patt: @H.%Empty_where.type (%Empty_where.type.963) = binding_pattern U -// CHECK:STDOUT: %U.param_patt: @H.%Empty_where.type (%Empty_where.type.963) = value_param_pattern %U.patt, runtime_param0 +// CHECK:STDOUT: %U.patt: @H.%Empty_where.type (%Empty_where.type.4ed) = binding_pattern U +// CHECK:STDOUT: %U.param_patt: @H.%Empty_where.type (%Empty_where.type.4ed) = value_param_pattern %U.patt, runtime_param0 // CHECK:STDOUT: %V.patt.loc18_43.1: type = symbolic_binding_pattern V, 1 [symbolic = %V.patt.loc18_43.2 (constants.%V.patt)] // CHECK:STDOUT: %V.param_patt: type = value_param_pattern %V.patt.loc18_43.1, runtime_param [symbolic = %V.patt.loc18_43.2 (constants.%V.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param runtime_param // CHECK:STDOUT: %T.loc18_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc18_6.2 (constants.%T)] -// CHECK:STDOUT: %U.param: @H.%Empty_where.type (%Empty_where.type.963) = value_param runtime_param0 -// CHECK:STDOUT: %.loc18_28.1: type = splice_block %.loc18_28.2 [symbolic = %Empty_where.type (constants.%Empty_where.type.963)] { +// CHECK:STDOUT: %U.param: @H.%Empty_where.type (%Empty_where.type.4ed) = value_param runtime_param0 +// CHECK:STDOUT: %.loc18_28.1: type = splice_block %.loc18_28.2 [symbolic = %Empty_where.type (constants.%Empty_where.type.4ed)] { // CHECK:STDOUT: %Empty.ref: %Empty.type.d5a = name_ref Empty, file.%Empty.decl [template = constants.%Empty.generic] // CHECK:STDOUT: %T.ref.loc18_25: type = name_ref T, %T.loc18_6.1 [symbolic = %T.loc18_6.2 (constants.%T)] -// CHECK:STDOUT: %Empty.type.loc18_26.1: type = facet_type <@Empty, @Empty(constants.%T)> [symbolic = %Empty.type.loc18_26.2 (constants.%Empty.type.f74)] -// CHECK:STDOUT: %.Self.1: @H.%Empty.type.loc18_26.2 (%Empty.type.f74) = bind_symbolic_name .Self [symbolic = %.Self.2 (constants.%.Self.ec8)] -// CHECK:STDOUT: %.Self.ref: @H.%Empty.type.loc18_26.2 (%Empty.type.f74) = name_ref .Self, %.Self.1 [symbolic = %.Self.2 (constants.%.Self.ec8)] -// CHECK:STDOUT: %.loc18_34: @H.%assoc_type (%assoc_type.c52) = specific_constant @Empty.%assoc0.loc12_15.1, @Empty(constants.%T) [symbolic = %assoc0 (constants.%assoc0.292)] -// CHECK:STDOUT: %A.ref: @H.%assoc_type (%assoc_type.c52) = name_ref A, %.loc18_34 [symbolic = %assoc0 (constants.%assoc0.292)] -// CHECK:STDOUT: %.Self.as_wit.loc18_34.1: = facet_access_witness %.Self.ref [symbolic = %.Self.as_wit.loc18_34.2 (constants.%.Self.as_wit.b86)] -// CHECK:STDOUT: %impl.elem0.loc18_34.1: type = impl_witness_access %.Self.as_wit.loc18_34.1, element0 [symbolic = %impl.elem0.loc18_34.2 (constants.%impl.elem0.76f)] +// CHECK:STDOUT: %Empty.type.loc18_26.1: type = facet_type <@Empty, @Empty(constants.%T)> [symbolic = %Empty.type.loc18_26.2 (constants.%Empty.type.3e5fde.2)] +// CHECK:STDOUT: %.Self.1: @H.%Empty.type.loc18_26.2 (%Empty.type.3e5fde.2) = bind_symbolic_name .Self [symbolic = %.Self.2 (constants.%.Self.c95)] +// CHECK:STDOUT: %.Self.ref: @H.%Empty.type.loc18_26.2 (%Empty.type.3e5fde.2) = name_ref .Self, %.Self.1 [symbolic = %.Self.2 (constants.%.Self.c95)] +// CHECK:STDOUT: %.loc18_34: @H.%assoc_type (%assoc_type.79df66.2) = specific_constant @Empty.%assoc0.loc12_15.1, @Empty(constants.%T) [symbolic = %assoc0 (constants.%assoc0.b2890e.2)] +// CHECK:STDOUT: %A.ref: @H.%assoc_type (%assoc_type.79df66.2) = name_ref A, %.loc18_34 [symbolic = %assoc0 (constants.%assoc0.b2890e.2)] +// CHECK:STDOUT: %.Self.as_wit.loc18_34.1: = facet_access_witness %.Self.ref [symbolic = %.Self.as_wit.loc18_34.2 (constants.%.Self.as_wit.da4)] +// CHECK:STDOUT: %impl.elem0.loc18_34.1: type = impl_witness_access %.Self.as_wit.loc18_34.1, element0 [symbolic = %impl.elem0.loc18_34.2 (constants.%impl.elem0.41c)] // CHECK:STDOUT: %T.ref.loc18_39: type = name_ref T, %T.loc18_6.1 [symbolic = %T.loc18_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc18_40.1: type = ptr_type %T [symbolic = %ptr.loc18_40.2 (constants.%ptr.251)] -// CHECK:STDOUT: %.loc18_28.2: type = where_expr %.Self.1 [symbolic = %Empty_where.type (constants.%Empty_where.type.963)] { +// CHECK:STDOUT: %ptr.loc18_40.1: type = ptr_type %T [symbolic = %ptr.loc18_40.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %.loc18_28.2: type = where_expr %.Self.1 [symbolic = %Empty_where.type (constants.%Empty_where.type.4ed)] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18_34.1, %ptr.loc18_40.1 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U: @H.%Empty_where.type (%Empty_where.type.963) = bind_name U, %U.param +// CHECK:STDOUT: %U: @H.%Empty_where.type (%Empty_where.type.4ed) = bind_name U, %U.param // CHECK:STDOUT: %V.param: type = value_param runtime_param // CHECK:STDOUT: %V.loc18_43.1: type = bind_symbolic_name V, 1, %V.param [symbolic = %V.loc18_43.2 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { -// CHECK:STDOUT: %U.patt: %Empty_where.type.5d3 = binding_pattern U -// CHECK:STDOUT: %U.param_patt: %Empty_where.type.5d3 = value_param_pattern %U.patt, runtime_param0 +// CHECK:STDOUT: %U.patt: %Empty_where.type.a58 = binding_pattern U +// CHECK:STDOUT: %U.param_patt: %Empty_where.type.a58 = value_param_pattern %U.patt, runtime_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.param: %Empty_where.type.5d3 = value_param runtime_param0 -// CHECK:STDOUT: %.loc20_20.1: type = splice_block %.loc20_20.2 [template = constants.%Empty_where.type.5d3] { +// CHECK:STDOUT: %U.param: %Empty_where.type.a58 = value_param runtime_param0 +// CHECK:STDOUT: %.loc20_20.1: type = splice_block %.loc20_20.2 [template = constants.%Empty_where.type.a58] { // CHECK:STDOUT: %Empty.ref: %Empty.type.d5a = name_ref Empty, file.%Empty.decl [template = constants.%Empty.generic] // CHECK:STDOUT: %int_32.loc20_15: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc20_15: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %Empty.type: type = facet_type <@Empty, @Empty(constants.%i32)> [template = constants.%Empty.type.4af] -// CHECK:STDOUT: %.Self: %Empty.type.4af = bind_symbolic_name .Self [symbolic = constants.%.Self.a46] -// CHECK:STDOUT: %.Self.ref: %Empty.type.4af = name_ref .Self, %.Self [symbolic = constants.%.Self.a46] -// CHECK:STDOUT: %.loc20_26: %assoc_type.488 = specific_constant @Empty.%assoc0.loc12_15.1, @Empty(constants.%i32) [template = constants.%assoc0.7bc] -// CHECK:STDOUT: %A.ref: %assoc_type.488 = name_ref A, %.loc20_26 [template = constants.%assoc0.7bc] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic = constants.%.Self.as_wit.c5e] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic = constants.%impl.elem0.b4f] +// CHECK:STDOUT: %Empty.type: type = facet_type <@Empty, @Empty(constants.%i32)> [template = constants.%Empty.type.f0b] +// CHECK:STDOUT: %.Self: %Empty.type.f0b = bind_symbolic_name .Self [symbolic = constants.%.Self.e6e] +// CHECK:STDOUT: %.Self.ref: %Empty.type.f0b = name_ref .Self, %.Self [symbolic = constants.%.Self.e6e] +// CHECK:STDOUT: %.loc20_26: %assoc_type.eda = specific_constant @Empty.%assoc0.loc12_15.1, @Empty(constants.%i32) [template = constants.%assoc0.da0] +// CHECK:STDOUT: %A.ref: %assoc_type.eda = name_ref A, %.loc20_26 [template = constants.%assoc0.da0] +// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic = constants.%.Self.as_wit.581] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic = constants.%impl.elem0.797] // CHECK:STDOUT: %int_32.loc20_31: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc20_31: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32 [template = constants.%ptr.dc3] -// CHECK:STDOUT: %.loc20_20.2: type = where_expr %.Self [template = constants.%Empty_where.type.5d3] { +// CHECK:STDOUT: %ptr: type = ptr_type %i32 [template = constants.%ptr.235] +// CHECK:STDOUT: %.loc20_20.2: type = where_expr %.Self [template = constants.%Empty_where.type.a58] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %ptr // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U: %Empty_where.type.5d3 = bind_name U, %U.param +// CHECK:STDOUT: %U: %Empty_where.type.a58 = bind_name U, %U.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -155,15 +155,15 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %W.patt.loc11_17.2: type = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc11_17.2 (constants.%W.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Empty.type: type = facet_type <@Empty, @Empty(%W.loc11_17.2)> [symbolic = %Empty.type (constants.%Empty.type.a54)] -// CHECK:STDOUT: %Self.2: %Empty.type.a54 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @Empty.%Empty.type (%Empty.type.a54), type [symbolic = %assoc_type (constants.%assoc_type.263)] -// CHECK:STDOUT: %assoc0.loc12_15.2: @Empty.%assoc_type (%assoc_type.263) = assoc_entity element0, %A [symbolic = %assoc0.loc12_15.2 (constants.%assoc0.78a)] +// CHECK:STDOUT: %Empty.type: type = facet_type <@Empty, @Empty(%W.loc11_17.2)> [symbolic = %Empty.type (constants.%Empty.type.3e5fde.1)] +// CHECK:STDOUT: %Self.2: %Empty.type.3e5fde.1 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @Empty.%Empty.type (%Empty.type.3e5fde.1), type [symbolic = %assoc_type (constants.%assoc_type.79df66.1)] +// CHECK:STDOUT: %assoc0.loc12_15.2: @Empty.%assoc_type (%assoc_type.79df66.1) = assoc_entity element0, %A [symbolic = %assoc0.loc12_15.2 (constants.%assoc0.b2890e.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @Empty.%Empty.type (%Empty.type.a54) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Empty.%Empty.type (%Empty.type.3e5fde.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %A: type = assoc_const_decl A [template] -// CHECK:STDOUT: %assoc0.loc12_15.1: @Empty.%assoc_type (%assoc_type.263) = assoc_entity element0, %A [symbolic = %assoc0.loc12_15.2 (constants.%assoc0.78a)] +// CHECK:STDOUT: %assoc0.loc12_15.1: @Empty.%assoc_type (%assoc_type.79df66.1) = assoc_entity element0, %A [symbolic = %assoc0.loc12_15.2 (constants.%assoc0.b2890e.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -175,33 +175,33 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: generic fn @H(%T.loc18_6.1: type, %V.loc18_43.1: type) { // CHECK:STDOUT: %T.loc18_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc18_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc18_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc18_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %Empty.type.loc18_26.2: type = facet_type <@Empty, @Empty(%T.loc18_6.2)> [symbolic = %Empty.type.loc18_26.2 (constants.%Empty.type.f74)] -// CHECK:STDOUT: %.Self.2: @H.%Empty.type.loc18_26.2 (%Empty.type.f74) = bind_symbolic_name .Self [symbolic = %.Self.2 (constants.%.Self.ec8)] -// CHECK:STDOUT: %require_complete.loc18_34: = require_complete_type @H.%Empty.type.loc18_26.2 (%Empty.type.f74) [symbolic = %require_complete.loc18_34 (constants.%require_complete.9fb)] -// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @H.%Empty.type.loc18_26.2 (%Empty.type.f74), type [symbolic = %assoc_type (constants.%assoc_type.c52)] -// CHECK:STDOUT: %assoc0: @H.%assoc_type (%assoc_type.c52) = assoc_entity element0, @Empty.%A [symbolic = %assoc0 (constants.%assoc0.292)] -// CHECK:STDOUT: %.Self.as_wit.loc18_34.2: = facet_access_witness %.Self.2 [symbolic = %.Self.as_wit.loc18_34.2 (constants.%.Self.as_wit.b86)] -// CHECK:STDOUT: %impl.elem0.loc18_34.2: type = impl_witness_access %.Self.as_wit.loc18_34.2, element0 [symbolic = %impl.elem0.loc18_34.2 (constants.%impl.elem0.76f)] -// CHECK:STDOUT: %ptr.loc18_40.2: type = ptr_type @H.%T.loc18_6.2 (%T) [symbolic = %ptr.loc18_40.2 (constants.%ptr.251)] -// CHECK:STDOUT: %Empty_where.type: type = facet_type <@Empty, @Empty(%T.loc18_6.2) where %impl.elem0.loc18_34.2 (constants.%impl.elem0.76f) = %ptr.loc18_40.2 (constants.%ptr.251)> [symbolic = %Empty_where.type (constants.%Empty_where.type.963)] +// CHECK:STDOUT: %Empty.type.loc18_26.2: type = facet_type <@Empty, @Empty(%T.loc18_6.2)> [symbolic = %Empty.type.loc18_26.2 (constants.%Empty.type.3e5fde.2)] +// CHECK:STDOUT: %.Self.2: @H.%Empty.type.loc18_26.2 (%Empty.type.3e5fde.2) = bind_symbolic_name .Self [symbolic = %.Self.2 (constants.%.Self.c95)] +// CHECK:STDOUT: %require_complete.loc18_34: = require_complete_type @H.%Empty.type.loc18_26.2 (%Empty.type.3e5fde.2) [symbolic = %require_complete.loc18_34 (constants.%require_complete.22f)] +// CHECK:STDOUT: %assoc_type: type = assoc_entity_type @H.%Empty.type.loc18_26.2 (%Empty.type.3e5fde.2), type [symbolic = %assoc_type (constants.%assoc_type.79df66.2)] +// CHECK:STDOUT: %assoc0: @H.%assoc_type (%assoc_type.79df66.2) = assoc_entity element0, @Empty.%A [symbolic = %assoc0 (constants.%assoc0.b2890e.2)] +// CHECK:STDOUT: %.Self.as_wit.loc18_34.2: = facet_access_witness %.Self.2 [symbolic = %.Self.as_wit.loc18_34.2 (constants.%.Self.as_wit.da4)] +// CHECK:STDOUT: %impl.elem0.loc18_34.2: type = impl_witness_access %.Self.as_wit.loc18_34.2, element0 [symbolic = %impl.elem0.loc18_34.2 (constants.%impl.elem0.41c)] +// CHECK:STDOUT: %ptr.loc18_40.2: type = ptr_type @H.%T.loc18_6.2 (%T) [symbolic = %ptr.loc18_40.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %Empty_where.type: type = facet_type <@Empty, @Empty(%T.loc18_6.2) where %impl.elem0.loc18_34.2 (constants.%impl.elem0.41c) = %ptr.loc18_40.2 (constants.%ptr.79f)> [symbolic = %Empty_where.type (constants.%Empty_where.type.4ed)] // CHECK:STDOUT: %V.loc18_43.2: type = bind_symbolic_name V, 1 [symbolic = %V.loc18_43.2 (constants.%V)] // CHECK:STDOUT: %V.patt.loc18_43.2: type = symbolic_binding_pattern V, 1 [symbolic = %V.patt.loc18_43.2 (constants.%V.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc18_17: = require_complete_type @H.%Empty_where.type (%Empty_where.type.963) [symbolic = %require_complete.loc18_17 (constants.%require_complete.067)] +// CHECK:STDOUT: %require_complete.loc18_17: = require_complete_type @H.%Empty_where.type (%Empty_where.type.4ed) [symbolic = %require_complete.loc18_17 (constants.%require_complete.510)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: @H.%Empty_where.type (%Empty_where.type.963), %V.param_patt: type) { +// CHECK:STDOUT: fn(%T.param_patt: type, %U.param_patt: @H.%Empty_where.type (%Empty_where.type.4ed), %V.param_patt: type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%U.param_patt: %Empty_where.type.5d3) { +// CHECK:STDOUT: fn @G(%U.param_patt: %Empty_where.type.a58) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %H.ref: %H.type = name_ref H, file.%H.decl [template = constants.%H] // CHECK:STDOUT: %int_32.loc21: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32.loc21: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %U.ref: %Empty_where.type.5d3 = name_ref U, %U +// CHECK:STDOUT: %U.ref: %Empty_where.type.a58 = name_ref U, %U // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [template = bool] // CHECK:STDOUT: %.loc21_17.1: type = value_of_initializer %bool.make_type [template = bool] // CHECK:STDOUT: %.loc21_17.2: type = converted %bool.make_type, %.loc21_17.1 [template = bool] @@ -222,24 +222,24 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %W.patt.loc11_17.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Empty.type => constants.%Empty.type.f74 +// CHECK:STDOUT: %Empty.type => constants.%Empty.type.3e5fde.2 // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %assoc_type => constants.%assoc_type.c52 -// CHECK:STDOUT: %assoc0.loc12_15.2 => constants.%assoc0.292 +// CHECK:STDOUT: %assoc_type => constants.%assoc_type.79df66.2 +// CHECK:STDOUT: %assoc0.loc12_15.2 => constants.%assoc0.b2890e.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%T, constants.%V) { // CHECK:STDOUT: %T.loc18_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc18_6.2 => constants.%T -// CHECK:STDOUT: %Empty.type.loc18_26.2 => constants.%Empty.type.f74 -// CHECK:STDOUT: %.Self.2 => constants.%.Self.ec8 -// CHECK:STDOUT: %require_complete.loc18_34 => constants.%require_complete.9fb -// CHECK:STDOUT: %assoc_type => constants.%assoc_type.c52 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.292 -// CHECK:STDOUT: %.Self.as_wit.loc18_34.2 => constants.%.Self.as_wit.b86 -// CHECK:STDOUT: %impl.elem0.loc18_34.2 => constants.%impl.elem0.76f -// CHECK:STDOUT: %ptr.loc18_40.2 => constants.%ptr.251 -// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.963 +// CHECK:STDOUT: %Empty.type.loc18_26.2 => constants.%Empty.type.3e5fde.2 +// CHECK:STDOUT: %.Self.2 => constants.%.Self.c95 +// CHECK:STDOUT: %require_complete.loc18_34 => constants.%require_complete.22f +// CHECK:STDOUT: %assoc_type => constants.%assoc_type.79df66.2 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b2890e.2 +// CHECK:STDOUT: %.Self.as_wit.loc18_34.2 => constants.%.Self.as_wit.da4 +// CHECK:STDOUT: %impl.elem0.loc18_34.2 => constants.%impl.elem0.41c +// CHECK:STDOUT: %ptr.loc18_40.2 => constants.%ptr.79f +// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.4ed // CHECK:STDOUT: %V.loc18_43.2 => constants.%V // CHECK:STDOUT: %V.patt.loc18_43.2 => constants.%V // CHECK:STDOUT: } @@ -251,28 +251,28 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %W.patt.loc11_17.2 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Empty.type => constants.%Empty.type.4af +// CHECK:STDOUT: %Empty.type => constants.%Empty.type.f0b // CHECK:STDOUT: %Self.2 => constants.%Self -// CHECK:STDOUT: %assoc_type => constants.%assoc_type.488 -// CHECK:STDOUT: %assoc0.loc12_15.2 => constants.%assoc0.7bc +// CHECK:STDOUT: %assoc_type => constants.%assoc_type.eda +// CHECK:STDOUT: %assoc0.loc12_15.2 => constants.%assoc0.da0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%i32, bool) { // CHECK:STDOUT: %T.loc18_6.2 => constants.%i32 // CHECK:STDOUT: %T.patt.loc18_6.2 => constants.%i32 -// CHECK:STDOUT: %Empty.type.loc18_26.2 => constants.%Empty.type.4af -// CHECK:STDOUT: %.Self.2 => constants.%.Self.a46 -// CHECK:STDOUT: %require_complete.loc18_34 => constants.%complete_type.6c0 -// CHECK:STDOUT: %assoc_type => constants.%assoc_type.488 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.7bc -// CHECK:STDOUT: %.Self.as_wit.loc18_34.2 => constants.%.Self.as_wit.c5e -// CHECK:STDOUT: %impl.elem0.loc18_34.2 => constants.%impl.elem0.b4f -// CHECK:STDOUT: %ptr.loc18_40.2 => constants.%ptr.dc3 -// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.5d3 +// CHECK:STDOUT: %Empty.type.loc18_26.2 => constants.%Empty.type.f0b +// CHECK:STDOUT: %.Self.2 => constants.%.Self.e6e +// CHECK:STDOUT: %require_complete.loc18_34 => constants.%complete_type.091 +// CHECK:STDOUT: %assoc_type => constants.%assoc_type.eda +// CHECK:STDOUT: %assoc0 => constants.%assoc0.da0 +// CHECK:STDOUT: %.Self.as_wit.loc18_34.2 => constants.%.Self.as_wit.581 +// CHECK:STDOUT: %impl.elem0.loc18_34.2 => constants.%impl.elem0.797 +// CHECK:STDOUT: %ptr.loc18_40.2 => constants.%ptr.235 +// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.a58 // CHECK:STDOUT: %V.loc18_43.2 => bool // CHECK:STDOUT: %V.patt.loc18_43.2 => bool // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc18_17 => constants.%complete_type.a60 +// CHECK:STDOUT: %require_complete.loc18_17 => constants.%complete_type.5e7 // 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 9a9657bdbc78..7577affbbe0c 100644 --- a/toolchain/check/testdata/where_expr/equal_rewrite.carbon +++ b/toolchain/check/testdata/where_expr/equal_rewrite.carbon @@ -418,18 +418,18 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %H.patt: %E_where.type = symbolic_binding_pattern H, 0 [symbolic] // CHECK:STDOUT: %RepeatedRewrite.type: type = fn_type @RepeatedRewrite [template] // CHECK:STDOUT: %RepeatedRewrite: %RepeatedRewrite.type = struct_value () [template] -// CHECK:STDOUT: %OneRewrite.specific_fn.a2b: = specific_function %OneRewrite, @OneRewrite(%H) [symbolic] +// CHECK:STDOUT: %OneRewrite.specific_fn.381461.1: = specific_function %OneRewrite, @OneRewrite(%H) [symbolic] // CHECK:STDOUT: %I: %E_where.type = bind_symbolic_name I, 0 [symbolic] // CHECK:STDOUT: %I.patt: %E_where.type = symbolic_binding_pattern I, 0 [symbolic] // CHECK:STDOUT: %OneRewriteAgain.type: type = fn_type @OneRewriteAgain [template] // CHECK:STDOUT: %OneRewriteAgain: %OneRewriteAgain.type = struct_value () [template] // CHECK:STDOUT: %RepeatedRewrite.specific_fn: = specific_function %RepeatedRewrite, @RepeatedRewrite(%I) [symbolic] -// CHECK:STDOUT: %OneRewrite.specific_fn.74a: = specific_function %OneRewrite, @OneRewrite(%I) [symbolic] +// CHECK:STDOUT: %OneRewrite.specific_fn.381461.2: = specific_function %OneRewrite, @OneRewrite(%I) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -542,13 +542,13 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %H.patt.loc10_20.2: %E_where.type = symbolic_binding_pattern H, 0 [symbolic = %H.patt.loc10_20.2 (constants.%H.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.2: = specific_function constants.%OneRewrite, @OneRewrite(%H.loc10_20.2) [symbolic = %OneRewrite.specific_fn.loc11_3.2 (constants.%OneRewrite.specific_fn.a2b)] +// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.2: = specific_function constants.%OneRewrite, @OneRewrite(%H.loc10_20.2) [symbolic = %OneRewrite.specific_fn.loc11_3.2 (constants.%OneRewrite.specific_fn.381461.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%H.param_patt: %E_where.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %OneRewrite.ref: %OneRewrite.type = name_ref OneRewrite, file.%OneRewrite.decl [template = constants.%OneRewrite] // CHECK:STDOUT: %H.ref: %E_where.type = name_ref H, %H.loc10_20.1 [symbolic = %H.loc10_20.2 (constants.%H)] -// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.1: = specific_function %OneRewrite.ref, @OneRewrite(constants.%H) [symbolic = %OneRewrite.specific_fn.loc11_3.2 (constants.%OneRewrite.specific_fn.a2b)] +// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.1: = specific_function %OneRewrite.ref, @OneRewrite(constants.%H) [symbolic = %OneRewrite.specific_fn.loc11_3.2 (constants.%OneRewrite.specific_fn.381461.1)] // CHECK:STDOUT: %OneRewrite.call: init %empty_tuple.type = call %OneRewrite.specific_fn.loc11_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -600,7 +600,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %H.patt.loc10_20.2 => constants.%I // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.2 => constants.%OneRewrite.specific_fn.74a +// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.2 => constants.%OneRewrite.specific_fn.381461.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @RepeatedRewrite(@OneRewriteAgain.%I.loc14_20.2) {} @@ -778,7 +778,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %O.type: type = facet_type <@O> [template] -// CHECK:STDOUT: %Self.75a: %O.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.040: %O.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %assoc_type: type = assoc_entity_type %O.type, type [template] // CHECK:STDOUT: %assoc0.20f: %assoc_type = assoc_entity element0, @O.%P [template] // CHECK:STDOUT: %.Self: %O.type = bind_symbolic_name .Self [symbolic] @@ -786,9 +786,9 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %O_where.type.a0c: type = facet_type <@O where %impl.elem0 = %i32> [template] -// CHECK:STDOUT: %Q: %O_where.type.a0c = bind_symbolic_name Q, 0 [symbolic] -// CHECK:STDOUT: %Q.patt: %O_where.type.a0c = symbolic_binding_pattern Q, 0 [symbolic] +// CHECK:STDOUT: %O_where.type.9eb: type = facet_type <@O where %impl.elem0 = %i32> [template] +// CHECK:STDOUT: %Q: %O_where.type.9eb = bind_symbolic_name Q, 0 [symbolic] +// CHECK:STDOUT: %Q.patt: %O_where.type.9eb = symbolic_binding_pattern Q, 0 [symbolic] // CHECK:STDOUT: %WithInteger.type: type = fn_type @WithInteger [template] // CHECK:STDOUT: %WithInteger: %WithInteger.type = struct_value () [template] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [template] @@ -802,9 +802,9 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -820,11 +820,11 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %O.decl: type = interface_decl @O [template = constants.%O.type] {} {} // CHECK:STDOUT: %WithInteger.decl: %WithInteger.type = fn_decl @WithInteger [template = constants.%WithInteger] { -// CHECK:STDOUT: %Q.patt.loc8_16.1: %O_where.type.a0c = symbolic_binding_pattern Q, 0 [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] -// CHECK:STDOUT: %Q.param_patt: %O_where.type.a0c = value_param_pattern %Q.patt.loc8_16.1, runtime_param [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] +// CHECK:STDOUT: %Q.patt.loc8_16.1: %O_where.type.9eb = symbolic_binding_pattern Q, 0 [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] +// CHECK:STDOUT: %Q.param_patt: %O_where.type.9eb = value_param_pattern %Q.patt.loc8_16.1, runtime_param [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Q.param: %O_where.type.a0c = value_param runtime_param -// CHECK:STDOUT: %.loc8_22.1: type = splice_block %.loc8_22.2 [template = constants.%O_where.type.a0c] { +// CHECK:STDOUT: %Q.param: %O_where.type.9eb = value_param runtime_param +// CHECK:STDOUT: %.loc8_22.1: type = splice_block %.loc8_22.2 [template = constants.%O_where.type.9eb] { // CHECK:STDOUT: %O.ref: type = name_ref O, file.%O.decl [template = constants.%O.type] // CHECK:STDOUT: %.Self: %O.type = bind_symbolic_name .Self [symbolic = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %O.type = name_ref .Self, %.Self [symbolic = constants.%.Self] @@ -833,11 +833,11 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic = constants.%impl.elem0] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] -// CHECK:STDOUT: %.loc8_22.2: type = where_expr %.Self [template = constants.%O_where.type.a0c] { +// CHECK:STDOUT: %.loc8_22.2: type = where_expr %.Self [template = constants.%O_where.type.9eb] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %i32 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %Q.loc8_16.1: %O_where.type.a0c = bind_symbolic_name Q, 0, %Q.param [symbolic = %Q.loc8_16.2 (constants.%Q)] +// CHECK:STDOUT: %Q.loc8_16.1: %O_where.type.9eb = bind_symbolic_name Q, 0, %Q.param [symbolic = %Q.loc8_16.2 (constants.%Q)] // CHECK:STDOUT: } // CHECK:STDOUT: %WithBool.decl: %WithBool.type = fn_decl @WithBool [template = constants.%WithBool] { // CHECK:STDOUT: %R.patt.loc10_13.1: %O_where.type.0f2 = symbolic_binding_pattern R, 0 [symbolic = %R.patt.loc10_13.2 (constants.%R.patt)] @@ -863,7 +863,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @O { -// CHECK:STDOUT: %Self: %O.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.75a] +// CHECK:STDOUT: %Self: %O.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.040] // CHECK:STDOUT: %P: type = assoc_const_decl P [template] // CHECK:STDOUT: %assoc0: %assoc_type = assoc_entity element0, %P [template = constants.%assoc0.20f] // CHECK:STDOUT: @@ -873,13 +873,13 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: witness = (%P) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WithInteger(%Q.loc8_16.1: %O_where.type.a0c) { -// CHECK:STDOUT: %Q.loc8_16.2: %O_where.type.a0c = bind_symbolic_name Q, 0 [symbolic = %Q.loc8_16.2 (constants.%Q)] -// CHECK:STDOUT: %Q.patt.loc8_16.2: %O_where.type.a0c = symbolic_binding_pattern Q, 0 [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] +// CHECK:STDOUT: generic fn @WithInteger(%Q.loc8_16.1: %O_where.type.9eb) { +// CHECK:STDOUT: %Q.loc8_16.2: %O_where.type.9eb = bind_symbolic_name Q, 0 [symbolic = %Q.loc8_16.2 (constants.%Q)] +// CHECK:STDOUT: %Q.patt.loc8_16.2: %O_where.type.9eb = symbolic_binding_pattern Q, 0 [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%Q.param_patt: %O_where.type.a0c) { +// CHECK:STDOUT: fn(%Q.param_patt: %O_where.type.9eb) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -895,7 +895,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %WithInteger.ref: %WithInteger.type = name_ref WithInteger, file.%WithInteger.decl [template = constants.%WithInteger] // CHECK:STDOUT: %R.ref: %O_where.type.0f2 = name_ref R, %R.loc10_13.1 [symbolic = %R.loc10_13.2 (constants.%R)] -// CHECK:STDOUT: %.loc21: %O_where.type.a0c = converted %R.ref, [template = ] +// CHECK:STDOUT: %.loc21: %O_where.type.9eb = converted %R.ref, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -914,7 +914,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S.type: type = facet_type <@S> [template] -// CHECK:STDOUT: %Self.27b: %S.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.b33: %S.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %assoc_type: type = assoc_entity_type %S.type, type [template] // CHECK:STDOUT: %assoc0.e49: %assoc_type = assoc_entity element0, @S.%T [template] // CHECK:STDOUT: %assoc1: %assoc_type = assoc_entity element1, @S.%U [template] @@ -937,7 +937,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -995,7 +995,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @S { -// CHECK:STDOUT: %Self: %S.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.27b] +// CHECK:STDOUT: %Self: %S.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.b33] // CHECK:STDOUT: %T: type = assoc_const_decl T [template] // CHECK:STDOUT: %assoc0: %assoc_type = assoc_entity element0, %T [template = constants.%assoc0.e49] // CHECK:STDOUT: %U: type = assoc_const_decl U [template] @@ -1081,21 +1081,21 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %import_ref.a90 = import_ref Main//equal_constraint, N, unloaded -// CHECK:STDOUT: %import_ref.439: %Equal.type = import_ref Main//equal_constraint, Equal, loaded [template = constants.%Equal] -// CHECK:STDOUT: %import_ref.fdd = import_ref Main//nested_rewrites, A, unloaded -// CHECK:STDOUT: %import_ref.b00: %NestedRewrite.type = import_ref Main//nested_rewrites, NestedRewrite, loaded [template = constants.%NestedRewrite] +// CHECK:STDOUT: %import_ref.e5e = import_ref Main//equal_constraint, N, unloaded +// CHECK:STDOUT: %import_ref.b18: %Equal.type = import_ref Main//equal_constraint, Equal, loaded [template = constants.%Equal] +// CHECK:STDOUT: %import_ref.e84 = import_ref Main//nested_rewrites, A, unloaded +// CHECK:STDOUT: %import_ref.672: %NestedRewrite.type = import_ref Main//nested_rewrites, NestedRewrite, loaded [template = constants.%NestedRewrite] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %import_ref.6a8 = import_ref Main//equal_constraint, inst17 [no loc], unloaded +// CHECK:STDOUT: %import_ref.169 = import_ref Main//equal_constraint, inst17 [no loc], unloaded // CHECK:STDOUT: %import_ref.d17 = import_ref Main//equal_constraint, loc5_15, unloaded // CHECK:STDOUT: %import_ref.77a = import_ref Main//equal_constraint, P, unloaded -// CHECK:STDOUT: %import_ref.b09 = import_ref Main//nested_rewrites, inst17 [no loc], unloaded +// CHECK:STDOUT: %import_ref.b61 = import_ref Main//nested_rewrites, inst17 [no loc], unloaded // CHECK:STDOUT: %import_ref.2a9 = import_ref Main//nested_rewrites, loc5_15, unloaded // CHECK:STDOUT: %import_ref.508 = import_ref Main//nested_rewrites, loc6_15, unloaded // CHECK:STDOUT: %import_ref.75c = import_ref Main//nested_rewrites, B, unloaded @@ -1104,10 +1104,10 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [template] { -// CHECK:STDOUT: .N = imports.%import_ref.a90 -// CHECK:STDOUT: .Equal = imports.%import_ref.439 -// CHECK:STDOUT: .A = imports.%import_ref.fdd -// CHECK:STDOUT: .NestedRewrite = imports.%import_ref.b00 +// CHECK:STDOUT: .N = imports.%import_ref.e5e +// CHECK:STDOUT: .Equal = imports.%import_ref.b18 +// CHECK:STDOUT: .A = imports.%import_ref.e84 +// CHECK:STDOUT: .NestedRewrite = imports.%import_ref.672 // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .Calls = %Calls.decl // CHECK:STDOUT: } @@ -1118,14 +1118,14 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: interface @N [from "equal_constraint.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.6a8 +// CHECK:STDOUT: .Self = imports.%import_ref.169 // CHECK:STDOUT: .P = imports.%import_ref.d17 // CHECK:STDOUT: witness = (imports.%import_ref.77a) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A [from "nested_rewrites.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%import_ref.b09 +// CHECK:STDOUT: .Self = imports.%import_ref.b61 // CHECK:STDOUT: .B = imports.%import_ref.2a9 // CHECK:STDOUT: .C = imports.%import_ref.508 // CHECK:STDOUT: witness = (imports.%import_ref.75c, imports.%import_ref.aff) @@ -1133,10 +1133,10 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: fn @Calls() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Equal.ref: %Equal.type = name_ref Equal, imports.%import_ref.439 [template = constants.%Equal] +// CHECK:STDOUT: %Equal.ref: %Equal.type = name_ref Equal, imports.%import_ref.b18 [template = constants.%Equal] // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [template = bool] // CHECK:STDOUT: %.loc19: %N_where.type = converted %bool.make_type, [template = ] -// CHECK:STDOUT: %NestedRewrite.ref: %NestedRewrite.type = name_ref NestedRewrite, imports.%import_ref.b00 [template = constants.%NestedRewrite] +// CHECK:STDOUT: %NestedRewrite.ref: %NestedRewrite.type = name_ref NestedRewrite, imports.%import_ref.672 [template = constants.%NestedRewrite] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc32: %A_where.type.791 = converted %i32, [template = ] @@ -1171,7 +1171,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [template] -// CHECK:STDOUT: %Self.fb7: %I.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %assoc_type: type = assoc_entity_type %I.type, type [template] // CHECK:STDOUT: %assoc0.ea2: %assoc_type = assoc_entity element0, @I.%Member [template] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic] @@ -1185,7 +1185,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1222,7 +1222,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.fb7] +// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.826] // CHECK:STDOUT: %Member: type = assoc_const_decl Member [template] // CHECK:STDOUT: %assoc0: %assoc_type = assoc_entity element0, %Member [template = constants.%assoc0.ea2] // CHECK:STDOUT: @@ -1246,7 +1246,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = facet_type <@A> [template] -// CHECK:STDOUT: %Self.2a0: %A.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.31d: %A.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %D: type = class_type @D [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [template] @@ -1256,7 +1256,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1280,7 +1280,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A { -// CHECK:STDOUT: %Self: %A.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.2a0] +// CHECK:STDOUT: %Self: %A.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.31d] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1312,7 +1312,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %E.type: type = facet_type <@E> [template] -// CHECK:STDOUT: %Self.342: %E.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.19a: %E.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %assoc_type: type = assoc_entity_type %E.type, type [template] // CHECK:STDOUT: %assoc0.4b1: %assoc_type = assoc_entity element0, @E.%F [template] // CHECK:STDOUT: %assoc1: %assoc_type = assoc_entity element1, @E.%G [template] @@ -1334,16 +1334,16 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %impl.elem1.244: type = impl_witness_access %.Self.as_wit.bb3, element1 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [template] -// CHECK:STDOUT: %E_where.type.dbc: type = facet_type <@E where %impl.elem1.244 = %i32 and %impl.elem0 = %empty_struct_type> [template] +// CHECK:STDOUT: %E_where.type.bef: type = facet_type <@E where %impl.elem1.244 = %i32 and %impl.elem0 = %empty_struct_type> [template] // CHECK:STDOUT: %E_where.type.503: type = facet_type <@E where %impl.elem0 = %impl.elem1.91f> [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Bool = %import_ref.f7c -// CHECK:STDOUT: .Float = %import_ref.20b -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Bool = %import_ref.783 +// CHECK:STDOUT: .Float = %import_ref.1d6 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -1362,7 +1362,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @E { -// CHECK:STDOUT: %Self: %E.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.342] +// CHECK:STDOUT: %Self: %E.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.19a] // CHECK:STDOUT: %F: type = assoc_const_decl F [template] // CHECK:STDOUT: %assoc0: %assoc_type = assoc_entity element0, %F [template = constants.%assoc0.4b1] // CHECK:STDOUT: %G: type = assoc_const_decl G [template] @@ -1382,8 +1382,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %.loc18: %E_where.type.366 = converted %float.make_type, [template = ] // CHECK:STDOUT: %H: %E_where.type.366 = bind_name H, // CHECK:STDOUT: %bool.make_type.loc27: init type = call constants.%Bool() [template = bool] -// CHECK:STDOUT: %.loc27: %E_where.type.dbc = converted %bool.make_type.loc27, [template = ] -// CHECK:STDOUT: %J: %E_where.type.dbc = bind_name J, +// CHECK:STDOUT: %.loc27: %E_where.type.bef = converted %bool.make_type.loc27, [template = ] +// CHECK:STDOUT: %J: %E_where.type.bef = bind_name J, // CHECK:STDOUT: %bool.make_type.loc35: init type = call constants.%Bool() [template = bool] // CHECK:STDOUT: %.loc35: %E_where.type.503 = converted %bool.make_type.loc35, [template = ] // CHECK:STDOUT: %K: %E_where.type.503 = bind_name K, diff --git a/toolchain/check/testdata/where_expr/fail_not_facet.carbon b/toolchain/check/testdata/where_expr/fail_not_facet.carbon index b93cf0ad369b..5aba4094ff11 100644 --- a/toolchain/check/testdata/where_expr/fail_not_facet.carbon +++ b/toolchain/check/testdata/where_expr/fail_not_facet.carbon @@ -51,8 +51,8 @@ var v: e where .x = 3; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 -// CHECK:STDOUT: .Bool = %import_ref.f7c +// CHECK:STDOUT: .Int = %import_ref.485 +// CHECK:STDOUT: .Bool = %import_ref.783 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/where_expr/non_generic.carbon b/toolchain/check/testdata/where_expr/non_generic.carbon index 2bf7654c78ff..363255b7ff2c 100644 --- a/toolchain/check/testdata/where_expr/non_generic.carbon +++ b/toolchain/check/testdata/where_expr/non_generic.carbon @@ -32,7 +32,7 @@ fn NotGenericF(U: I where .T == i32) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .Int = %import_ref.187 +// CHECK:STDOUT: .Int = %import_ref.485 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/while/fail_bad_condition.carbon b/toolchain/check/testdata/while/fail_bad_condition.carbon index 0f5099291589..f76c9cd5621d 100644 --- a/toolchain/check/testdata/while/fail_bad_condition.carbon +++ b/toolchain/check/testdata/while/fail_bad_condition.carbon @@ -28,7 +28,7 @@ fn While() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [template] { -// CHECK:STDOUT: .ImplicitAs = %import_ref.a69 +// CHECK:STDOUT: .ImplicitAs = %import_ref.d44 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } diff --git a/toolchain/lower/testdata/array/base.carbon b/toolchain/lower/testdata/array/base.carbon index d006746e01bd..39c2ebfe8116 100644 --- a/toolchain/lower/testdata/array/base.carbon +++ b/toolchain/lower/testdata/array/base.carbon @@ -19,7 +19,7 @@ fn Run() { // CHECK:STDOUT: ; ModuleID = 'base.carbon' // CHECK:STDOUT: source_filename = "base.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @array.0e3.loc12_25 = internal constant [1 x i32] [i32 1] +// CHECK:STDOUT: @array.237.loc12_25 = internal constant [1 x i32] [i32 1] // CHECK:STDOUT: @array.6a2.loc13_33 = internal constant [2 x double] [double 0x4026333333333334, double 2.200000e+00] // CHECK:STDOUT: @array.1cb.loc14_41 = internal constant [5 x {}] zeroinitializer // CHECK:STDOUT: @tuple.loc15_37 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } @@ -33,7 +33,7 @@ fn Run() { // CHECK:STDOUT: %e.var = alloca [3 x i32], align 4, !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 4, ptr %a.var), !dbg !7 // CHECK:STDOUT: %.loc12_24.3.array.index = getelementptr inbounds [1 x i32], ptr %a.var, i32 0, i64 0, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @array.0e3.loc12_25, i64 4, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @array.237.loc12_25, i64 4, i1 false), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 16, ptr %b.var), !dbg !7 // CHECK:STDOUT: %.loc13_32.2.array.index = getelementptr inbounds [2 x double], ptr %b.var, i32 0, i64 0, !dbg !10 // CHECK:STDOUT: %.loc13_32.4.array.index = getelementptr inbounds [2 x double], ptr %b.var, i32 0, i64 1, !dbg !10 diff --git a/toolchain/lower/testdata/basics/numeric_literals.carbon b/toolchain/lower/testdata/basics/numeric_literals.carbon index d25f4c42c3b1..37a0165efa32 100644 --- a/toolchain/lower/testdata/basics/numeric_literals.carbon +++ b/toolchain/lower/testdata/basics/numeric_literals.carbon @@ -30,7 +30,7 @@ fn F() { // CHECK:STDOUT: ; ModuleID = 'numeric_literals.carbon' // CHECK:STDOUT: source_filename = "numeric_literals.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @array.e55.loc19_4 = internal constant [4 x i32] [i32 8, i32 9, i32 8, i32 8] +// CHECK:STDOUT: @array.712.loc19_4 = internal constant [4 x i32] [i32 8, i32 9, i32 8, i32 8] // CHECK:STDOUT: @array.a2f.loc27_4 = 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: define void @_CF.Main() !dbg !4 { @@ -42,7 +42,7 @@ fn F() { // CHECK:STDOUT: %.loc19_3.6.array.index = getelementptr inbounds [4 x i32], ptr %ints.var, i32 0, i64 1, !dbg !8 // CHECK:STDOUT: %.loc19_3.9.array.index = getelementptr inbounds [4 x i32], ptr %ints.var, i32 0, i64 2, !dbg !8 // CHECK:STDOUT: %.loc19_3.12.array.index = getelementptr inbounds [4 x i32], ptr %ints.var, i32 0, i64 3, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %ints.var, ptr align 4 @array.e55.loc19_4, i64 16, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %ints.var, ptr align 4 @array.712.loc19_4, i64 16, i1 false), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 48, ptr %floats.var), !dbg !7 // CHECK:STDOUT: %.loc27_3.2.array.index = getelementptr inbounds [6 x double], ptr %floats.var, i32 0, i64 0, !dbg !10 // CHECK:STDOUT: %.loc27_3.4.array.index = getelementptr inbounds [6 x double], ptr %floats.var, i32 0, i64 1, !dbg !10 diff --git a/toolchain/lower/testdata/function/call/struct_param.carbon b/toolchain/lower/testdata/function/call/struct_param.carbon index af4b3d968520..6485efc727ab 100644 --- a/toolchain/lower/testdata/function/call/struct_param.carbon +++ b/toolchain/lower/testdata/function/call/struct_param.carbon @@ -17,7 +17,7 @@ fn Main() { // CHECK:STDOUT: ; ModuleID = 'struct_param.carbon' // CHECK:STDOUT: source_filename = "struct_param.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @struct.eee.loc14_34.6 = internal constant { i32, i32 } { i32 2, i32 3 } +// CHECK:STDOUT: @struct.9ae.loc14_34.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF.Main({ i32 } %b, ptr %c) !dbg !4 { // CHECK:STDOUT: entry: @@ -26,7 +26,7 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CMain.Main() !dbg !8 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @struct.eee.loc14_34.6), !dbg !9 +// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @struct.9ae.loc14_34.6), !dbg !9 // CHECK:STDOUT: ret void, !dbg !10 // 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 47a60e6d4139..13df444e45c4 100644 --- a/toolchain/lower/testdata/function/call/tuple_param.carbon +++ b/toolchain/lower/testdata/function/call/tuple_param.carbon @@ -17,7 +17,7 @@ fn Main() { // CHECK:STDOUT: ; ModuleID = 'tuple_param.carbon' // CHECK:STDOUT: source_filename = "tuple_param.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.44c.loc14_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } +// CHECK:STDOUT: @tuple.11a.loc14_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF.Main({ i32 } %b, ptr %c) !dbg !4 { // CHECK:STDOUT: entry: @@ -26,7 +26,7 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CMain.Main() !dbg !8 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @tuple.44c.loc14_20.6), !dbg !9 +// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @tuple.11a.loc14_20.6), !dbg !9 // CHECK:STDOUT: ret void, !dbg !10 // 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 05ffc4c99ed8..ab3c481c3a23 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 @@ -19,7 +19,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.44c.loc16_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } +// CHECK:STDOUT: @tuple.11a.loc16_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32, i32 }) %return, { i32 } %b, ptr %c) !dbg !4 { // CHECK:STDOUT: entry: @@ -40,7 +40,7 @@ fn Main() { // CHECK:STDOUT: define void @_CMain.Main() !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc16_21.1.temp = alloca { i32, i32, i32 }, align 8, !dbg !13 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_21.1.temp, { i32 } { i32 1 }, ptr @tuple.44c.loc16_20.6), !dbg !13 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_21.1.temp, { i32 } { i32 1 }, ptr @tuple.11a.loc16_20.6), !dbg !13 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call.carbon b/toolchain/lower/testdata/function/generic/call.carbon index 452402fb8adb..41daffda9f11 100644 --- a/toolchain/lower/testdata/function/generic/call.carbon +++ b/toolchain/lower/testdata/function/generic/call.carbon @@ -47,7 +47,7 @@ fn G() { // CHECK:STDOUT: call void @_CF.Main.15b1f98bd9cc0c5b(ptr %c.var), !dbg !11 // CHECK:STDOUT: call void @_CF.Main.2cc450fc05045897(ptr %d.var), !dbg !12 // CHECK:STDOUT: %.loc24 = load i32, ptr %n.var, align 4, !dbg !13 -// CHECK:STDOUT: call void @_CF.Main.9b813875c98e31f1(i32 %.loc24), !dbg !14 +// CHECK:STDOUT: call void @_CF.Main.b88d1103f417c6d4(i32 %.loc24), !dbg !14 // CHECK:STDOUT: call void @_CF.Main.5754c7a55c7cbe4a(%type zeroinitializer), !dbg !15 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -62,7 +62,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.Main.2cc450fc05045897(ptr) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @_CF.Main.9b813875c98e31f1(i32) +// CHECK:STDOUT: declare void @_CF.Main.b88d1103f417c6d4(i32) // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.Main.5754c7a55c7cbe4a(%type) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_method.carbon b/toolchain/lower/testdata/function/generic/call_method.carbon index aeb8b2180e13..bfa7c92d59f0 100644 --- a/toolchain/lower/testdata/function/generic/call_method.carbon +++ b/toolchain/lower/testdata/function/generic/call_method.carbon @@ -34,7 +34,7 @@ fn CallF() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 4, ptr %n.var), !dbg !7 // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !9 // CHECK:STDOUT: %.loc20_14 = load i32, ptr %n.var, align 4, !dbg !10 -// CHECK:STDOUT: %F.call = call i32 @_CF.C.Main.9b813875c98e31f1(ptr %c.var, i32 %.loc20_14), !dbg !11 +// CHECK:STDOUT: %F.call = call i32 @_CF.C.Main.b88d1103f417c6d4(ptr %c.var, i32 %.loc20_14), !dbg !11 // CHECK:STDOUT: ret i32 %F.call, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -44,7 +44,7 @@ fn CallF() -> i32 { // CHECK:STDOUT: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1 // CHECK:STDOUT: -// CHECK:STDOUT: declare i32 @_CF.C.Main.9b813875c98e31f1(ptr, i32) +// CHECK:STDOUT: declare i32 @_CF.C.Main.b88d1103f417c6d4(ptr, i32) // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } diff --git a/toolchain/lower/testdata/let/tuple.carbon b/toolchain/lower/testdata/let/tuple.carbon index 12e390360012..2e43ed668668 100644 --- a/toolchain/lower/testdata/let/tuple.carbon +++ b/toolchain/lower/testdata/let/tuple.carbon @@ -18,8 +18,8 @@ fn F() -> i32 { // CHECK:STDOUT: ; ModuleID = 'tuple.carbon' // CHECK:STDOUT: source_filename = "tuple.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.3ea.loc12_37 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } -// CHECK:STDOUT: @tuple.654.loc13_29 = internal constant { i32, i32 } { i32 4, i32 5 } +// CHECK:STDOUT: @tuple.ee6.loc12_37 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } +// CHECK:STDOUT: @tuple.0a0.loc13_29 = internal constant { i32, i32 } { i32 4, i32 5 } // CHECK:STDOUT: // CHECK:STDOUT: define i32 @_CF.Main() !dbg !4 { // CHECK:STDOUT: entry: @@ -29,11 +29,11 @@ fn F() -> i32 { // CHECK:STDOUT: %tuple.elem0.loc12.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !8 // CHECK:STDOUT: %tuple.elem1.loc12.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !8 // CHECK:STDOUT: %tuple.elem2.loc12.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.3ea.loc12_37, i64 12, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.ee6.loc12_37, i64 12, i1 false), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %b.var), !dbg !7 // CHECK:STDOUT: %tuple.elem0.loc13.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !10 // CHECK:STDOUT: %tuple.elem1.loc13.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.654.loc13_29, i64 8, i1 false), !dbg !11 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.0a0.loc13_29, i64 8, i1 false), !dbg !11 // CHECK:STDOUT: %tuple.elem0.loc14_43.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !12 // CHECK:STDOUT: %.loc14_43.1 = load i32, ptr %tuple.elem0.loc14_43.tuple.elem, align 4, !dbg !12 // CHECK:STDOUT: %tuple.elem1.loc14_43.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !12 diff --git a/toolchain/sem_ir/id_kind.h b/toolchain/sem_ir/id_kind.h index 9a87eb7e721d..ef314b27b0e9 100644 --- a/toolchain/sem_ir/id_kind.h +++ b/toolchain/sem_ir/id_kind.h @@ -143,8 +143,9 @@ using IdKind = TypeEnum< CompileTimeBindIndex, RuntimeParamIndex, FacetTypeId, FunctionId, ClassId, InterfaceId, ImplId, GenericId, SpecificId, ImportIRId, ImportIRInstId, LocId, BoolValue, IntKind, NameId, NameScopeId, InstBlockId, - AbsoluteInstBlockId, ExprRegionId, StructTypeFieldsId, TypeId, TypeBlockId, - ElementIndex, LibraryNameId, FloatKind>; + AbsoluteInstBlockId, DeclInstBlockId, LabelId, ExprRegionId, + StructTypeFieldsId, TypeId, TypeBlockId, ElementIndex, LibraryNameId, + FloatKind>; } // namespace Carbon::SemIR diff --git a/toolchain/sem_ir/ids.h b/toolchain/sem_ir/ids.h index 02362160f2d4..d9c01d20522b 100644 --- a/toolchain/sem_ir/ids.h +++ b/toolchain/sem_ir/ids.h @@ -559,6 +559,36 @@ class AbsoluteInstBlockId : public InstBlockId { using InstBlockId::InstBlockId; }; +// An ID of an instruction block that is used as the declaration block within a +// declaration instruction. This is a block that is nested within the +// instruction, but doesn't contribute to its value. Such blocks are not +// included in the fingerprint of the declaration. This should only be used as +// the type of a field within a typed instruction class. +class DeclInstBlockId : public InstBlockId { + public: + // Support implicit conversion from InstBlockId so that InstBlockId and + // DeclInstBlockId have the same interface. + // NOLINTNEXTLINE(google-explicit-constructor) + constexpr DeclInstBlockId(InstBlockId inst_block_id) + : InstBlockId(inst_block_id) {} + + using InstBlockId::InstBlockId; +}; + +// An ID of an instruction block that is used as a label in a branch instruction +// or similar. This is a block that is not nested within the instruction, but +// instead exists elsewhere in the enclosing executable region. This should +// only be used as the type of a field within a typed instruction class. +class LabelId : public InstBlockId { + public: + // Support implicit conversion from InstBlockId so that InstBlockId and + // LabelId have the same interface. + // NOLINTNEXTLINE(google-explicit-constructor) + constexpr LabelId(InstBlockId inst_block_id) : InstBlockId(inst_block_id) {} + + using InstBlockId::InstBlockId; +}; + // TODO: Move this out of sem_ir and into check, if we don't wind up using it // in the SemIR for expression patterns. struct ExprRegionId : public IdBase { diff --git a/toolchain/sem_ir/inst_fingerprinter.cpp b/toolchain/sem_ir/inst_fingerprinter.cpp index e57ff41f0a9c..0319a83d73a3 100644 --- a/toolchain/sem_ir/inst_fingerprinter.cpp +++ b/toolchain/sem_ir/inst_fingerprinter.cpp @@ -40,7 +40,7 @@ struct Worklist { auto AddInvalid() -> void { contents.push_back(-1); } // Add a string to the contents. - auto AddString(llvm::StringRef string) { + auto AddString(llvm::StringRef string) -> void { contents.push_back(llvm::stable_hash_name(string)); } @@ -71,8 +71,16 @@ struct Worklist { AddInvalid(); return; } - Add(sem_ir->entity_names().Get(entity_name_id).name_id); - // TODO: Should we include the other parts of the entity name? + const auto& entity_name = sem_ir->entity_names().Get(entity_name_id); + if (entity_name.bind_index.is_valid()) { + Add(entity_name.bind_index); + // Don't include the name. While it is part of the canonical identity of a + // compile-time binding, renaming it (and its uses) is a compatible change + // that we would like to not affect the fingerprint. + } else { + Add(entity_name.name_id); + } + // TODO: Should we include the parent index? } auto AddInFile(const File* file, InstId inner_id) -> void { @@ -176,11 +184,20 @@ struct Worklist { auto Add(ImplId impl_id) -> void { const auto& impl = sem_ir->impls().Get(impl_id); - Add(impl.self_id); - Add(impl.constraint_id); + Add(sem_ir->constant_values().Get(impl.self_id)); + Add(sem_ir->constant_values().Get(impl.constraint_id)); Add(impl.parent_scope_id); } + auto Add(DeclInstBlockId /*block_id*/) -> void { + // Intentionally exclude decl blocks from fingerprinting. Changes to the + // decl block don't change the identity of the declaration. + } + + auto Add(LabelId /*block_id*/) -> void { + CARBON_FATAL("Should never fingerprint a label"); + } + auto Add(FacetTypeId facet_type_id) -> void { const auto& facet_type = sem_ir->facet_types().Get(facet_type_id); for (auto [interface_id, specific_id] : facet_type.impls_constraints) { @@ -254,7 +271,7 @@ struct Worklist { std::same_as || std::same_as || std::same_as || std::same_as || std::same_as) - auto Add(T arg) { + auto Add(T arg) -> void { // Index-like ID: just include the value directly. contents.push_back(arg.index); } @@ -262,7 +279,7 @@ struct Worklist { template requires(std::same_as || std::same_as || std::same_as || std::same_as) - auto Add(T /*arg*/) { + auto Add(T /*arg*/) -> void { CARBON_FATAL("Unexpected instruction operand kind {0}", typeid(T).name()); } diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index 0d6f67c66dcc..3164efafb5b2 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -371,7 +371,7 @@ struct BlockArg { InstKind::BlockArg.Define({.ir_name = "block_arg"}); TypeId type_id; - InstBlockId block_id; + LabelId block_id; }; // A literal bool value, `true` or `false`. @@ -422,7 +422,7 @@ struct AnyBranch { InstKind kind; // Branches don't produce a value, so have no type. - InstBlockId target_id; + LabelId target_id; // Kind-specific data. AnyRawId arg1; }; @@ -434,7 +434,7 @@ struct Branch { {.ir_name = "br", .terminator_kind = TerminatorKind::Terminator}); // Branches don't produce a value, so have no type. - InstBlockId target_id; + LabelId target_id; }; // Control flow to branch to the target block if `cond_id` is true. @@ -444,7 +444,7 @@ struct BranchIf { {.ir_name = "br", .terminator_kind = TerminatorKind::TerminatorSequence}); // Branches don't produce a value, so have no type. - InstBlockId target_id; + LabelId target_id; InstId cond_id; }; @@ -456,7 +456,7 @@ struct BranchWithArg { {.ir_name = "br", .terminator_kind = TerminatorKind::Terminator}); // Branches don't produce a value, so have no type. - InstBlockId target_id; + LabelId target_id; InstId arg_id; }; @@ -488,7 +488,7 @@ struct ClassDecl { ClassId class_id; // The declaration block, containing the class name's qualifiers and the // class's generic parameters. - InstBlockId decl_block_id; + DeclInstBlockId decl_block_id; }; // Access to a member of a class, such as `base.index`. This provides a @@ -730,7 +730,7 @@ struct FunctionDecl { FunctionId function_id; // The declaration block, containing the function declaration's parameters and // their types. - InstBlockId decl_block_id; + DeclInstBlockId decl_block_id; }; // The type of a function. @@ -787,7 +787,7 @@ struct ImplDecl { ImplId impl_id; // The declaration block, containing the impl's deduced parameters and its // self type and interface type. - InstBlockId decl_block_id; + DeclInstBlockId decl_block_id; }; // A witness that a type implements an interface. @@ -887,7 +887,7 @@ struct InterfaceDecl { InterfaceId interface_id; // The declaration block, containing the interface name's qualifiers and the // interface's generic parameters. - InstBlockId decl_block_id; + DeclInstBlockId decl_block_id; }; // A literal integer value.