From db21c3855090455c4bc208bc43400197a0cce6d8 Mon Sep 17 00:00:00 2001 From: Jon Ross-Perkins Date: Fri, 14 Mar 2025 08:27:24 -0700 Subject: [PATCH] Use the NameComponent's name_id when making an entity base (#5125) This changes the SemIR of invalid redeclarations, because previously they lacked a name. We've avoided this in diagnostics so it doesn't otherwise come up, but I plan to use it for more easily validating redeclarations. --- toolchain/check/decl_name_stack.h | 2 +- .../class/fail_base_method_define.carbon | 16 +- .../testdata/class/fail_extend_cycle.carbon | 30 +- .../testdata/class/fail_generic_method.carbon | 44 +-- .../testdata/class/fail_import_misuses.carbon | 14 +- .../testdata/class/fail_incomplete.carbon | 8 +- .../testdata/class/fail_member_of_let.carbon | 16 +- .../class/fail_method_redefinition.carbon | 18 +- .../class/fail_redeclaration_scope.carbon | 8 +- .../testdata/class/fail_redefinition.carbon | 64 ++--- .../testdata/class/generic/import.carbon | 26 +- .../class/generic/member_out_of_line.carbon | 88 +++--- .../testdata/class/generic/redeclare.carbon | 130 ++++----- .../testdata/class/no_prelude/extern.carbon | 8 +- .../class/no_prelude/implicit_import.carbon | 22 +- .../class/no_prelude/syntactic_merge.carbon | 146 +++++----- .../class/syntactic_merge_literal.carbon | 26 +- .../function/builtin/fail_redefined.carbon | 54 ++-- .../declaration/no_prelude/fail_redecl.carbon | 36 +-- .../function/definition/import.carbon | 16 +- .../fail_decl_param_mismatch.carbon | 108 +++---- .../definition/no_prelude/fail_redef.carbon | 18 +- .../no_prelude/implicit_import.carbon | 24 +- .../no_prelude/syntactic_merge.carbon | 94 +++--- .../function/generic/redeclare.carbon | 150 +++++----- toolchain/check/testdata/generic/local.carbon | 24 +- ..._todo_define_default_fn_out_of_line.carbon | 40 +-- .../fail_add_member_outside_definition.carbon | 32 +-- .../fail_definition_imported.carbon | 16 +- .../no_prelude/fail_duplicate.carbon | 106 +++---- .../fail_generic_redeclaration.carbon | 86 +++--- .../no_prelude/fail_lookup_undefined.carbon | 18 +- .../no_prelude/fail_redeclare_member.carbon | 26 +- .../fail_todo_generic_default_fn.carbon | 88 +++--- .../no_prelude/syntactic_merge.carbon | 272 +++++++++--------- .../fail_conflict_after_merge.carbon | 16 +- ...l_conflict_imported_namespace_first.carbon | 8 +- ..._conflict_imported_namespace_second.carbon | 8 +- .../namespace/fail_decl_in_alias.carbon | 8 +- .../testdata/namespace/fail_duplicate.carbon | 18 +- .../testdata/namespace/fail_params.carbon | 20 +- .../namespace/fail_unresolved_scope.carbon | 8 +- .../no_prelude/cross_package_import.carbon | 10 +- 43 files changed, 985 insertions(+), 985 deletions(-) diff --git a/toolchain/check/decl_name_stack.h b/toolchain/check/decl_name_stack.h index 5117889ed45c..f1a09ffac19a 100644 --- a/toolchain/check/decl_name_stack.h +++ b/toolchain/check/decl_name_stack.h @@ -98,7 +98,7 @@ class DeclNameStack { SemIR::LibraryNameId extern_library) const -> SemIR::EntityWithParamsBase { return { - .name_id = name_id_for_new_inst(), + .name_id = name.name_id, .parent_scope_id = parent_scope_id, .generic_id = SemIR::GenericId::None, .first_param_node_id = name.first_param_node_id, diff --git a/toolchain/check/testdata/class/fail_base_method_define.carbon b/toolchain/check/testdata/class/fail_base_method_define.carbon index 4835874a127b..848e92051c42 100644 --- a/toolchain/check/testdata/class/fail_base_method_define.carbon +++ b/toolchain/check/testdata/class/fail_base_method_define.carbon @@ -47,10 +47,10 @@ fn D.C.F() {} // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %B [concrete] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %B} [concrete] // CHECK:STDOUT: %complete_type.98e: = complete_type_witness %struct_type.base [concrete] -// CHECK:STDOUT: %F.type.319: type = fn_type @F.3 [concrete] -// CHECK:STDOUT: %F.34b: %F.type.319 = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.0e9: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.31906b.1: type = fn_type @F.3 [concrete] +// CHECK:STDOUT: %F.34b733.1: %F.type.31906b.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.31906b.2: type = fn_type @F.4 [concrete] +// CHECK:STDOUT: %F.34b733.2: %F.type.31906b.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -69,8 +69,8 @@ fn D.C.F() {} // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} -// CHECK:STDOUT: %F.decl: %F.type.319 = fn_decl @F.3 [concrete = constants.%F.34b] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.0e9] {} {} +// CHECK:STDOUT: %F.decl.loc27: %F.type.31906b.1 = fn_decl @F.3 [concrete = constants.%F.34b733.1] {} {} +// CHECK:STDOUT: %F.decl.loc33: %F.type.31906b.2 = fn_decl @F.4 [concrete = constants.%F.34b733.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -105,7 +105,7 @@ fn D.C.F() {} // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: .B = // CHECK:STDOUT: .base = %.loc20 -// CHECK:STDOUT: .F = file.%F.decl +// CHECK:STDOUT: .F = file.%F.decl.loc27 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: } // CHECK:STDOUT: @@ -118,7 +118,7 @@ fn D.C.F() {} // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @F.4() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_extend_cycle.carbon b/toolchain/check/testdata/class/fail_extend_cycle.carbon index db0815c0d3e7..4dd56115914a 100644 --- a/toolchain/check/testdata/class/fail_extend_cycle.carbon +++ b/toolchain/check/testdata/class/fail_extend_cycle.carbon @@ -35,15 +35,15 @@ base class A { // CHECK:STDOUT: --- fail_extend_cycle.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A: type = class_type @A [concrete] +// CHECK:STDOUT: %A.466950.1: type = class_type @A.1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [concrete] -// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %A} [concrete] +// CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A.466950.1 [concrete] +// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %A.466950.1} [concrete] // CHECK:STDOUT: %complete_type.020: = complete_type_witness %struct_type.base [concrete] -// CHECK:STDOUT: %.a95: type = class_type @.1 [concrete] -// CHECK:STDOUT: %.elem: type = unbound_element_type %.a95, %A [concrete] +// CHECK:STDOUT: %A.466950.2: type = class_type @A.2 [concrete] +// CHECK:STDOUT: %A.elem: type = unbound_element_type %A.466950.2, %A.466950.1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -56,27 +56,27 @@ base class A { // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .A = %A.decl +// CHECK:STDOUT: .A = %A.decl.loc11 // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: .C = // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} +// CHECK:STDOUT: %A.decl.loc11: type = class_decl @A.1 [concrete = constants.%A.466950.1] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} -// CHECK:STDOUT: %.decl: type = class_decl @.1 [concrete = constants.%.a95] {} {} +// CHECK:STDOUT: %A.decl.loc26: type = class_decl @A.2 [concrete = constants.%A.466950.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @A { +// CHECK:STDOUT: class @A.1 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%A +// CHECK:STDOUT: .Self = constants.%A.466950.1 // CHECK:STDOUT: .C = // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { -// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] +// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl.loc11 [concrete = constants.%A.466950.1] // CHECK:STDOUT: %.loc16: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [concrete = constants.%complete_type.020] // CHECK:STDOUT: complete_type_witness = %complete_type @@ -88,9 +88,9 @@ base class A { // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @.1 { -// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %.loc27: %.elem = base_decl %A.ref, element0 [concrete] +// CHECK:STDOUT: class @A.2 { +// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl.loc11 [concrete = constants.%A.466950.1] +// CHECK:STDOUT: %.loc27: %A.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %.loc32_8: = field_decl c, element1 [concrete] // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %.loc32_3: = var_pattern %.loc32_8 @@ -100,7 +100,7 @@ base class A { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.a95 +// CHECK:STDOUT: .Self = constants.%A.466950.2 // CHECK:STDOUT: .A = // CHECK:STDOUT: .base = %.loc27 // CHECK:STDOUT: .C = diff --git a/toolchain/check/testdata/class/fail_generic_method.carbon b/toolchain/check/testdata/class/fail_generic_method.carbon index 970114d5352d..ae4af96adab0 100644 --- a/toolchain/check/testdata/class/fail_generic_method.carbon +++ b/toolchain/check/testdata/class/fail_generic_method.carbon @@ -42,16 +42,16 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%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: %F.type.6d6: type = fn_type @F.1, @Class(%T) [symbolic] +// CHECK:STDOUT: %F.cca: %F.type.6d6 = struct_value () [symbolic] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T} [symbolic] // CHECK:STDOUT: %complete_type.f1b: = complete_type_witness %struct_type.a [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] // CHECK:STDOUT: %N.patt.8e2: %i32 = symbolic_binding_pattern N, 0 [symbolic] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -74,7 +74,7 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.2 [concrete = constants.%F.c41] { // CHECK:STDOUT: %self.patt: = binding_pattern self // CHECK:STDOUT: %self.param_patt: = value_param_pattern %self.patt, call_param0 [concrete = ] // CHECK:STDOUT: %n.patt: = binding_pattern n @@ -102,8 +102,8 @@ fn Class(N:! i32).F[self: Self](n: T) {} // 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: %F.type: type = fn_type @F.1, @Class(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type.6d6)] +// CHECK:STDOUT: %F: @Class.%F.type (%F.type.6d6) = struct_value () [symbolic = %F (constants.%F.cca)] // 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.f1b)] // CHECK:STDOUT: @@ -113,21 +113,21 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %.loc12_3: @Class.%Class.elem (%Class.elem) = var_pattern %.loc12_8 // CHECK:STDOUT: } // CHECK:STDOUT: %.var: ref @Class.%Class.elem (%Class.elem) = var -// CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] { -// CHECK:STDOUT: %self.patt: @F.%Class (%Class) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @F.%Class (%Class) = value_param_pattern %self.patt, call_param0 -// CHECK:STDOUT: %n.patt: @F.%T (%T) = binding_pattern n -// CHECK:STDOUT: %n.param_patt: @F.%T (%T) = value_param_pattern %n.patt, call_param1 +// CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type.6d6) = fn_decl @F.1 [symbolic = @Class.%F (constants.%F.cca)] { +// CHECK:STDOUT: %self.patt: @F.1.%Class (%Class) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @F.1.%Class (%Class) = value_param_pattern %self.patt, call_param0 +// CHECK:STDOUT: %n.patt: @F.1.%T (%T) = binding_pattern n +// CHECK:STDOUT: %n.param_patt: @F.1.%T (%T) = value_param_pattern %n.patt, call_param1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Class (%Class) = value_param call_param0 +// CHECK:STDOUT: %self.param: @F.1.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc13_14.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc13_14.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc13_14.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Class (%Class) = bind_name self, %self.param -// CHECK:STDOUT: %n.param: @F.%T (%T) = value_param call_param1 +// CHECK:STDOUT: %self: @F.1.%Class (%Class) = bind_name self, %self.param +// CHECK:STDOUT: %n.param: @F.1.%T (%T) = value_param call_param1 // 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: %n: @F.1.%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.f1b)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc14_1.1 @@ -140,14 +140,14 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc11_13.1: type) { +// CHECK:STDOUT: generic fn @F.1(@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: -// CHECK:STDOUT: fn[%self.param_patt: @F.%Class (%Class)](%n.param_patt: @F.%T (%T)); +// CHECK:STDOUT: fn[%self.param_patt: @F.1.%Class (%Class)](%n.param_patt: @F.1.%T (%T)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%N.loc33_10.1: %i32) { +// CHECK:STDOUT: generic fn @F.2(%N.loc33_10.1: %i32) { // CHECK:STDOUT: %N.loc33_10.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc33_10.2 (constants.%N.51e)] // CHECK:STDOUT: %N.patt: %i32 = symbolic_binding_pattern N, 0 [symbolic = %N.patt (constants.%N.patt.8e2)] // CHECK:STDOUT: @@ -164,16 +164,16 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %T.patt.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T) { +// CHECK:STDOUT: specific @F.1(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@F.%T) {} +// CHECK:STDOUT: specific @Class(@F.1.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(%T.loc11_13.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%N.51e) { +// CHECK:STDOUT: specific @F.2(constants.%N.51e) { // CHECK:STDOUT: %N.loc33_10.2 => constants.%N.51e // CHECK:STDOUT: %N.patt => constants.%N.51e // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_import_misuses.carbon b/toolchain/check/testdata/class/fail_import_misuses.carbon index bf1d628261b6..96190d95feaa 100644 --- a/toolchain/check/testdata/class/fail_import_misuses.carbon +++ b/toolchain/check/testdata/class/fail_import_misuses.carbon @@ -84,15 +84,15 @@ var a: Incomplete; // CHECK:STDOUT: --- fail_b.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Empty: type = class_type @Empty [concrete] +// CHECK:STDOUT: %Empty.f48899.1: type = class_type @Empty.1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.a95: type = class_type @.1 [concrete] +// CHECK:STDOUT: %Empty.f48899.2: type = class_type @Empty.2 [concrete] // CHECK:STDOUT: %Incomplete: type = class_type @Incomplete [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.Empty: type = import_ref Main//a, Empty, loaded [concrete = constants.%Empty] +// CHECK:STDOUT: %Main.Empty: type = import_ref Main//a, Empty, loaded [concrete = constants.%Empty.f48899.1] // CHECK:STDOUT: %Main.Incomplete: type = import_ref Main//a, Incomplete, loaded [concrete = constants.%Incomplete] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: import Core//prelude @@ -111,7 +111,7 @@ var a: Incomplete; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %.decl: type = class_decl @.1 [concrete = constants.%.a95] {} {} +// CHECK:STDOUT: %Empty.decl: type = class_decl @Empty.2 [concrete = constants.%Empty.f48899.2] {} {} // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: = binding_pattern a // CHECK:STDOUT: %.loc25: = var_pattern %a.patt @@ -121,19 +121,19 @@ var a: Incomplete; // CHECK:STDOUT: %a: = bind_name a, // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @Empty [from "a.carbon"] { +// CHECK:STDOUT: class @Empty.1 [from "a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.fd7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @.1 { +// CHECK:STDOUT: class @Empty.2 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.a95 +// CHECK:STDOUT: .Self = constants.%Empty.f48899.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Incomplete [from "a.carbon"]; diff --git a/toolchain/check/testdata/class/fail_incomplete.carbon b/toolchain/check/testdata/class/fail_incomplete.carbon index 232b23e8fbf0..e43adacec602 100644 --- a/toolchain/check/testdata/class/fail_incomplete.carbon +++ b/toolchain/check/testdata/class/fail_incomplete.carbon @@ -178,9 +178,9 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] +// CHECK:STDOUT: %Function.type: type = fn_type @Function [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Function: %Function.type = struct_value () [concrete] // CHECK:STDOUT: %CallClassFunction.type: type = fn_type @CallClassFunction [concrete] // CHECK:STDOUT: %CallClassFunction: %CallClassFunction.type = struct_value () [concrete] // CHECK:STDOUT: %ConvertFromStruct.type: type = fn_type @ConvertFromStruct [concrete] @@ -241,7 +241,7 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [concrete = constants.%Function] {} {} // CHECK:STDOUT: %CallClassFunction.decl: %CallClassFunction.type = fn_decl @CallClassFunction [concrete = constants.%CallClassFunction] {} {} // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %global_var.patt: = binding_pattern global_var @@ -385,7 +385,7 @@ class C { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @Function() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_member_of_let.carbon b/toolchain/check/testdata/class/fail_member_of_let.carbon index dfe29d7a61ba..37a4994e612f 100644 --- a/toolchain/check/testdata/class/fail_member_of_let.carbon +++ b/toolchain/check/testdata/class/fail_member_of_let.carbon @@ -32,12 +32,12 @@ fn T.F() {} // CHECK:STDOUT: %Class: type = class_type @Class [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.f1b: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.1f2: %F.type.f1b = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -60,11 +60,11 @@ fn T.F() {} // CHECK:STDOUT: %T.patt: type = binding_pattern T // CHECK:STDOUT: } // CHECK:STDOUT: %T: type = bind_name T, @__global_init.%Class.ref -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.2 [concrete = constants.%F.c41] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { +// CHECK:STDOUT: %F.decl: %F.type.f1b = fn_decl @F.1 [concrete = constants.%F.1f2] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -81,9 +81,9 @@ fn T.F() {} // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> %i32; +// CHECK:STDOUT: fn @F.1() -> %i32; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @F.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_method_redefinition.carbon b/toolchain/check/testdata/class/fail_method_redefinition.carbon index cb9bc44a185d..27130ac209a1 100644 --- a/toolchain/check/testdata/class/fail_method_redefinition.carbon +++ b/toolchain/check/testdata/class/fail_method_redefinition.carbon @@ -24,10 +24,10 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d22: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.f1baa3.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.1f2582.1: %F.type.f1baa3.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.f1baa3.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.1f2582.2: %F.type.f1baa3.2 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -49,22 +49,22 @@ class Class { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d22] {} {} +// CHECK:STDOUT: %F.decl.loc12: %F.type.f1baa3.1 = fn_decl @F.1 [concrete = constants.%F.1f2582.1] {} {} +// CHECK:STDOUT: %F.decl.loc20: %F.type.f1baa3.2 = fn_decl @F.2 [concrete = constants.%F.1f2582.2] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class -// CHECK:STDOUT: .F = %F.decl +// CHECK:STDOUT: .F = %F.decl.loc12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() { +// CHECK:STDOUT: fn @F.1() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @F.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_redeclaration_scope.carbon b/toolchain/check/testdata/class/fail_redeclaration_scope.carbon index 1f3e482376f0..fe6a87302605 100644 --- a/toolchain/check/testdata/class/fail_redeclaration_scope.carbon +++ b/toolchain/check/testdata/class/fail_redeclaration_scope.carbon @@ -37,7 +37,7 @@ class Y { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %B.29a: type = class_type @B.2 [concrete] // CHECK:STDOUT: %Y: type = class_type @Y [concrete] -// CHECK:STDOUT: %.65d: type = class_type @.1 [concrete] +// CHECK:STDOUT: %B.768: type = class_type @B.3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -103,7 +103,7 @@ class Y { // CHECK:STDOUT: class @B.2; // CHECK:STDOUT: // CHECK:STDOUT: class @Y { -// CHECK:STDOUT: %.decl: type = class_decl @.1 [concrete = constants.%.65d] {} {} +// CHECK:STDOUT: %B.decl: type = class_decl @B.3 [concrete = constants.%B.768] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -111,11 +111,11 @@ class Y { // CHECK:STDOUT: .Self = constants.%Y // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @.1 { +// CHECK:STDOUT: class @B.3 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.65d +// CHECK:STDOUT: .Self = constants.%B.768 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_redefinition.carbon b/toolchain/check/testdata/class/fail_redefinition.carbon index 292e7127a61b..576a06e23073 100644 --- a/toolchain/check/testdata/class/fail_redefinition.carbon +++ b/toolchain/check/testdata/class/fail_redefinition.carbon @@ -46,26 +46,26 @@ fn Class.I() {} // CHECK:STDOUT: --- fail_redefinition.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Class: type = class_type @Class [concrete] +// CHECK:STDOUT: %Class.301e72.1: type = class_type @Class.1 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %H.type.91d: type = fn_type @H.1 [concrete] -// CHECK:STDOUT: %H.d38: %H.type.91d = struct_value () [concrete] -// CHECK:STDOUT: %I.type.2b6: type = fn_type @I.1 [concrete] -// CHECK:STDOUT: %I.c9a: %I.type.2b6 = struct_value () [concrete] +// CHECK:STDOUT: %H.type.91d18a.1: type = fn_type @H.1 [concrete] +// CHECK:STDOUT: %H.d38c33.1: %H.type.91d18a.1 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.2b6c8d.1: type = fn_type @I.1 [concrete] +// CHECK:STDOUT: %I.c9aec9.1: %I.type.2b6c8d.1 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.a95: type = class_type @.2 [concrete] -// CHECK:STDOUT: %G.type.bf6: type = fn_type @G.1 [concrete] -// CHECK:STDOUT: %G.e39: %G.type.bf6 = struct_value () [concrete] -// CHECK:STDOUT: %H.type.e2f: type = fn_type @H.2 [concrete] -// CHECK:STDOUT: %H.382: %H.type.e2f = struct_value () [concrete] -// CHECK:STDOUT: %I.type.b27: type = fn_type @I.2 [concrete] -// CHECK:STDOUT: %I.a7f: %I.type.b27 = struct_value () [concrete] -// CHECK:STDOUT: %G.type.621: type = fn_type @G.2 [concrete] -// CHECK:STDOUT: %G.f0c: %G.type.621 = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d22: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Class.301e72.2: type = class_type @Class.2 [concrete] +// CHECK:STDOUT: %G.type.621c12.1: type = fn_type @G.1 [concrete] +// CHECK:STDOUT: %G.f0cac0.1: %G.type.621c12.1 = struct_value () [concrete] +// CHECK:STDOUT: %H.type.91d18a.2: type = fn_type @H.2 [concrete] +// CHECK:STDOUT: %H.d38c33.2: %H.type.91d18a.2 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.2b6c8d.2: type = fn_type @I.2 [concrete] +// CHECK:STDOUT: %I.c9aec9.2: %I.type.2b6c8d.2 = struct_value () [concrete] +// CHECK:STDOUT: %G.type.621c12.2: type = fn_type @G.2 [concrete] +// CHECK:STDOUT: %G.f0cac0.2: %G.type.621c12.2 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.2b6c8d.3: type = fn_type @I.3 [concrete] +// CHECK:STDOUT: %I.c9aec9.3: %I.type.2b6c8d.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -78,41 +78,41 @@ fn Class.I() {} // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .Class = %Class.decl +// CHECK:STDOUT: .Class = %Class.decl.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} -// CHECK:STDOUT: %.decl.loc24: type = class_decl @.2 [concrete = constants.%.a95] {} {} +// CHECK:STDOUT: %Class.decl.loc11: type = class_decl @Class.1 [concrete = constants.%Class.301e72.1] {} {} +// CHECK:STDOUT: %Class.decl.loc24: type = class_decl @Class.2 [concrete = constants.%Class.301e72.2] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: %G.decl: %G.type.621 = fn_decl @G.2 [concrete = constants.%G.f0c] {} {} -// CHECK:STDOUT: %H.decl: %H.type.91d = fn_decl @H.1 [concrete = constants.%H.d38] {} {} -// CHECK:STDOUT: %.decl.loc44: %.type = fn_decl @.1 [concrete = constants.%.d22] {} {} +// CHECK:STDOUT: %G.decl: %G.type.621c12.2 = fn_decl @G.2 [concrete = constants.%G.f0cac0.2] {} {} +// CHECK:STDOUT: %H.decl: %H.type.91d18a.1 = fn_decl @H.1 [concrete = constants.%H.d38c33.1] {} {} +// CHECK:STDOUT: %I.decl: %I.type.2b6c8d.3 = fn_decl @I.3 [concrete = constants.%I.c9aec9.3] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @Class { +// CHECK:STDOUT: class @Class.1 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: %H.decl: %H.type.91d = fn_decl @H.1 [concrete = constants.%H.d38] {} {} -// CHECK:STDOUT: %I.decl: %I.type.2b6 = fn_decl @I.1 [concrete = constants.%I.c9a] {} {} +// CHECK:STDOUT: %H.decl: %H.type.91d18a.1 = fn_decl @H.1 [concrete = constants.%H.d38c33.1] {} {} +// CHECK:STDOUT: %I.decl: %I.type.2b6c8d.1 = fn_decl @I.1 [concrete = constants.%I.c9aec9.1] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class +// CHECK:STDOUT: .Self = constants.%Class.301e72.1 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: .G = file.%G.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @.2 { -// CHECK:STDOUT: %G.decl: %G.type.bf6 = fn_decl @G.1 [concrete = constants.%G.e39] {} {} -// CHECK:STDOUT: %H.decl: %H.type.e2f = fn_decl @H.2 [concrete = constants.%H.382] {} {} -// CHECK:STDOUT: %I.decl: %I.type.b27 = fn_decl @I.2 [concrete = constants.%I.a7f] {} {} +// CHECK:STDOUT: class @Class.2 { +// CHECK:STDOUT: %G.decl: %G.type.621c12.1 = fn_decl @G.1 [concrete = constants.%G.f0cac0.1] {} {} +// CHECK:STDOUT: %H.decl: %H.type.91d18a.2 = fn_decl @H.2 [concrete = constants.%H.d38c33.2] {} {} +// CHECK:STDOUT: %I.decl: %I.type.2b6c8d.2 = fn_decl @I.2 [concrete = constants.%I.c9aec9.2] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.a95 +// CHECK:STDOUT: .Self = constants.%Class.301e72.2 // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: .I = %I.decl @@ -147,7 +147,7 @@ fn Class.I() {} // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @I.3() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 8f5808d12e68..b244a6fc228c 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -778,24 +778,24 @@ class Class(U:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] -// CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] -// CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] +// CHECK:STDOUT: %Class.type.cf06d9.1: type = generic_class_type @Class.1 [concrete] +// CHECK:STDOUT: %Class.generic.9545f5.1: %Class.type.cf06d9.1 = struct_value () [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.e41: type = class_type @.1, @.1(%U) [symbolic] +// CHECK:STDOUT: %Class.type.cf06d9.2: type = generic_class_type @Class.2 [concrete] +// CHECK:STDOUT: %Class.generic.9545f5.2: %Class.type.cf06d9.2 = struct_value () [concrete] +// CHECK:STDOUT: %Class.fe1b2d.2: type = class_type @Class.2, @Class.2(%U) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.Class: %Class.type = import_ref Main//foo, Class, loaded [concrete = constants.%Class.generic] +// CHECK:STDOUT: %Main.Class: %Class.type.cf06d9.1 = import_ref Main//foo, Class, loaded [concrete = constants.%Class.generic.9545f5.1] // CHECK:STDOUT: %Main.CompleteClass = import_ref Main//foo, CompleteClass, unloaded // CHECK:STDOUT: %Main.F = import_ref Main//foo, F, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//foo, loc4_13, loaded [symbolic = @Class.%T (constants.%T)] +// CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//foo, loc4_13, loaded [symbolic = @Class.1.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -809,21 +809,21 @@ class Class(U:! type) { // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Class.decl: %Class.type.cf06d9.2 = class_decl @Class.2 [concrete = constants.%Class.generic.9545f5.2] { // CHECK:STDOUT: %U.patt.loc12_13.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc12_13.2 (constants.%U.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.loc12_13.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_13.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(imports.%Main.import_ref.5ab: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic class @Class.1(imports.%Main.import_ref.5ab: type) [from "foo.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: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%U.loc12_13.1: type) { +// CHECK:STDOUT: generic class @Class.2(%U.loc12_13.1: type) { // CHECK:STDOUT: %U.loc12_13.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_13.2 (constants.%U)] // CHECK:STDOUT: %U.patt.loc12_13.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc12_13.2 (constants.%U.patt)] // CHECK:STDOUT: @@ -839,18 +839,18 @@ class Class(U:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.e41 +// CHECK:STDOUT: .Self = constants.%Class.fe1b2d.2 // CHECK:STDOUT: .T = // CHECK:STDOUT: .x = %.loc17_8 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T) { +// CHECK:STDOUT: specific @Class.1(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%U) { +// CHECK:STDOUT: specific @Class.2(constants.%U) { // CHECK:STDOUT: %U.loc12_13.2 => constants.%U // CHECK:STDOUT: %U.patt.loc12_13.2 => constants.%U // 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 b3e2bcec7b3a..118d7719cec3 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -470,14 +470,14 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NotGeneric: type = class_type @NotGeneric [concrete] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.065: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.fdb: %F.type.065 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -494,13 +494,13 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %NotGeneric.decl: type = class_decl @NotGeneric [concrete = constants.%NotGeneric] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} { +// CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.2 [concrete = constants.%F.c41] {} { // CHECK:STDOUT: %T.loc15_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_15.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NotGeneric { -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} +// CHECK:STDOUT: %F.decl: %F.type.065 = fn_decl @F.1 [concrete = constants.%F.fdb] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -509,9 +509,9 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(); +// CHECK:STDOUT: fn @F.1(); // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc15_15.1: type) { +// CHECK:STDOUT: generic fn @F.2(%T.loc15_15.1: type) { // CHECK:STDOUT: %T.loc15_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_15.2 (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: @@ -523,7 +523,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T) { +// CHECK:STDOUT: specific @F.2(constants.%T) { // CHECK:STDOUT: %T.loc15_15.2 => constants.%T // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: } @@ -536,12 +536,12 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Generic.type: type = generic_class_type @Generic [concrete] // CHECK:STDOUT: %Generic.generic: %Generic.type = struct_value () [concrete] // CHECK:STDOUT: %Generic: type = class_type @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %TooFew.type: type = fn_type @TooFew, @Generic(%T) [symbolic] -// CHECK:STDOUT: %TooFew: %TooFew.type = struct_value () [symbolic] +// CHECK:STDOUT: %TooFew.type.dac: type = fn_type @TooFew.1, @Generic(%T) [symbolic] +// CHECK:STDOUT: %TooFew.840: %TooFew.type.dac = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %TooFew.type.e89: type = fn_type @TooFew.2 [concrete] +// CHECK:STDOUT: %TooFew.7c3: %TooFew.type.e89 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -562,7 +562,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %TooFew.decl: %TooFew.type.e89 = fn_decl @TooFew.2 [concrete = constants.%TooFew.7c3] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Generic(%T.loc4_15.1: type) { @@ -570,11 +570,11 @@ fn Generic(T:! ()).WrongType() {} // 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: %TooFew.type: type = fn_type @TooFew, @Generic(%T.loc4_15.2) [symbolic = %TooFew.type (constants.%TooFew.type)] -// CHECK:STDOUT: %TooFew: @Generic.%TooFew.type (%TooFew.type) = struct_value () [symbolic = %TooFew (constants.%TooFew)] +// CHECK:STDOUT: %TooFew.type: type = fn_type @TooFew.1, @Generic(%T.loc4_15.2) [symbolic = %TooFew.type (constants.%TooFew.type.dac)] +// CHECK:STDOUT: %TooFew: @Generic.%TooFew.type (%TooFew.type.dac) = struct_value () [symbolic = %TooFew (constants.%TooFew.840)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %TooFew.decl: @Generic.%TooFew.type (%TooFew.type) = fn_decl @TooFew [symbolic = @Generic.%TooFew (constants.%TooFew)] {} {} +// CHECK:STDOUT: %TooFew.decl: @Generic.%TooFew.type (%TooFew.type.dac) = fn_decl @TooFew.1 [symbolic = @Generic.%TooFew (constants.%TooFew.840)] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -584,11 +584,11 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TooFew(@Generic.%T.loc4_15.1: type) { +// CHECK:STDOUT: generic fn @TooFew.1(@Generic.%T.loc4_15.1: type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @TooFew.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -598,7 +598,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.patt.loc4_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TooFew(constants.%T) {} +// CHECK:STDOUT: specific @TooFew.1(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(%T.loc4_15.2) {} // CHECK:STDOUT: @@ -610,14 +610,14 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Generic.type: type = generic_class_type @Generic [concrete] // CHECK:STDOUT: %Generic.generic: %Generic.type = struct_value () [concrete] // CHECK:STDOUT: %Generic: type = class_type @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %TooMany.type: type = fn_type @TooMany, @Generic(%T) [symbolic] -// CHECK:STDOUT: %TooMany: %TooMany.type = struct_value () [symbolic] +// CHECK:STDOUT: %TooMany.type.cc8: type = fn_type @TooMany.1, @Generic(%T) [symbolic] +// CHECK:STDOUT: %TooMany.dc4: %TooMany.type.cc8 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %TooMany.type.c84: type = fn_type @TooMany.2 [concrete] +// CHECK:STDOUT: %TooMany.1dc: %TooMany.type.c84 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -638,7 +638,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} { +// CHECK:STDOUT: %TooMany.decl: %TooMany.type.c84 = fn_decl @TooMany.2 [concrete = constants.%TooMany.1dc] {} { // CHECK:STDOUT: %T.loc15_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.2 (constants.%T)] // CHECK:STDOUT: %U.loc15_22.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc15_22.2 (constants.%U)] // CHECK:STDOUT: } @@ -649,11 +649,11 @@ fn Generic(T:! ()).WrongType() {} // 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: %TooMany.type: type = fn_type @TooMany, @Generic(%T.loc4_15.2) [symbolic = %TooMany.type (constants.%TooMany.type)] -// CHECK:STDOUT: %TooMany: @Generic.%TooMany.type (%TooMany.type) = struct_value () [symbolic = %TooMany (constants.%TooMany)] +// CHECK:STDOUT: %TooMany.type: type = fn_type @TooMany.1, @Generic(%T.loc4_15.2) [symbolic = %TooMany.type (constants.%TooMany.type.cc8)] +// CHECK:STDOUT: %TooMany: @Generic.%TooMany.type (%TooMany.type.cc8) = struct_value () [symbolic = %TooMany (constants.%TooMany.dc4)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %TooMany.decl: @Generic.%TooMany.type (%TooMany.type) = fn_decl @TooMany [symbolic = @Generic.%TooMany (constants.%TooMany)] {} {} +// CHECK:STDOUT: %TooMany.decl: @Generic.%TooMany.type (%TooMany.type.cc8) = fn_decl @TooMany.1 [symbolic = @Generic.%TooMany (constants.%TooMany.dc4)] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -663,11 +663,11 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TooMany(@Generic.%T.loc4_15.1: type) { +// CHECK:STDOUT: generic fn @TooMany.1(@Generic.%T.loc4_15.1: type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc15_12.1: type, %U.loc15_22.1: type) { +// CHECK:STDOUT: generic fn @TooMany.2(%T.loc15_12.1: type, %U.loc15_22.1: type) { // CHECK:STDOUT: %T.loc15_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.2 (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: %U.loc15_22.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc15_22.2 (constants.%U)] @@ -686,11 +686,11 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.patt.loc4_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TooMany(constants.%T) {} +// CHECK:STDOUT: specific @TooMany.1(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(%T.loc4_15.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T, constants.%U) { +// CHECK:STDOUT: specific @TooMany.2(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc15_12.2 => constants.%T // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: %U.loc15_22.2 => constants.%U @@ -706,14 +706,14 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Generic.generic: %Generic.type = struct_value () [concrete] // 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: %WrongType.type.c41: type = fn_type @WrongType.1, @Generic(%T.8b3) [symbolic] +// CHECK:STDOUT: %WrongType.408: %WrongType.type.c41 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %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 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %WrongType.type.edf: type = fn_type @WrongType.2 [concrete] +// CHECK:STDOUT: %WrongType.131: %WrongType.type.edf = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -734,7 +734,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T.8b3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} { +// CHECK:STDOUT: %WrongType.decl: %WrongType.type.edf = fn_decl @WrongType.2 [concrete = constants.%WrongType.131] {} { // CHECK:STDOUT: %.loc15_17.1: type = splice_block %.loc15_17.3 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %.loc15_17.2: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc15_17.3: type = converted %.loc15_17.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -748,11 +748,11 @@ fn Generic(T:! ()).WrongType() {} // 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)] -// CHECK:STDOUT: %WrongType: @Generic.%WrongType.type (%WrongType.type) = struct_value () [symbolic = %WrongType (constants.%WrongType)] +// CHECK:STDOUT: %WrongType.type: type = fn_type @WrongType.1, @Generic(%T.loc4_15.2) [symbolic = %WrongType.type (constants.%WrongType.type.c41)] +// CHECK:STDOUT: %WrongType: @Generic.%WrongType.type (%WrongType.type.c41) = struct_value () [symbolic = %WrongType (constants.%WrongType.408)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %WrongType.decl: @Generic.%WrongType.type (%WrongType.type) = fn_decl @WrongType [symbolic = @Generic.%WrongType (constants.%WrongType)] {} {} +// CHECK:STDOUT: %WrongType.decl: @Generic.%WrongType.type (%WrongType.type.c41) = fn_decl @WrongType.1 [symbolic = @Generic.%WrongType (constants.%WrongType.408)] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -762,11 +762,11 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WrongType(@Generic.%T.loc4_15.1: type) { +// CHECK:STDOUT: generic fn @WrongType.1(@Generic.%T.loc4_15.1: type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc15_12.1: %empty_tuple.type) { +// CHECK:STDOUT: generic fn @WrongType.2(%T.loc15_12.1: %empty_tuple.type) { // CHECK:STDOUT: %T.loc15_12.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_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: @@ -783,11 +783,11 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.patt.loc4_15.2 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @WrongType(constants.%T.8b3) {} +// CHECK:STDOUT: specific @WrongType.1(constants.%T.8b3) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(%T.loc4_15.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T.7a6) { +// CHECK:STDOUT: specific @WrongType.2(constants.%T.7a6) { // CHECK:STDOUT: %T.loc15_12.2 => constants.%T.7a6 // CHECK:STDOUT: %T.patt => constants.%T.7a6 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/redeclare.carbon b/toolchain/check/testdata/class/generic/redeclare.carbon index 113ce9b794ca..4407127afc32 100644 --- a/toolchain/check/testdata/class/generic/redeclare.carbon +++ b/toolchain/check/testdata/class/generic/redeclare.carbon @@ -147,12 +147,12 @@ class E(U:! type) {} // CHECK:STDOUT: --- fail_mismatch_param_list.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A: type = class_type @A [concrete] +// CHECK:STDOUT: %A.466: type = class_type @A.1 [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.e41: type = class_type @.1, @.1(%T) [symbolic] +// CHECK:STDOUT: %A.type: type = generic_class_type @A.2 [concrete] +// CHECK:STDOUT: %A.generic: %A.type = struct_value () [concrete] +// CHECK:STDOUT: %A.130: type = class_type @A.2, @A.2(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -167,20 +167,20 @@ class E(U:! type) {} // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .A = %A.decl +// CHECK:STDOUT: .A = %A.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %A.decl.loc4: type = class_decl @A.1 [concrete = constants.%A.466] {} {} +// CHECK:STDOUT: %A.decl.loc12: %A.type = class_decl @A.2 [concrete = constants.%A.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: } { // CHECK:STDOUT: %T.loc12_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @A; +// CHECK:STDOUT: class @A.1; // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%T.loc12_9.1: type) { +// CHECK:STDOUT: generic class @A.2(%T.loc12_9.1: type) { // 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: @@ -191,11 +191,11 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.e41 +// CHECK:STDOUT: .Self = constants.%A.130 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T) { +// CHECK:STDOUT: specific @A.2(constants.%T) { // CHECK:STDOUT: %T.loc12_9.2 => constants.%T // CHECK:STDOUT: %T.patt.loc12_9.2 => constants.%T // CHECK:STDOUT: } @@ -207,15 +207,15 @@ class E(U:! type) {} // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // 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 [concrete] -// CHECK:STDOUT: %B.generic: %B.type = struct_value () [concrete] +// CHECK:STDOUT: %B.type.844c0f.1: type = generic_class_type @B.1 [concrete] +// CHECK:STDOUT: %B.generic.ba299b.1: %B.type.844c0f.1 = struct_value () [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [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 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.943: type = class_type @.1, @.1(%T, %N.f22) [symbolic] +// CHECK:STDOUT: %B.type.844c0f.2: type = generic_class_type @B.2 [concrete] +// CHECK:STDOUT: %B.generic.ba299b.2: %B.type.844c0f.2 = struct_value () [concrete] +// CHECK:STDOUT: %B.828: type = class_type @B.2, @B.2(%T, %N.f22) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -231,10 +231,10 @@ class E(U:! type) {} // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .B = %B.decl +// CHECK:STDOUT: .B = %B.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %B.decl: %B.type = class_decl @B [concrete = constants.%B.generic] { +// CHECK:STDOUT: %B.decl.loc4: %B.type.844c0f.1 = class_decl @B.1 [concrete = constants.%B.generic.ba299b.1] { // 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: } { // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { @@ -243,24 +243,24 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.51e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %B.decl.loc12: %B.type.844c0f.2 = class_decl @B.2 [concrete = constants.%B.generic.ba299b.2] { // CHECK:STDOUT: %T.patt.loc12_9.1: type = symbolic_binding_pattern T, 0 [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.51c)] +// CHECK:STDOUT: %N.patt.loc12_19.1: @B.2.%T.loc12_9.2 (%T) = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc12_19.2 (constants.%N.patt.51c)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc12_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T)] // 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 [symbolic = %N.loc12_19.2 (constants.%N.f22)] +// CHECK:STDOUT: %N.loc12_19.1: @B.2.%T.loc12_9.2 (%T) = bind_symbolic_name N, 1 [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: generic class @B.1(%N.loc4_9.1: %i32) { // 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: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%T.loc12_9.1: type, %N.loc12_19.1: @.1.%T.loc12_9.2 (%T)) { +// CHECK:STDOUT: generic class @B.2(%T.loc12_9.1: type, %N.loc12_19.1: @B.2.%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.f22)] @@ -273,16 +273,16 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.943 +// CHECK:STDOUT: .Self = constants.%B.828 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B(constants.%N.51e) { +// CHECK:STDOUT: specific @B.1(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.f22) { +// CHECK:STDOUT: specific @B.2(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.f22 @@ -294,15 +294,15 @@ class E(U:! type) {} // 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: %C.type: type = generic_class_type @C [concrete] -// CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] +// CHECK:STDOUT: %C.type.e6e560.1: type = generic_class_type @C.1 [concrete] +// CHECK:STDOUT: %C.generic.965b12.1: %C.type.e6e560.1 = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %U: %i32 = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: %i32 = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.c28: type = class_type @.1, @.1(%T, %U) [symbolic] +// CHECK:STDOUT: %C.type.e6e560.2: type = generic_class_type @C.2 [concrete] +// CHECK:STDOUT: %C.generic.965b12.2: %C.type.e6e560.2 = struct_value () [concrete] +// CHECK:STDOUT: %C.9d5: type = class_type @C.2, @C.2(%T, %U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -318,15 +318,15 @@ class E(U:! type) {} // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .C = %C.decl +// CHECK:STDOUT: .C = %C.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { +// CHECK:STDOUT: %C.decl.loc4: %C.type.e6e560.1 = class_decl @C.1 [concrete = constants.%C.generic.965b12.1] { // CHECK:STDOUT: %T.patt.loc4_9.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_9.2 (constants.%T.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %C.decl.loc12: %C.type.e6e560.2 = class_decl @C.2 [concrete = constants.%C.generic.965b12.2] { // CHECK:STDOUT: %T.patt.loc12_9.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_9.2 (constants.%T.patt)] // CHECK:STDOUT: %U.patt.loc12_19.1: %i32 = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc12_19.2 (constants.%U.patt)] // CHECK:STDOUT: } { @@ -339,14 +339,14 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc4_9.1: type) { +// CHECK:STDOUT: generic class @C.1(%T.loc4_9.1: type) { // CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // 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: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%T.loc12_9.1: type, %U.loc12_19.1: %i32) { +// CHECK:STDOUT: generic class @C.2(%T.loc12_9.1: type, %U.loc12_19.1: %i32) { // 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: %U.loc12_19.2: %i32 = bind_symbolic_name U, 1 [symbolic = %U.loc12_19.2 (constants.%U)] @@ -359,16 +359,16 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.c28 +// CHECK:STDOUT: .Self = constants.%C.9d5 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%T) { +// CHECK:STDOUT: specific @C.1(constants.%T) { // CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T, constants.%U) { +// CHECK:STDOUT: specific @C.2(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc12_9.2 => constants.%T // CHECK:STDOUT: %T.patt.loc12_9.2 => constants.%T // CHECK:STDOUT: %U.loc12_19.2 => constants.%U @@ -380,15 +380,15 @@ class E(U:! type) {} // CHECK:STDOUT: constants { // 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 [concrete] -// CHECK:STDOUT: %D.generic: %D.type = struct_value () [concrete] +// CHECK:STDOUT: %D.type.bbd080.1: type = generic_class_type @D.1 [concrete] +// CHECK:STDOUT: %D.generic.4e2319.1: %D.type.bbd080.1 = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %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 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.f5e: type = class_type @.1, @.1(%T.51e) [symbolic] +// CHECK:STDOUT: %D.type.bbd080.2: type = generic_class_type @D.2 [concrete] +// CHECK:STDOUT: %D.generic.4e2319.2: %D.type.bbd080.2 = struct_value () [concrete] +// CHECK:STDOUT: %D.022: type = class_type @D.2, @D.2(%T.51e) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -404,15 +404,15 @@ class E(U:! type) {} // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .D = %D.decl +// CHECK:STDOUT: .D = %D.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %D.decl: %D.type = class_decl @D [concrete = constants.%D.generic] { +// CHECK:STDOUT: %D.decl.loc4: %D.type.bbd080.1 = class_decl @D.1 [concrete = constants.%D.generic.4e2319.1] { // 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: } { // CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T.8b3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %D.decl.loc12: %D.type.bbd080.2 = class_decl @D.2 [concrete = constants.%D.generic.4e2319.2] { // 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: } { // CHECK:STDOUT: %.loc12: type = splice_block %i32 [concrete = constants.%i32] { @@ -423,14 +423,14 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%T.loc4_9.1: type) { +// CHECK:STDOUT: generic class @D.1(%T.loc4_9.1: type) { // 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: generic class @D.2(%T.loc12_9.1: %i32) { // 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: @@ -441,16 +441,16 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.f5e +// CHECK:STDOUT: .Self = constants.%D.022 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D(constants.%T.8b3) { +// CHECK:STDOUT: specific @D.1(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.51e) { +// CHECK:STDOUT: specific @D.2(constants.%T.51e) { // CHECK:STDOUT: %T.loc12_9.2 => constants.%T.51e // CHECK:STDOUT: %T.patt.loc12_9.2 => constants.%T.51e // CHECK:STDOUT: } @@ -460,13 +460,13 @@ class E(U:! type) {} // 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: %E.type: type = generic_class_type @E [concrete] -// CHECK:STDOUT: %E.generic: %E.type = struct_value () [concrete] +// CHECK:STDOUT: %E.type.b0f8dc.1: type = generic_class_type @E.1 [concrete] +// CHECK:STDOUT: %E.generic.f281ba.1: %E.type.b0f8dc.1 = struct_value () [concrete] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 [symbolic] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.e41: type = class_type @.1, @.1(%U) [symbolic] +// CHECK:STDOUT: %E.type.b0f8dc.2: type = generic_class_type @E.2 [concrete] +// CHECK:STDOUT: %E.generic.f281ba.2: %E.type.b0f8dc.2 = struct_value () [concrete] +// CHECK:STDOUT: %E.ec9c10.2: type = class_type @E.2, @E.2(%U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -481,29 +481,29 @@ class E(U:! type) {} // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .E = %E.decl +// CHECK:STDOUT: .E = %E.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %E.decl: %E.type = class_decl @E [concrete = constants.%E.generic] { +// CHECK:STDOUT: %E.decl.loc4: %E.type.b0f8dc.1 = class_decl @E.1 [concrete = constants.%E.generic.f281ba.1] { // CHECK:STDOUT: %T.patt.loc4_9.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_9.2 (constants.%T.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %E.decl.loc12: %E.type.b0f8dc.2 = class_decl @E.2 [concrete = constants.%E.generic.f281ba.2] { // CHECK:STDOUT: %U.patt.loc12_9.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc12_9.2 (constants.%U.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.loc12_9.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_9.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @E(%T.loc4_9.1: type) { +// CHECK:STDOUT: generic class @E.1(%T.loc4_9.1: type) { // CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // 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: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%U.loc12_9.1: type) { +// CHECK:STDOUT: generic class @E.2(%U.loc12_9.1: type) { // CHECK:STDOUT: %U.loc12_9.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_9.2 (constants.%U)] // CHECK:STDOUT: %U.patt.loc12_9.2: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc12_9.2 (constants.%U.patt)] // CHECK:STDOUT: @@ -514,16 +514,16 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.e41 +// CHECK:STDOUT: .Self = constants.%E.ec9c10.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @E(constants.%T) { +// CHECK:STDOUT: specific @E.1(constants.%T) { // CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%U) { +// CHECK:STDOUT: specific @E.2(constants.%U) { // CHECK:STDOUT: %U.loc12_9.2 => constants.%U // CHECK:STDOUT: %U.patt.loc12_9.2 => constants.%U // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/no_prelude/extern.carbon b/toolchain/check/testdata/class/no_prelude/extern.carbon index 3951a11bca5f..1729ee7ce09b 100644 --- a/toolchain/check/testdata/class/no_prelude/extern.carbon +++ b/toolchain/check/testdata/class/no_prelude/extern.carbon @@ -354,8 +354,8 @@ extern class C; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] +// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -363,12 +363,12 @@ extern class C; // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(); +// CHECK:STDOUT: fn @F(); // CHECK:STDOUT: // CHECK:STDOUT: --- extern_def.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/implicit_import.carbon b/toolchain/check/testdata/class/no_prelude/implicit_import.carbon index d58b2ddfc83c..9a9a481efab3 100644 --- a/toolchain/check/testdata/class/no_prelude/implicit_import.carbon +++ b/toolchain/check/testdata/class/no_prelude/implicit_import.carbon @@ -202,14 +202,14 @@ class B {} // CHECK:STDOUT: --- fail_redef_after_def.impl.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %C: type = class_type @C [concrete] +// CHECK:STDOUT: %C.f794a0.1: type = class_type @C.1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.a95: type = class_type @.1 [concrete] +// CHECK:STDOUT: %C.f794a0.2: type = class_type @C.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.C: type = import_ref Main//redef_after_def, C, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.C: type = import_ref Main//redef_after_def, C, loaded [concrete = constants.%C.f794a0.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//redef_after_def, loc4_10, loaded [concrete = constants.%complete_type] // CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redef_after_def, inst14 [no loc], unloaded // CHECK:STDOUT: } @@ -220,22 +220,22 @@ class B {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import -// CHECK:STDOUT: %.decl: type = class_decl @.1 [concrete = constants.%.a95] {} {} +// CHECK:STDOUT: %C.decl: type = class_decl @C.2 [concrete = constants.%C.f794a0.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @C [from "redef_after_def.carbon"] { +// CHECK:STDOUT: class @C.1 [from "redef_after_def.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.2c4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @.1 { +// CHECK:STDOUT: class @C.2 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.a95 +// CHECK:STDOUT: .Self = constants.%C.f794a0.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- def_alias.carbon @@ -260,7 +260,7 @@ class B {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.a95: type = class_type @.1 [concrete] +// CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -277,16 +277,16 @@ class B {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import -// CHECK:STDOUT: %.decl: type = class_decl @.1 [concrete = constants.%.a95] {} {} +// CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "def_alias.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: class @.1 { +// CHECK:STDOUT: class @B { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.a95 +// CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon index c68ae7023580..eca20e4f2075 100644 --- a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon @@ -349,26 +349,26 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_class_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.cb8: type = class_type @.1, @.1(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.39e446.1: type = generic_class_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.1: %Foo.type.39e446.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.39e446.2: type = generic_class_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.2: %Foo.type.39e446.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.67ab7c.2: type = class_type @Foo.2, @Foo.2(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.39e446.1 = class_decl @Foo.1 [concrete = constants.%Foo.generic.80461b.1] { // CHECK:STDOUT: %a.patt.loc6_11.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.39e446.2 = class_decl @Foo.2 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %a.patt.loc14_11.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc14_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -384,14 +384,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %C) { +// CHECK:STDOUT: generic class @Foo.1(%a.loc6_11.1: %C) { // CHECK:STDOUT: %a.loc6_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc6_11.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_11.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%a.loc14_11.1: %C) { +// CHECK:STDOUT: generic class @Foo.2(%a.loc14_11.1: %C) { // CHECK:STDOUT: %a.loc14_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc14_11.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc14_11.2 (constants.%a.patt)] // CHECK:STDOUT: @@ -402,16 +402,16 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.cb8 +// CHECK:STDOUT: .Self = constants.%Foo.67ab7c.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc6_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc6_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc14_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc14_11.2 => constants.%a // CHECK:STDOUT: } @@ -650,31 +650,31 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_class_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.39e446.1: type = generic_class_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.1: %Foo.type.39e446.1 = struct_value () [concrete] // CHECK:STDOUT: %b: %C = bind_symbolic_name b, 0 [symbolic] // CHECK:STDOUT: %b.patt: %C = symbolic_binding_pattern b, 0 [symbolic] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.cb8: type = class_type @.1, @.1(%b) [symbolic] +// CHECK:STDOUT: %Foo.type.39e446.2: type = generic_class_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.2: %Foo.type.39e446.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.67ab7c.2: type = class_type @Foo.2, @Foo.2(%b) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.39e446.1 = class_decl @Foo.1 [concrete = constants.%Foo.generic.80461b.1] { // CHECK:STDOUT: %a.patt.loc7_11.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.39e446.2 = class_decl @Foo.2 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %b.patt.loc15_11.1: %C = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc15_11.2 (constants.%b.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -690,14 +690,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { +// CHECK:STDOUT: generic class @Foo.1(%a.loc7_11.1: %C) { // CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc7_11.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_11.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%b.loc15_11.1: %C) { +// CHECK:STDOUT: generic class @Foo.2(%b.loc15_11.1: %C) { // CHECK:STDOUT: %b.loc15_11.2: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_11.2 (constants.%b)] // CHECK:STDOUT: %b.patt.loc15_11.2: %C = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc15_11.2 (constants.%b.patt)] // CHECK:STDOUT: @@ -708,16 +708,16 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.cb8 +// CHECK:STDOUT: .Self = constants.%Foo.67ab7c.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc7_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc7_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%b) { +// CHECK:STDOUT: specific @Foo.2(constants.%b) { // CHECK:STDOUT: %b.loc15_11.2 => constants.%b // CHECK:STDOUT: %b.patt.loc15_11.2 => constants.%b // CHECK:STDOUT: } @@ -730,29 +730,29 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_class_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.cb8: type = class_type @.1, @.1(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.39e446.1: type = generic_class_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.1: %Foo.type.39e446.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.39e446.2: type = generic_class_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.2: %Foo.type.39e446.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.67ab7c.2: type = class_type @Foo.2, @Foo.2(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.39e446.1 = class_decl @Foo.1 [concrete = constants.%Foo.generic.80461b.1] { // CHECK:STDOUT: %a.patt.loc7_11.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.39e446.2 = class_decl @Foo.2 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %a.patt.loc15_11.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -768,14 +768,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { +// CHECK:STDOUT: generic class @Foo.1(%a.loc7_11.1: %C) { // CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc7_11.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_11.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%a.loc15_11.1: %C) { +// CHECK:STDOUT: generic class @Foo.2(%a.loc15_11.1: %C) { // CHECK:STDOUT: %a.loc15_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc15_11.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_11.2 (constants.%a.patt)] // CHECK:STDOUT: @@ -786,16 +786,16 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.cb8 +// CHECK:STDOUT: .Self = constants.%Foo.67ab7c.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc7_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc7_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc15_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc15_11.2 => constants.%a // CHECK:STDOUT: } @@ -808,29 +808,29 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_class_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.cb8: type = class_type @.1, @.1(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.39e446.1: type = generic_class_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.1: %Foo.type.39e446.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.39e446.2: type = generic_class_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.2: %Foo.type.39e446.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.67ab7c.2: type = class_type @Foo.2, @Foo.2(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.39e446.1 = class_decl @Foo.1 [concrete = constants.%Foo.generic.80461b.1] { // CHECK:STDOUT: %a.patt.loc7_11.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.39e446.2 = class_decl @Foo.2 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %a.patt.loc15_11.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -846,14 +846,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { +// CHECK:STDOUT: generic class @Foo.1(%a.loc7_11.1: %C) { // CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc7_11.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_11.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%a.loc15_11.1: %C) { +// CHECK:STDOUT: generic class @Foo.2(%a.loc15_11.1: %C) { // CHECK:STDOUT: %a.loc15_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc15_11.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_11.2 (constants.%a.patt)] // CHECK:STDOUT: @@ -864,16 +864,16 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.cb8 +// CHECK:STDOUT: .Self = constants.%Foo.67ab7c.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc7_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc7_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc15_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc15_11.2 => constants.%a // CHECK:STDOUT: } @@ -998,20 +998,20 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %const: type = const_type %C [concrete] // CHECK:STDOUT: %a: %const = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %const = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_class_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.8e9: type = class_type @.1, @.1(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.39e446.1: type = generic_class_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.1: %Foo.type.39e446.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.39e446.2: type = generic_class_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.80461b.2: %Foo.type.39e446.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.1a4f0e.2: type = class_type @Foo.2, @Foo.2(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.39e446.1 = class_decl @Foo.1 [concrete = constants.%Foo.generic.80461b.1] { // CHECK:STDOUT: %a.patt.loc6_11.1: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %const [concrete = constants.%const] { @@ -1020,7 +1020,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_11.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.39e446.2 = class_decl @Foo.2 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %a.patt.loc18_11.1: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc18_11.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18: type = splice_block %const.loc18_15 [concrete = constants.%const] { @@ -1040,14 +1040,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %const) { +// CHECK:STDOUT: generic class @Foo.1(%a.loc6_11.1: %const) { // CHECK:STDOUT: %a.loc6_11.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc6_11.2: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_11.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%a.loc18_11.1: %const) { +// CHECK:STDOUT: generic class @Foo.2(%a.loc18_11.1: %const) { // CHECK:STDOUT: %a.loc18_11.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_11.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc18_11.2: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc18_11.2 (constants.%a.patt)] // CHECK:STDOUT: @@ -1058,16 +1058,16 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.8e9 +// CHECK:STDOUT: .Self = constants.%Foo.1a4f0e.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc6_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc6_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc18_11.2 => constants.%a // CHECK:STDOUT: %a.patt.loc18_11.2 => constants.%a // CHECK:STDOUT: } @@ -1079,12 +1079,12 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %empty_tuple.type [concrete] // CHECK:STDOUT: %ptr.11f: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.7c6384.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.d17bbc.1: %F.type.7c6384.1 = struct_value () [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.ad0: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.7c6384.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.d17bbc.2: %F.type.7c6384.2 = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1093,7 +1093,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Base = %Base.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.ad0] { +// CHECK:STDOUT: %F.decl: %F.type.7c6384.2 = fn_decl @F.2 [concrete = constants.%F.d17bbc.2] { // CHECK:STDOUT: %self.patt: %ptr.11f = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.11f = value_param_pattern %self.patt, call_param0 // CHECK:STDOUT: %.loc17_11: auto = addr_pattern %self.param_patt @@ -1113,7 +1113,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %.loc5_3: %Base.elem = var_pattern %.loc5_8 // CHECK:STDOUT: } // CHECK:STDOUT: %.var: ref %Base.elem = var -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { +// CHECK:STDOUT: %F.decl: %F.type.7c6384.1 = fn_decl @F.1 [concrete = constants.%F.d17bbc.1] { // CHECK:STDOUT: %self.patt: %ptr.11f = binding_pattern self // CHECK:STDOUT: %self.param_patt: %ptr.11f = value_param_pattern %self.patt, call_param0 // CHECK:STDOUT: %.loc7_8: auto = addr_pattern %self.param_patt @@ -1135,9 +1135,9 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Base = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F[addr %self.param_patt: %ptr.11f](); +// CHECK:STDOUT: fn @F.1[addr %self.param_patt: %ptr.11f](); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1[addr %self.param_patt: %ptr.11f]() { +// CHECK:STDOUT: fn @F.2[addr %self.param_patt: %ptr.11f]() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: %ptr.11f = name_ref self, %self // CHECK:STDOUT: %.loc18_4: ref %Base = deref %self.ref diff --git a/toolchain/check/testdata/class/syntactic_merge_literal.carbon b/toolchain/check/testdata/class/syntactic_merge_literal.carbon index c17bdd684eac..f552110bd7c0 100644 --- a/toolchain/check/testdata/class/syntactic_merge_literal.carbon +++ b/toolchain/check/testdata/class/syntactic_merge_literal.carbon @@ -196,11 +196,11 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %C.262: type = class_type @C, @C(%int_1000.1b6) [concrete] // 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 [concrete] -// CHECK:STDOUT: %D.generic: %D.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.3d2: type = class_type @.1, @.1(%b) [symbolic] +// CHECK:STDOUT: %D.type.bbd080.1: type = generic_class_type @D.1 [concrete] +// CHECK:STDOUT: %D.generic.4e2319.1: %D.type.bbd080.1 = struct_value () [concrete] +// CHECK:STDOUT: %D.type.bbd080.2: type = generic_class_type @D.2 [concrete] +// CHECK:STDOUT: %D.generic.4e2319.2: %D.type.bbd080.2 = struct_value () [concrete] +// CHECK:STDOUT: %D.126b2d.2: type = class_type @D.2, @D.2(%b) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -216,7 +216,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .C = %C.decl -// CHECK:STDOUT: .D = %D.decl +// CHECK:STDOUT: .D = %D.decl.loc5 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { @@ -228,7 +228,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc4_9.1: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %D.decl: %D.type = class_decl @D [concrete = constants.%D.generic] { +// CHECK:STDOUT: %D.decl.loc5: %D.type.bbd080.1 = class_decl @D.1 [concrete = constants.%D.generic.4e2319.1] { // 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: } { // CHECK:STDOUT: %.loc5_19.1: type = splice_block %C [concrete = constants.%C.262] { @@ -245,7 +245,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %b.loc5_9.1: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %D.decl.loc13: %D.type.bbd080.2 = class_decl @D.2 [concrete = constants.%D.generic.4e2319.2] { // CHECK:STDOUT: %b.patt.loc13_9.1: %C.262 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc13_9.2 (constants.%b.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_20.1: type = splice_block %C [concrete = constants.%C.262] { @@ -279,14 +279,14 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%b.loc5_9.1: %C.262) { +// CHECK:STDOUT: generic class @D.1(%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.loc13_9.1: %C.262) { +// CHECK:STDOUT: generic class @D.2(%b.loc13_9.1: %C.262) { // CHECK:STDOUT: %b.loc13_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc13_9.2 (constants.%b)] // CHECK:STDOUT: %b.patt.loc13_9.2: %C.262 = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc13_9.2 (constants.%b.patt)] // CHECK:STDOUT: @@ -297,7 +297,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.3d2 +// CHECK:STDOUT: .Self = constants.%D.126b2d.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -311,12 +311,12 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.patt.loc4_9.2 => constants.%int_1000.1b6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D(constants.%b) { +// CHECK:STDOUT: specific @D.1(constants.%b) { // CHECK:STDOUT: %b.loc5_9.2 => constants.%b // CHECK:STDOUT: %b.patt.loc5_9.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%b) { +// CHECK:STDOUT: specific @D.2(constants.%b) { // CHECK:STDOUT: %b.loc13_9.2 => constants.%b // CHECK:STDOUT: %b.patt.loc13_9.2 => constants.%b // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/builtin/fail_redefined.carbon b/toolchain/check/testdata/function/builtin/fail_redefined.carbon index e14806698fde..773a6a55972d 100644 --- a/toolchain/check/testdata/function/builtin/fail_redefined.carbon +++ b/toolchain/check/testdata/function/builtin/fail_redefined.carbon @@ -43,18 +43,18 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %A.type: type = fn_type @A [concrete] -// CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.1: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d852be.1: %.type.b6a92a.1 = struct_value () [concrete] -// CHECK:STDOUT: %B.type: type = fn_type @B [concrete] -// CHECK:STDOUT: %B: %B.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.2: type = fn_type @.2 [concrete] -// CHECK:STDOUT: %.d852be.2: %.type.b6a92a.2 = struct_value () [concrete] -// CHECK:STDOUT: %C.type: type = fn_type @C [concrete] -// CHECK:STDOUT: %C: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.3: type = fn_type @.3 [concrete] -// CHECK:STDOUT: %.d852be.3: %.type.b6a92a.3 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.00d7e7.1: type = fn_type @A.1 [concrete] +// CHECK:STDOUT: %A.1db889.1: %A.type.00d7e7.1 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.00d7e7.2: type = fn_type @A.2 [concrete] +// CHECK:STDOUT: %A.1db889.2: %A.type.00d7e7.2 = struct_value () [concrete] +// CHECK:STDOUT: %B.type.e168e5.1: type = fn_type @B.1 [concrete] +// CHECK:STDOUT: %B.d1e2df.1: %B.type.e168e5.1 = struct_value () [concrete] +// CHECK:STDOUT: %B.type.e168e5.2: type = fn_type @B.2 [concrete] +// CHECK:STDOUT: %B.d1e2df.2: %B.type.e168e5.2 = struct_value () [concrete] +// CHECK:STDOUT: %C.type.de0bfe.1: type = fn_type @C.1 [concrete] +// CHECK:STDOUT: %C.1b0370.1: %C.type.de0bfe.1 = struct_value () [concrete] +// CHECK:STDOUT: %C.type.de0bfe.2: type = fn_type @C.2 [concrete] +// CHECK:STDOUT: %C.1b0370.2: %C.type.de0bfe.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -68,12 +68,12 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .A = %A.decl -// CHECK:STDOUT: .B = %B.decl -// CHECK:STDOUT: .C = %C.decl +// CHECK:STDOUT: .A = %A.decl.loc11 +// CHECK:STDOUT: .B = %B.decl.loc21 +// CHECK:STDOUT: .C = %C.decl.loc31 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { +// CHECK:STDOUT: %A.decl.loc11: %A.type.00d7e7.1 = fn_decl @A.1 [concrete = constants.%A.1db889.1] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, call_param0 // CHECK:STDOUT: %m.patt: %i32 = binding_pattern m @@ -98,7 +98,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc19: %.type.b6a92a.1 = fn_decl @.1 [concrete = constants.%.d852be.1] { +// CHECK:STDOUT: %A.decl.loc19: %A.type.00d7e7.2 = fn_decl @A.2 [concrete = constants.%A.1db889.2] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, call_param0 // CHECK:STDOUT: %m.patt: %i32 = binding_pattern m @@ -123,7 +123,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { +// CHECK:STDOUT: %B.decl.loc21: %B.type.e168e5.1 = fn_decl @B.1 [concrete = constants.%B.d1e2df.1] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, call_param0 // CHECK:STDOUT: %m.patt: %i32 = binding_pattern m @@ -148,7 +148,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc29: %.type.b6a92a.2 = fn_decl @.2 [concrete = constants.%.d852be.2] { +// CHECK:STDOUT: %B.decl.loc29: %B.type.e168e5.2 = fn_decl @B.2 [concrete = constants.%B.d1e2df.2] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, call_param0 // CHECK:STDOUT: %m.patt: %i32 = binding_pattern m @@ -173,7 +173,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { +// CHECK:STDOUT: %C.decl.loc31: %C.type.de0bfe.1 = fn_decl @C.1 [concrete = constants.%C.1b0370.1] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, call_param0 // CHECK:STDOUT: %m.patt: %i32 = binding_pattern m @@ -198,7 +198,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc39: %.type.b6a92a.3 = fn_decl @.3 [concrete = constants.%.d852be.3] { +// CHECK:STDOUT: %C.decl.loc39: %C.type.de0bfe.2 = fn_decl @C.2 [concrete = constants.%C.1b0370.2] { // CHECK:STDOUT: %n.patt: %i32 = binding_pattern n // CHECK:STDOUT: %n.param_patt: %i32 = value_param_pattern %n.patt, call_param0 // CHECK:STDOUT: %m.patt: %i32 = binding_pattern m @@ -225,23 +225,23 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @A(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 = "int.sadd"; +// CHECK:STDOUT: fn @A.1(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 { +// CHECK:STDOUT: fn @A.2(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: return %n.ref // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @B(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 { +// CHECK:STDOUT: fn @B.1(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: return %n.ref // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.2(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 = "int.sadd"; +// CHECK:STDOUT: fn @B.2(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 = "int.sadd"; +// CHECK:STDOUT: fn @C.1(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.3(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 = "int.sadd"; +// CHECK:STDOUT: fn @C.2(%n.param_patt: %i32, %m.param_patt: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/declaration/no_prelude/fail_redecl.carbon b/toolchain/check/testdata/function/declaration/no_prelude/fail_redecl.carbon index 8e7258c24ddf..7d57ad823e49 100644 --- a/toolchain/check/testdata/function/declaration/no_prelude/fail_redecl.carbon +++ b/toolchain/check/testdata/function/declaration/no_prelude/fail_redecl.carbon @@ -66,25 +66,25 @@ fn E() {} // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] -// CHECK:STDOUT: %C.type: type = fn_type @C [concrete] -// CHECK:STDOUT: %C: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.1: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d852be.1: %.type.b6a92a.1 = struct_value () [concrete] +// CHECK:STDOUT: %C.type.de0bfe.1: type = fn_type @C.1 [concrete] +// CHECK:STDOUT: %C.1b0370.1: %C.type.de0bfe.1 = struct_value () [concrete] +// CHECK:STDOUT: %C.type.de0bfe.2: type = fn_type @C.2 [concrete] +// CHECK:STDOUT: %C.1b0370.2: %C.type.de0bfe.2 = struct_value () [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] // CHECK:STDOUT: %D: %D.type = struct_value () [concrete] -// CHECK:STDOUT: %E.type: type = fn_type @E [concrete] -// CHECK:STDOUT: %E: %E.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.2: type = fn_type @.2 [concrete] -// CHECK:STDOUT: %.d852be.2: %.type.b6a92a.2 = struct_value () [concrete] +// CHECK:STDOUT: %E.type.851869.1: type = fn_type @E.1 [concrete] +// CHECK:STDOUT: %E.237d29.1: %E.type.851869.1 = struct_value () [concrete] +// CHECK:STDOUT: %E.type.851869.2: type = fn_type @E.2 [concrete] +// CHECK:STDOUT: %E.237d29.2: %E.type.851869.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .A = %A.decl.loc11 // CHECK:STDOUT: .B = %B.decl.loc21 -// CHECK:STDOUT: .C = %C.decl +// CHECK:STDOUT: .C = %C.decl.loc31 // CHECK:STDOUT: .D = %D.decl.loc41 -// CHECK:STDOUT: .E = %E.decl +// CHECK:STDOUT: .E = %E.decl.loc51 // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl.loc11: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %A.decl.loc19: %A.type = fn_decl @A [concrete = constants.%A] {} {} @@ -110,8 +110,8 @@ fn E() {} // CHECK:STDOUT: } // CHECK:STDOUT: %x.loc29: %empty_tuple.type = bind_name x, %x.param.loc29 // CHECK:STDOUT: } -// CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %.decl.loc39: %.type.b6a92a.1 = fn_decl @.1 [concrete = constants.%.d852be.1] { +// CHECK:STDOUT: %C.decl.loc31: %C.type.de0bfe.1 = fn_decl @C.1 [concrete = constants.%C.1b0370.1] {} {} +// CHECK:STDOUT: %C.decl.loc39: %C.type.de0bfe.2 = fn_decl @C.2 [concrete = constants.%C.1b0370.2] { // CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, call_param0 // CHECK:STDOUT: } { @@ -124,29 +124,29 @@ fn E() {} // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc41: %D.type = fn_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %D.decl.loc49: %D.type = fn_decl @D [concrete = constants.%D] {} {} -// CHECK:STDOUT: %E.decl: %E.type = fn_decl @E [concrete = constants.%E] {} {} -// CHECK:STDOUT: %.decl.loc59: %.type.b6a92a.2 = fn_decl @.2 [concrete = constants.%.d852be.2] {} {} +// CHECK:STDOUT: %E.decl.loc51: %E.type.851869.1 = fn_decl @E.1 [concrete = constants.%E.237d29.1] {} {} +// CHECK:STDOUT: %E.decl.loc59: %E.type.851869.2 = fn_decl @E.2 [concrete = constants.%E.237d29.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A(); // CHECK:STDOUT: // CHECK:STDOUT: fn @B(%x.param_patt: %empty_tuple.type); // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(); +// CHECK:STDOUT: fn @C.1(); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(%x.param_patt: %empty_tuple.type); +// CHECK:STDOUT: fn @C.2(%x.param_patt: %empty_tuple.type); // CHECK:STDOUT: // CHECK:STDOUT: fn @D() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @E() { +// CHECK:STDOUT: fn @E.1() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.2() { +// CHECK:STDOUT: fn @E.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/definition/import.carbon b/toolchain/check/testdata/function/definition/import.carbon index bde1735dc0b7..aa217b6ea1d7 100644 --- a/toolchain/check/testdata/function/definition/import.carbon +++ b/toolchain/check/testdata/function/definition/import.carbon @@ -367,10 +367,10 @@ fn D() {} // CHECK:STDOUT: --- fail_def_ownership.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.type: type = fn_type @A [concrete] -// CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %A.type.00d7e7.1: type = fn_type @A.1 [concrete] +// CHECK:STDOUT: %A.1db889.1: %A.type.00d7e7.1 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.00d7e7.2: type = fn_type @A.2 [concrete] +// CHECK:STDOUT: %A.1db889.2: %A.type.00d7e7.2 = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] @@ -378,7 +378,7 @@ fn D() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.A: %A.type = import_ref Main//fns, A, loaded [concrete = constants.%A] +// CHECK:STDOUT: %Main.A: %A.type.00d7e7.1 = import_ref Main//fns, A, loaded [concrete = constants.%A.1db889.1] // CHECK:STDOUT: %Main.C = import_ref Main//fns, C, unloaded // CHECK:STDOUT: %Main.D = import_ref Main//fns, D, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { @@ -398,7 +398,7 @@ fn D() {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %A.decl: %A.type.00d7e7.2 = fn_decl @A.2 [concrete = constants.%A.1db889.2] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} { // CHECK:STDOUT: %int_32.loc23_17: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc23_17: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -413,9 +413,9 @@ fn D() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @A() [from "fns.carbon"]; +// CHECK:STDOUT: fn @A.1() [from "fns.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @A.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/definition/no_prelude/fail_decl_param_mismatch.carbon b/toolchain/check/testdata/function/definition/no_prelude/fail_decl_param_mismatch.carbon index 818d2710b94f..6e133cd4103e 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/fail_decl_param_mismatch.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/fail_decl_param_mismatch.carbon @@ -68,47 +68,47 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: --- fail_decl_param_mismatch.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] +// CHECK:STDOUT: %F.type.b25846.1: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.1: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d852be.1: %.type.b6a92a.1 = struct_value () [concrete] -// CHECK:STDOUT: %G.type: type = fn_type @G [concrete] -// CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.2: type = fn_type @.2 [concrete] -// CHECK:STDOUT: %.d852be.2: %.type.b6a92a.2 = struct_value () [concrete] -// CHECK:STDOUT: %H.type: type = fn_type @H [concrete] -// CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.3: type = fn_type @.3 [concrete] -// CHECK:STDOUT: %.d852be.3: %.type.b6a92a.3 = struct_value () [concrete] -// CHECK:STDOUT: %I.type: type = fn_type @I [concrete] -// CHECK:STDOUT: %I: %I.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.4: type = fn_type @.4 [concrete] -// CHECK:STDOUT: %.d852be.4: %.type.b6a92a.4 = struct_value () [concrete] +// CHECK:STDOUT: %F.c41931.1: %F.type.b25846.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41931.2: %F.type.b25846.2 = struct_value () [concrete] +// CHECK:STDOUT: %G.type.9f9306.1: type = fn_type @G.1 [concrete] +// CHECK:STDOUT: %G.57b67a.1: %G.type.9f9306.1 = struct_value () [concrete] +// CHECK:STDOUT: %G.type.9f9306.2: type = fn_type @G.2 [concrete] +// CHECK:STDOUT: %G.57b67a.2: %G.type.9f9306.2 = struct_value () [concrete] +// CHECK:STDOUT: %H.type.6826c6.1: type = fn_type @H.1 [concrete] +// CHECK:STDOUT: %H.8a6545.1: %H.type.6826c6.1 = struct_value () [concrete] +// CHECK:STDOUT: %H.type.6826c6.2: type = fn_type @H.2 [concrete] +// CHECK:STDOUT: %H.8a6545.2: %H.type.6826c6.2 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.af49c4.1: type = fn_type @I.1 [concrete] +// CHECK:STDOUT: %I.58e4ec.1: %I.type.af49c4.1 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.af49c4.2: type = fn_type @I.2 [concrete] +// CHECK:STDOUT: %I.58e4ec.2: %I.type.af49c4.2 = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %J.type: type = fn_type @J [concrete] -// CHECK:STDOUT: %J: %J.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.5: type = fn_type @.5 [concrete] -// CHECK:STDOUT: %.d852be.5: %.type.b6a92a.5 = struct_value () [concrete] -// CHECK:STDOUT: %K.type: type = fn_type @K [concrete] -// CHECK:STDOUT: %K: %K.type = struct_value () [concrete] +// CHECK:STDOUT: %J.type.8e2c84.1: type = fn_type @J.1 [concrete] +// CHECK:STDOUT: %J.3662e8.1: %J.type.8e2c84.1 = struct_value () [concrete] +// CHECK:STDOUT: %J.type.8e2c84.2: type = fn_type @J.2 [concrete] +// CHECK:STDOUT: %J.3662e8.2: %J.type.8e2c84.2 = struct_value () [concrete] +// CHECK:STDOUT: %K.type.6cc1c5.1: type = fn_type @K.1 [concrete] +// CHECK:STDOUT: %K.460d95.1: %K.type.6cc1c5.1 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %.type.b6a92a.6: type = fn_type @.6 [concrete] -// CHECK:STDOUT: %.d852be.6: %.type.b6a92a.6 = struct_value () [concrete] +// CHECK:STDOUT: %K.type.6cc1c5.2: type = fn_type @K.2 [concrete] +// CHECK:STDOUT: %K.460d95.2: %K.type.6cc1c5.2 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: .G = %G.decl -// CHECK:STDOUT: .H = %H.decl -// CHECK:STDOUT: .I = %I.decl -// CHECK:STDOUT: .J = %J.decl -// CHECK:STDOUT: .K = %K.decl +// CHECK:STDOUT: .F = %F.decl.loc11 +// CHECK:STDOUT: .G = %G.decl.loc21 +// CHECK:STDOUT: .H = %H.decl.loc31 +// CHECK:STDOUT: .I = %I.decl.loc38 +// CHECK:STDOUT: .J = %J.decl.loc48 +// CHECK:STDOUT: .K = %K.decl.loc58 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: %.decl.loc19: %.type.b6a92a.1 = fn_decl @.1 [concrete = constants.%.d852be.1] { +// CHECK:STDOUT: %F.decl.loc11: %F.type.b25846.1 = fn_decl @F.1 [concrete = constants.%F.c41931.1] {} {} +// CHECK:STDOUT: %F.decl.loc19: %F.type.b25846.2 = fn_decl @F.2 [concrete = constants.%F.c41931.2] { // CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, call_param0 // CHECK:STDOUT: } { @@ -119,7 +119,7 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %x: %empty_tuple.type = bind_name x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { +// CHECK:STDOUT: %G.decl.loc21: %G.type.9f9306.1 = fn_decl @G.1 [concrete = constants.%G.57b67a.1] { // CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, call_param0 // CHECK:STDOUT: } { @@ -130,8 +130,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %x: %empty_tuple.type = bind_name x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc29: %.type.b6a92a.2 = fn_decl @.2 [concrete = constants.%.d852be.2] {} {} -// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { +// CHECK:STDOUT: %G.decl.loc29: %G.type.9f9306.2 = fn_decl @G.2 [concrete = constants.%G.57b67a.2] {} {} +// CHECK:STDOUT: %H.decl.loc31: %H.type.6826c6.1 = fn_decl @H.1 [concrete = constants.%H.8a6545.1] { // CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, call_param0 // CHECK:STDOUT: } { @@ -142,15 +142,15 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %x: %empty_tuple.type = bind_name x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc36: %.type.b6a92a.3 = fn_decl @.3 [concrete = constants.%.d852be.3] { +// CHECK:STDOUT: %H.decl.loc36: %H.type.6826c6.2 = fn_decl @H.2 [concrete = constants.%H.8a6545.2] { // CHECK:STDOUT: %x.patt: = binding_pattern x // CHECK:STDOUT: %x.param_patt: = value_param_pattern %x.patt, call_param0 [concrete = ] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: = value_param call_param0 // CHECK:STDOUT: %x: = bind_name x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %I.decl: %I.type = fn_decl @I [concrete = constants.%I] {} {} -// CHECK:STDOUT: %.decl.loc46: %.type.b6a92a.4 = fn_decl @.4 [concrete = constants.%.d852be.4] { +// CHECK:STDOUT: %I.decl.loc38: %I.type.af49c4.1 = fn_decl @I.1 [concrete = constants.%I.58e4ec.1] {} {} +// CHECK:STDOUT: %I.decl.loc46: %I.type.af49c4.2 = fn_decl @I.2 [concrete = constants.%I.58e4ec.2] { // CHECK:STDOUT: %return.patt: %empty_tuple.type = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %empty_tuple.type = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -159,7 +159,7 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %J.decl: %J.type = fn_decl @J [concrete = constants.%J] { +// CHECK:STDOUT: %J.decl.loc48: %J.type.8e2c84.1 = fn_decl @J.1 [concrete = constants.%J.3662e8.1] { // CHECK:STDOUT: %return.patt: %empty_tuple.type = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %empty_tuple.type = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -168,8 +168,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc56: %.type.b6a92a.5 = fn_decl @.5 [concrete = constants.%.d852be.5] {} {} -// CHECK:STDOUT: %K.decl: %K.type = fn_decl @K [concrete = constants.%K] { +// CHECK:STDOUT: %J.decl.loc56: %J.type.8e2c84.2 = fn_decl @J.2 [concrete = constants.%J.3662e8.2] {} {} +// CHECK:STDOUT: %K.decl.loc58: %K.type.6cc1c5.1 = fn_decl @K.1 [concrete = constants.%K.460d95.1] { // CHECK:STDOUT: %return.patt: %empty_tuple.type = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %empty_tuple.type = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -178,7 +178,7 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc66: %.type.b6a92a.6 = fn_decl @.6 [concrete = constants.%.d852be.6] { +// CHECK:STDOUT: %K.decl.loc66: %K.type.6cc1c5.2 = fn_decl @K.2 [concrete = constants.%K.460d95.2] { // CHECK:STDOUT: %return.patt: %empty_struct_type = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %empty_struct_type = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -189,30 +189,30 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(); +// CHECK:STDOUT: fn @F.1(); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(%x.param_patt: %empty_tuple.type) { +// CHECK:STDOUT: fn @F.2(%x.param_patt: %empty_tuple.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%x.param_patt: %empty_tuple.type); +// CHECK:STDOUT: fn @G.1(%x.param_patt: %empty_tuple.type); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.2() { +// CHECK:STDOUT: fn @G.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @H(%x.param_patt: %empty_tuple.type); +// CHECK:STDOUT: fn @H.1(%x.param_patt: %empty_tuple.type); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.3(%x.param_patt: ) { +// CHECK:STDOUT: fn @H.2(%x.param_patt: ) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @I(); +// CHECK:STDOUT: fn @I.1(); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.4() -> %empty_tuple.type { +// CHECK:STDOUT: fn @I.2() -> %empty_tuple.type { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc46_24: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] @@ -220,16 +220,16 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: return %.loc46_25 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @J() -> %empty_tuple.type; +// CHECK:STDOUT: fn @J.1() -> %empty_tuple.type; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.5() { +// CHECK:STDOUT: fn @J.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @K() -> %empty_tuple.type; +// CHECK:STDOUT: fn @K.1() -> %empty_tuple.type; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.6() -> %empty_struct_type { +// CHECK:STDOUT: fn @K.2() -> %empty_struct_type { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc66_24: %empty_struct_type = struct_literal () // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] diff --git a/toolchain/check/testdata/function/definition/no_prelude/fail_redef.carbon b/toolchain/check/testdata/function/definition/no_prelude/fail_redef.carbon index 17cd21eeb969..344cebfcf11c 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/fail_redef.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/fail_redef.carbon @@ -21,26 +21,26 @@ fn F() {} // CHECK:STDOUT: --- fail_redef.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.c41931.1: %F.type.b25846.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41931.2: %F.type.b25846.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .F = %F.decl +// CHECK:STDOUT: .F = %F.decl.loc11 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %F.decl.loc11: %F.type.b25846.1 = fn_decl @F.1 [concrete = constants.%F.c41931.1] {} {} +// CHECK:STDOUT: %F.decl.loc19: %F.type.b25846.2 = fn_decl @F.2 [concrete = constants.%F.c41931.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() { +// CHECK:STDOUT: fn @F.1() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @F.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // 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 d90d4d7ac368..bcd1fa8bbbde 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/implicit_import.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/implicit_import.carbon @@ -303,14 +303,14 @@ fn B() {} // CHECK:STDOUT: --- fail_redef_after_def.impl.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.type: type = fn_type @A [concrete] -// CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %A.type.00d7e7.1: type = fn_type @A.1 [concrete] +// CHECK:STDOUT: %A.1db889.1: %A.type.00d7e7.1 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.00d7e7.2: type = fn_type @A.2 [concrete] +// CHECK:STDOUT: %A.1db889.2: %A.type.00d7e7.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.A: %A.type = import_ref Main//redef_after_def, A, loaded [concrete = constants.%A] +// CHECK:STDOUT: %Main.A: %A.type.00d7e7.1 = import_ref Main//redef_after_def, A, loaded [concrete = constants.%A.1db889.1] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -319,12 +319,12 @@ fn B() {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %A.decl: %A.type.00d7e7.2 = fn_decl @A.2 [concrete = constants.%A.1db889.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @A() [from "redef_after_def.carbon"]; +// CHECK:STDOUT: fn @A.1() [from "redef_after_def.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @A.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -353,8 +353,8 @@ fn B() {} // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %B.type: type = fn_type @B [concrete] +// CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -369,12 +369,12 @@ fn B() {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A() [from "def_alias.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @B() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } 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 d8cb96888433..16bd562582fd 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon @@ -296,19 +296,19 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] -// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.1: type = fn_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.1: %Foo.type.a02530.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.2: type = fn_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.2: %Foo.type.a02530.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.a02530.1 = fn_decl @Foo.1 [concrete = constants.%Foo.ddeb7d.1] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: } { @@ -316,7 +316,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = bind_name a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.a02530.2 = fn_decl @Foo.2 [concrete = constants.%Foo.ddeb7d.2] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: } { @@ -334,9 +334,9 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Foo(%a.param_patt: %C); +// CHECK:STDOUT: fn @Foo.1(%a.param_patt: %C); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(%a.param_patt: %C) { +// CHECK:STDOUT: fn @Foo.2(%a.param_patt: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -509,22 +509,22 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] -// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.1: type = fn_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.1: %Foo.type.a02530.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.2: type = fn_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.2: %Foo.type.a02530.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.a02530.1 = fn_decl @Foo.1 [concrete = constants.%Foo.ddeb7d.1] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: } { @@ -532,7 +532,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = bind_name a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.a02530.2 = fn_decl @Foo.2 [concrete = constants.%Foo.ddeb7d.2] { // CHECK:STDOUT: %b.patt: %C = binding_pattern b // CHECK:STDOUT: %b.param_patt: %C = value_param_pattern %b.patt, call_param0 // CHECK:STDOUT: } { @@ -550,9 +550,9 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Foo(%a.param_patt: %C); +// CHECK:STDOUT: fn @Foo.1(%a.param_patt: %C); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(%b.param_patt: %C) { +// CHECK:STDOUT: fn @Foo.2(%b.param_patt: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -563,22 +563,22 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] -// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.1: type = fn_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.1: %Foo.type.a02530.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.2: type = fn_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.2: %Foo.type.a02530.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.a02530.1 = fn_decl @Foo.1 [concrete = constants.%Foo.ddeb7d.1] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: } { @@ -586,7 +586,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = bind_name a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.a02530.2 = fn_decl @Foo.2 [concrete = constants.%Foo.ddeb7d.2] { // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: } { @@ -604,9 +604,9 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Foo(%a.param_patt: %C); +// CHECK:STDOUT: fn @Foo.1(%a.param_patt: %C); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(%a.param_patt: %C) { +// CHECK:STDOUT: fn @Foo.2(%a.param_patt: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -619,28 +619,28 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] -// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.1: type = fn_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.1: %Foo.type.a02530.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.2: type = fn_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.2: %Foo.type.a02530.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.a02530.1 = fn_decl @Foo.1 [concrete = constants.%Foo.ddeb7d.1] { // CHECK:STDOUT: %a.patt.loc7_8.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_8.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc7_8.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_8.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.a02530.2 = fn_decl @Foo.2 [concrete = constants.%Foo.ddeb7d.2] { // CHECK:STDOUT: %a.patt.loc15_8.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_8.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -656,14 +656,14 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Foo(%a.loc7_8.1: %C) { +// CHECK:STDOUT: generic fn @Foo.1(%a.loc7_8.1: %C) { // CHECK:STDOUT: %a.loc7_8.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_8.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc7_8.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_8.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%a.patt.loc7_8.1: %C](); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%a.loc15_8.1: %C) { +// CHECK:STDOUT: generic fn @Foo.2(%a.loc15_8.1: %C) { // CHECK:STDOUT: %a.loc15_8.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_8.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc15_8.2: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_8.2 (constants.%a.patt)] // CHECK:STDOUT: @@ -675,12 +675,12 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc7_8.2 => constants.%a // CHECK:STDOUT: %a.patt.loc7_8.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc15_8.2 => constants.%a // CHECK:STDOUT: %a.patt.loc15_8.2 => constants.%a // CHECK:STDOUT: } @@ -830,19 +830,19 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %const: type = const_type %C [concrete] -// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] -// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.1: type = fn_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.1: %Foo.type.a02530.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.a02530.2: type = fn_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.ddeb7d.2: %Foo.type.a02530.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.a02530.1 = fn_decl @Foo.1 [concrete = constants.%Foo.ddeb7d.1] { // CHECK:STDOUT: %a.patt: %const = binding_pattern a // CHECK:STDOUT: %a.param_patt: %const = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: } { @@ -853,7 +853,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a: %const = bind_name a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.a02530.2 = fn_decl @Foo.2 [concrete = constants.%Foo.ddeb7d.2] { // CHECK:STDOUT: %a.patt: %const = binding_pattern a // CHECK:STDOUT: %a.param_patt: %const = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: } { @@ -875,9 +875,9 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Foo(%a.param_patt: %const); +// CHECK:STDOUT: fn @Foo.1(%a.param_patt: %const); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(%a.param_patt: %const) { +// CHECK:STDOUT: fn @Foo.2(%a.param_patt: %const) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/redeclare.carbon b/toolchain/check/testdata/function/generic/redeclare.carbon index 79b3c0cfd09b..2d868b689f35 100644 --- a/toolchain/check/testdata/function/generic/redeclare.carbon +++ b/toolchain/check/testdata/function/generic/redeclare.carbon @@ -180,11 +180,11 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] // CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.c41931.1: %F.type.b25846.1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b51: type = ptr_type %U [symbolic] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41931.2: %F.type.b25846.2 = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.b51 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -198,66 +198,66 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .F = %F.decl +// CHECK:STDOUT: .F = %F.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { +// CHECK:STDOUT: %F.decl.loc4: %F.type.b25846.1 = fn_decl @F.1 [concrete = constants.%F.c41931.1] { // CHECK:STDOUT: %T.patt.loc4_6.1: type = symbolic_binding_pattern T, 0 [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: %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, call_param0 +// CHECK:STDOUT: %return.patt: @F.1.%ptr.loc4_30.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.1.%ptr.loc4_30.2 (%ptr.79f) = out_param_pattern %return.patt, call_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.79f)] // CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] // CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.79f) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.1.%ptr.loc4_30.2 (%ptr.79f) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.1.%ptr.loc4_30.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %F.decl.loc13: %F.type.b25846.2 = fn_decl @F.2 [concrete = constants.%F.c41931.2] { // CHECK:STDOUT: %T.patt.loc13_6.1: type = symbolic_binding_pattern T, 0 [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: %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, call_param0 +// CHECK:STDOUT: %return.patt: @F.2.%ptr.loc13_30.2 (%ptr.b51) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.2.%ptr.loc13_30.2 (%ptr.b51) = out_param_pattern %return.patt, call_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.b51)] // CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.2 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.b51) = out_param call_param0 -// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.b51) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.2.%ptr.loc13_30.2 (%ptr.b51) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.2.%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: generic fn @F.1(%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)] // 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.79f)] +// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type @F.1.%T.loc4_6.2 (%T) [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.patt.loc4_6.1: type, %U.patt.loc4_16.1: type) -> @F.%ptr.loc4_30.2 (%ptr.79f); +// CHECK:STDOUT: fn(%T.patt.loc4_6.1: type, %U.patt.loc4_16.1: type) -> @F.1.%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) { +// CHECK:STDOUT: generic fn @F.2(%T.loc13_6.1: type, %U.loc13_16.1: type) { // CHECK:STDOUT: %T.loc13_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] // 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.b51)] +// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type @F.2.%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.b51) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.2.%ptr.loc13_30.2 (%ptr.b51) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.patt.loc13_6.1: type, %U.patt.loc13_16.1: type) -> @.1.%ptr.loc13_30.2 (%ptr.b51) { +// CHECK:STDOUT: fn(%T.patt.loc13_6.1: type, %U.patt.loc13_16.1: type) -> @F.2.%ptr.loc13_30.2 (%ptr.b51) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type.b25846.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.c41931.1] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T, constants.%U) { +// CHECK:STDOUT: specific @F.1(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc4_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc4_6.2 => constants.%T // CHECK:STDOUT: %U.loc4_16.2 => constants.%U @@ -265,7 +265,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T, constants.%U) { +// CHECK:STDOUT: specific @F.2(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc13_6.2 => constants.%T // CHECK:STDOUT: %T.patt.loc13_6.2 => constants.%T // CHECK:STDOUT: %U.loc13_16.2 => constants.%U @@ -281,15 +281,15 @@ fn F(U:! type, T:! type) -> U* { // 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 [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.c41931.1: %F.type.b25846.1 = struct_value () [concrete] // 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 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41931.2: %F.type.b25846.2 = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.b51 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -303,66 +303,66 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .F = %F.decl +// CHECK:STDOUT: .F = %F.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { +// CHECK:STDOUT: %F.decl.loc4: %F.type.b25846.1 = fn_decl @F.1 [concrete = constants.%F.c41931.1] { // 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: %U.patt.loc4_16.1: type = symbolic_binding_pattern U, 1 [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, call_param0 +// CHECK:STDOUT: %return.patt: @F.1.%ptr.loc4_30.2 (%ptr.79f) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.1.%ptr.loc4_30.2 (%ptr.79f) = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { // 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.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] // CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.336)] -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.79f) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.1.%ptr.loc4_30.2 (%ptr.79f) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.1.%ptr.loc4_30.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %F.decl.loc13: %F.type.b25846.2 = fn_decl @F.2 [concrete = constants.%F.c41931.2] { // 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: %T.patt.loc13_16.1: type = symbolic_binding_pattern T, 1 [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, call_param0 +// CHECK:STDOUT: %return.patt: @F.2.%ptr.loc13_30.2 (%ptr.b51) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.2.%ptr.loc13_30.2 (%ptr.b51) = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { // 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.loc13_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.8b3)] // CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.336)] -// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.b51) = out_param call_param0 -// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.b51) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.2.%ptr.loc13_30.2 (%ptr.b51) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.2.%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: generic fn @F.1(%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.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: %ptr.loc4_30.2: type = ptr_type @F.1.%T.loc4_6.2 (%T.8b3) [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.patt.loc4_6.1: type, %U.patt.loc4_16.1: type) -> @F.%ptr.loc4_30.2 (%ptr.79f); +// CHECK:STDOUT: fn(%T.patt.loc4_6.1: type, %U.patt.loc4_16.1: type) -> @F.1.%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: generic fn @F.2(%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.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: %ptr.loc13_30.2: type = ptr_type @F.2.%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.b51) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.2.%ptr.loc13_30.2 (%ptr.b51) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.patt.loc13_6.1: type, %T.patt.loc13_16.1: type) -> @.1.%ptr.loc13_30.2 (%ptr.b51) { +// CHECK:STDOUT: fn(%U.patt.loc13_6.1: type, %T.patt.loc13_16.1: type) -> @F.2.%ptr.loc13_30.2 (%ptr.b51) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type.b25846.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.c41931.1] // 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.8b3, constants.%U.336) { +// CHECK:STDOUT: specific @F.1(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 @@ -370,7 +370,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%U.8b3, constants.%T.336) { +// CHECK:STDOUT: specific @F.2(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 @@ -386,15 +386,15 @@ fn F(U:! type, T:! type) -> U* { // 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 [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.c41931.1: %F.type.b25846.1 = struct_value () [concrete] // 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 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25846.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41931.2: %F.type.b25846.2 = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.79f131.2 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -408,66 +408,66 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .F = %F.decl +// CHECK:STDOUT: .F = %F.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { +// CHECK:STDOUT: %F.decl.loc4: %F.type.b25846.1 = fn_decl @F.1 [concrete = constants.%F.c41931.1] { // 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: %U.patt.loc4_16.1: type = symbolic_binding_pattern U, 1 [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, call_param0 +// CHECK:STDOUT: %return.patt: @F.1.%ptr.loc4_30.2 (%ptr.79f131.1) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.1.%ptr.loc4_30.2 (%ptr.79f131.1) = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { // 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.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] // CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.336)] -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_30.2 (%ptr.79f131.1) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.%ptr.loc4_30.2 (%ptr.79f131.1) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.1.%ptr.loc4_30.2 (%ptr.79f131.1) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.1.%ptr.loc4_30.2 (%ptr.79f131.1) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %F.decl.loc13: %F.type.b25846.2 = fn_decl @F.2 [concrete = constants.%F.c41931.2] { // 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: %T.patt.loc13_16.1: type = symbolic_binding_pattern T, 1 [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, call_param0 +// CHECK:STDOUT: %return.patt: @F.2.%ptr.loc13_30.2 (%ptr.79f131.2) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.2.%ptr.loc13_30.2 (%ptr.79f131.2) = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { // 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.loc13_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.8b3)] // CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.336)] -// CHECK:STDOUT: %return.param: ref @.1.%ptr.loc13_30.2 (%ptr.79f131.2) = out_param call_param0 -// CHECK:STDOUT: %return: ref @.1.%ptr.loc13_30.2 (%ptr.79f131.2) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.2.%ptr.loc13_30.2 (%ptr.79f131.2) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.2.%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: generic fn @F.1(%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.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: %ptr.loc4_30.2: type = ptr_type @F.1.%T.loc4_6.2 (%T.8b3) [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f131.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.patt.loc4_6.1: type, %U.patt.loc4_16.1: type) -> @F.%ptr.loc4_30.2 (%ptr.79f131.1); +// CHECK:STDOUT: fn(%T.patt.loc4_6.1: type, %U.patt.loc4_16.1: type) -> @F.1.%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: generic fn @F.2(%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.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: %ptr.loc13_30.2: type = ptr_type @F.2.%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.79f131.2) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.2.%ptr.loc13_30.2 (%ptr.79f131.2) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.patt.loc13_6.1: type, %T.patt.loc13_16.1: type) -> @.1.%ptr.loc13_30.2 (%ptr.79f131.2) { +// CHECK:STDOUT: fn(%U.patt.loc13_6.1: type, %T.patt.loc13_16.1: type) -> @F.2.%ptr.loc13_30.2 (%ptr.79f131.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] +// CHECK:STDOUT: %F.ref: %F.type.b25846.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.c41931.1] // 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.8b3, constants.%U.336) { +// CHECK:STDOUT: specific @F.1(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 @@ -475,7 +475,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f131.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%U.8b3, constants.%T.336) { +// CHECK:STDOUT: specific @F.2(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 diff --git a/toolchain/check/testdata/generic/local.carbon b/toolchain/check/testdata/generic/local.carbon index 4178f0fb9433..6e380caa4f9b 100644 --- a/toolchain/check/testdata/generic/local.carbon +++ b/toolchain/check/testdata/generic/local.carbon @@ -185,11 +185,11 @@ class C(C:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %C: type = bind_symbolic_name C, 0 [symbolic] +// CHECK:STDOUT: %C.8b3: type = bind_symbolic_name C, 0 [symbolic] // CHECK:STDOUT: %C.patt: type = symbolic_binding_pattern C, 0 [symbolic] -// CHECK:STDOUT: %.type: type = generic_class_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type = struct_value () [concrete] -// CHECK:STDOUT: %.de1: type = class_type @.1, @.1(%C) [symbolic] +// CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] +// CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] +// CHECK:STDOUT: %C.f06: type = class_type @C, @C(%C.8b3) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -210,8 +210,8 @@ class C(C:! type) { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%C.loc13_11.1: type) { -// CHECK:STDOUT: %C.loc13_11.2: type = bind_symbolic_name C, 0 [symbolic = %C.loc13_11.2 (constants.%C)] +// CHECK:STDOUT: generic class @C(%C.loc13_11.1: type) { +// CHECK:STDOUT: %C.loc13_11.2: type = bind_symbolic_name C, 0 [symbolic = %C.loc13_11.2 (constants.%C.8b3)] // CHECK:STDOUT: %C.patt.loc13_11.2: type = symbolic_binding_pattern C, 0 [symbolic = %C.patt.loc13_11.2 (constants.%C.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -221,23 +221,23 @@ class C(C:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%.de1 +// CHECK:STDOUT: .Self = constants.%C.f06 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.decl: %.type = class_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %C.patt.loc13_11.1: type = symbolic_binding_pattern C, 0 [symbolic = %C.patt.loc13_11.2 (constants.%C.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.loc13_11.1: type = bind_symbolic_name C, 0 [symbolic = %C.loc13_11.2 (constants.%C)] +// CHECK:STDOUT: %C.loc13_11.1: type = bind_symbolic_name C, 0 [symbolic = %C.loc13_11.2 (constants.%C.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%C) { -// CHECK:STDOUT: %C.loc13_11.2 => constants.%C -// CHECK:STDOUT: %C.patt.loc13_11.2 => constants.%C +// CHECK:STDOUT: specific @C(constants.%C.8b3) { +// CHECK:STDOUT: %C.loc13_11.2 => constants.%C.8b3 +// CHECK:STDOUT: %C.patt.loc13_11.2 => constants.%C.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nonlocal_param_shadows_class.carbon 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 8890f2990707..969fca5d3318 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 @@ -69,19 +69,19 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete] // CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.1ad64d.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.5d382e.1: %F.type.1ad64d.1 = struct_value () [concrete] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type %Interface.type [concrete] // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.%F.decl [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %G.type: type = fn_type @G [concrete] -// CHECK:STDOUT: %G: %G.type = struct_value () [concrete] +// CHECK:STDOUT: %G.type.ef383d.1: type = fn_type @G.1 [concrete] +// CHECK:STDOUT: %G.362a5a.1: %G.type.ef383d.1 = struct_value () [concrete] // CHECK:STDOUT: %assoc1: %Interface.assoc_type = assoc_entity element1, @Interface.%G.decl [concrete] -// CHECK:STDOUT: %.type.136624.1: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.563abc.1: %.type.136624.1 = struct_value () [concrete] -// CHECK:STDOUT: %.type.136624.2: type = fn_type @.2 [concrete] -// CHECK:STDOUT: %.563abc.2: %.type.136624.2 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.1ad64d.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.5d382e.2: %F.type.1ad64d.2 = struct_value () [concrete] +// CHECK:STDOUT: %G.type.ef383d.2: type = fn_type @G.2 [concrete] +// CHECK:STDOUT: %G.362a5a.2: %G.type.ef383d.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -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 [concrete = constants.%Interface.type] {} {} -// CHECK:STDOUT: %.decl.loc23: %.type.136624.1 = fn_decl @.1 [concrete = constants.%.563abc.1] {} {} -// CHECK:STDOUT: %.decl.loc32: %.type.136624.2 = fn_decl @.2 [concrete = constants.%.563abc.2] { +// CHECK:STDOUT: %F.decl: %F.type.1ad64d.2 = fn_decl @F.2 [concrete = constants.%F.5d382e.2] {} {} +// CHECK:STDOUT: %G.decl: %G.type.ef383d.2 = fn_decl @G.2 [concrete = constants.%G.362a5a.2] { // CHECK:STDOUT: %a.patt: %i32 = binding_pattern a // CHECK:STDOUT: %a.param_patt: %i32 = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: %b.patt: %i32 = binding_pattern b @@ -129,9 +129,9 @@ 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: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} +// CHECK:STDOUT: %F.decl: %F.type.1ad64d.1 = fn_decl @F.1 [concrete = constants.%F.5d382e.1] {} {} // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] -// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { +// CHECK:STDOUT: %G.decl: %G.type.ef383d.1 = fn_decl @G.1 [concrete = constants.%G.362a5a.1] { // CHECK:STDOUT: %a.patt: %i32 = binding_pattern a // CHECK:STDOUT: %a.param_patt: %i32 = value_param_pattern %a.patt, call_param0 // CHECK:STDOUT: %b.patt: %i32 = binding_pattern b @@ -165,15 +165,15 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: witness = (%F.decl, %G.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Interface.%Self: %Interface.type) { +// CHECK:STDOUT: generic fn @F.1(@Interface.%Self: %Interface.type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@Interface.%Self: %Interface.type) { +// CHECK:STDOUT: generic fn @G.1(@Interface.%Self: %Interface.type) { // CHECK:STDOUT: fn(%a.param_patt: %i32, %b.param_patt: %i32) -> %i32; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(@Interface.%Self: %Interface.type) { +// CHECK:STDOUT: generic fn @F.2(@Interface.%Self: %Interface.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -182,19 +182,19 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.2(@Interface.%Self: %Interface.type) { +// CHECK:STDOUT: generic fn @G.2(@Interface.%Self: %Interface.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn(%a.param_patt: %i32, %b.param_patt: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self) {} +// CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%Self) {} +// CHECK:STDOUT: specific @G.1(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%Self) {} +// CHECK:STDOUT: specific @F.2(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.2(constants.%Self) {} +// CHECK:STDOUT: specific @G.2(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- dependent_return_type.carbon // 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 993ee328aa47..a3a645de700d 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 @@ -44,10 +44,10 @@ interface Outer { // CHECK:STDOUT: %Inner.type.428: type = facet_type <@Inner> [concrete] // 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: %F.type.82c77c.1: type = fn_type @F.2, @Inner(%Self.277) [symbolic] +// CHECK:STDOUT: %F.9789e2.1: %F.type.82c77c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %F.type.82c77c.2: type = fn_type @F.3, @Inner(%Self.277) [symbolic] +// CHECK:STDOUT: %F.9789e2.2: %F.type.82c77c.2 = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -72,7 +72,7 @@ interface Outer { // CHECK:STDOUT: interface @Outer { // CHECK:STDOUT: %Self: %Outer.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.277] // CHECK:STDOUT: %Inner.decl: type = interface_decl @Inner [concrete = constants.%Inner.type.428] {} {} -// CHECK:STDOUT: %F.decl: %F.type.82c = fn_decl @F.2 [symbolic = constants.%F.978] {} {} +// CHECK:STDOUT: %F.decl: %F.type.82c77c.2 = fn_decl @F.3 [symbolic = constants.%F.9789e2.2] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -85,12 +85,12 @@ interface Outer { // 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.%.f3b)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @Inner(%Self.2) [symbolic = %F.type (constants.%F.type.82c77c.1)] +// CHECK:STDOUT: %F: @Inner.%F.type (%F.type.82c77c.1) = struct_value () [symbolic = %F (constants.%F.9789e2.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // 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: %F.decl: @Inner.%F.type (%F.type.82c77c.1) = fn_decl @F.2 [symbolic = @Inner.%F (constants.%F.9789e2.1)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -108,11 +108,11 @@ 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.3d8)) { +// CHECK:STDOUT: generic fn @F.2(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type.3d8)) { // 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.3d8)) { +// CHECK:STDOUT: generic fn @F.3(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type.3d8)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -123,13 +123,13 @@ interface Outer { // 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.%.f3b +// CHECK:STDOUT: %F.type => constants.%F.type.82c77c.1 +// CHECK:STDOUT: %F => constants.%F.9789e2.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.277, constants.%Self.b60) {} // CHECK:STDOUT: +// CHECK:STDOUT: specific @Inner(%Self.2) {} +// CHECK:STDOUT: +// CHECK:STDOUT: specific @F.3(constants.%Self.277, constants.%Self.b60) {} +// CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_definition_imported.carbon b/toolchain/check/testdata/interface/no_prelude/fail_definition_imported.carbon index f0966bcfb434..e4b47d839b9d 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_definition_imported.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_definition_imported.carbon @@ -47,13 +47,13 @@ interface I {} // CHECK:STDOUT: --- fail_b.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %.type: type = facet_type <@.1> [concrete] -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %I.type.733a85.1: type = facet_type <@I.1> [concrete] +// CHECK:STDOUT: %I.type.733a85.2: type = facet_type <@I.2> [concrete] +// CHECK:STDOUT: %Self: %I.type.733a85.2 = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.I: type = import_ref Main//a, I, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %Main.I: type = import_ref Main//a, I, loaded [concrete = constants.%I.type.733a85.1] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -61,13 +61,13 @@ interface I {} // CHECK:STDOUT: .I = imports.%Main.I // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %.decl: type = interface_decl @.1 [concrete = constants.%.type] {} {} +// CHECK:STDOUT: %I.decl: type = interface_decl @I.2 [concrete = constants.%I.type.733a85.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: interface @I [from "a.carbon"]; +// CHECK:STDOUT: interface @I.1 [from "a.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: interface @.1 { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] +// CHECK:STDOUT: interface @I.2 { +// CHECK:STDOUT: %Self: %I.type.733a85.2 = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self diff --git a/toolchain/check/testdata/interface/no_prelude/fail_duplicate.carbon b/toolchain/check/testdata/interface/no_prelude/fail_duplicate.carbon index 11382a4c8e50..9ac0bc59b368 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_duplicate.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_duplicate.carbon @@ -73,36 +73,36 @@ interface Class { } // CHECK:STDOUT: --- fail_redefine_without_dependents.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete] -// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %.type: type = facet_type <@.1> [concrete] -// CHECK:STDOUT: %Self.86e: %.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Interface.type.d726c6.1: type = facet_type <@Interface.1> [concrete] +// CHECK:STDOUT: %Self.719cbb.1: %Interface.type.d726c6.1 = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Interface.type.d726c6.2: type = facet_type <@Interface.2> [concrete] +// CHECK:STDOUT: %Self.719cbb.2: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.assoc_type: type = assoc_entity_type %.type [concrete] -// CHECK:STDOUT: %assoc0: %.assoc_type = assoc_entity element0, @.1.%F.decl [concrete] +// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type %Interface.type.d726c6.2 [concrete] +// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.2.%F.decl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Interface = %Interface.decl +// CHECK:STDOUT: .Interface = %Interface.decl.loc4 // CHECK:STDOUT: } -// CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {} -// CHECK:STDOUT: %.decl: type = interface_decl @.1 [concrete = constants.%.type] {} {} +// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.1 [concrete = constants.%Interface.type.d726c6.1] {} {} +// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.2 [concrete = constants.%Interface.type.d726c6.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719] +// CHECK:STDOUT: interface @Interface.1 { +// CHECK:STDOUT: %Self: %Interface.type.d726c6.1 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719cbb.1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: interface @.1 { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.86e] +// CHECK:STDOUT: interface @Interface.2 { +// CHECK:STDOUT: %Self: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719cbb.2] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: %assoc0: %.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] +// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -110,57 +110,57 @@ interface Class { } // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@.1.%Self: %.type) { +// CHECK:STDOUT: generic fn @F(@Interface.2.%Self: %Interface.type.d726c6.2) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self.86e) {} +// CHECK:STDOUT: specific @F(constants.%Self.719cbb.2) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_redefine_with_dependents.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete] -// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %.type: type = facet_type <@.1> [concrete] -// 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: %Interface.type.d726c6.1: type = facet_type <@Interface.1> [concrete] +// CHECK:STDOUT: %Self.719cbb.1: %Interface.type.d726c6.1 = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Interface.type.d726c6.2: type = facet_type <@Interface.2> [concrete] +// CHECK:STDOUT: %Self.719cbb.2: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.719cbb.2 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.assoc_type: type = assoc_entity_type %.type [concrete] -// CHECK:STDOUT: %assoc0: %.assoc_type = assoc_entity element0, @.1.%F.decl [concrete] +// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type %Interface.type.d726c6.2 [concrete] +// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.2.%F.decl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Interface = %Interface.decl +// CHECK:STDOUT: .Interface = %Interface.decl.loc4 // CHECK:STDOUT: } -// CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {} -// CHECK:STDOUT: %.decl: type = interface_decl @.1 [concrete = constants.%.type] {} {} +// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.1 [concrete = constants.%Interface.type.d726c6.1] {} {} +// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.2 [concrete = constants.%Interface.type.d726c6.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719] +// CHECK:STDOUT: interface @Interface.1 { +// CHECK:STDOUT: %Self: %Interface.type.d726c6.1 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719cbb.1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: interface @.1 { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.86e] +// CHECK:STDOUT: interface @Interface.2 { +// CHECK:STDOUT: %Self: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719cbb.2] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = 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, call_param0 // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @F.%Self.as_type.loc14_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %Self.ref: %.type = name_ref Self, @.1.%Self [symbolic = %Self (constants.%Self.86e)] +// CHECK:STDOUT: %Self.ref: %Interface.type.d726c6.2 = name_ref Self, @Interface.2.%Self [symbolic = %Self (constants.%Self.719cbb.2)] // CHECK:STDOUT: %Self.as_type.loc14_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc14_14.2: type = converted %Self.ref, %Self.as_type.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.%Self.as_type.loc14_14.1 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] +// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -168,61 +168,61 @@ interface Class { } // CHECK:STDOUT: witness = (%F.decl) // 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.86e)] +// CHECK:STDOUT: generic fn @F(@Interface.2.%Self: %Interface.type.d726c6.2) { +// CHECK:STDOUT: %Self: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.719cbb.2)] // CHECK:STDOUT: %Self.as_type.loc14_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: // 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.86e) { -// CHECK:STDOUT: %Self => constants.%Self.86e +// CHECK:STDOUT: specific @F(constants.%Self.719cbb.2) { +// CHECK:STDOUT: %Self => constants.%Self.719cbb.2 // CHECK:STDOUT: %Self.as_type.loc14_14.1 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_name_conflict_with_fn.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Function.type: type = fn_type @Function [concrete] -// CHECK:STDOUT: %Function: %Function.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = facet_type <@.1> [concrete] +// CHECK:STDOUT: %Function.type.b14: type = fn_type @Function.1 [concrete] +// CHECK:STDOUT: %Function: %Function.type.b14 = struct_value () [concrete] +// CHECK:STDOUT: %Function.type.f90: type = facet_type <@Function.2> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Function = %Function.decl +// CHECK:STDOUT: .Function = %Function.decl.loc4 // CHECK:STDOUT: } -// CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [concrete = constants.%Function] {} {} -// CHECK:STDOUT: %.decl: type = interface_decl @.1 [concrete = constants.%.type] {} {} +// CHECK:STDOUT: %Function.decl.loc4: %Function.type.b14 = fn_decl @Function.1 [concrete = constants.%Function] {} {} +// CHECK:STDOUT: %Function.decl.loc13: type = interface_decl @Function.2 [concrete = constants.%Function.type.f90] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: interface @.1; +// CHECK:STDOUT: interface @Function.2; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Function(); +// CHECK:STDOUT: fn @Function.1(); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_name_conflict_with_class.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %.type: type = facet_type <@.1> [concrete] -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class.1 [concrete] +// CHECK:STDOUT: %Class.type: type = facet_type <@Class.2> [concrete] +// CHECK:STDOUT: %Self: %Class.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Class = %Class.decl +// CHECK:STDOUT: .Class = %Class.decl.loc2 // CHECK:STDOUT: } -// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} -// CHECK:STDOUT: %.decl: type = interface_decl @.1 [concrete = constants.%.type] {} {} +// CHECK:STDOUT: %Class.decl.loc2: type = class_decl @Class.1 [concrete = constants.%Class] {} {} +// CHECK:STDOUT: %Class.decl.loc11: type = interface_decl @Class.2 [concrete = constants.%Class.type] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: interface @.1 { -// CHECK:STDOUT: %Self: %.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] +// CHECK:STDOUT: interface @Class.2 { +// CHECK:STDOUT: %Self: %Class.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: class @Class; +// CHECK:STDOUT: class @Class.1; // 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 cf3aef724244..12992be99e4c 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon @@ -41,52 +41,52 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: --- fail_generic_redeclaration.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric> [concrete] +// CHECK:STDOUT: %NotGeneric.type.10e: type = facet_type <@NotGeneric.1> [concrete] // 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 [concrete] +// CHECK:STDOUT: %NotGeneric.type.93b: type = generic_interface_type @NotGeneric.2 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.generic.0a9e18.1: %.type.abf52e.1 = struct_value () [concrete] -// 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 [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.4ea: type = facet_type <@.2> [concrete] -// CHECK:STDOUT: %Self.86e: %.type.4ea = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %DifferentParams.type: type = generic_interface_type @DifferentParams [concrete] -// CHECK:STDOUT: %DifferentParams.generic: %DifferentParams.type = struct_value () [concrete] +// CHECK:STDOUT: %NotGeneric.generic: %NotGeneric.type.93b = struct_value () [concrete] +// CHECK:STDOUT: %NotGeneric.type.8cb: type = facet_type <@NotGeneric.2, @NotGeneric.2(%T.8b3)> [symbolic] +// CHECK:STDOUT: %Self.c08: %NotGeneric.type.8cb = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.type.c21: type = generic_interface_type @Generic.1 [concrete] +// CHECK:STDOUT: %Generic.generic: %Generic.type.c21 = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.c99: type = facet_type <@Generic.2> [concrete] +// CHECK:STDOUT: %Self.5ae: %Generic.type.c99 = bind_symbolic_name Self, 0 [symbolic] +// CHECK:STDOUT: %DifferentParams.type.d40e5c.1: type = generic_interface_type @DifferentParams.1 [concrete] +// CHECK:STDOUT: %DifferentParams.generic.d33670.1: %DifferentParams.type.d40e5c.1 = struct_value () [concrete] // 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 [concrete] -// CHECK:STDOUT: %.generic.0a9e18.2: %.type.abf52e.2 = struct_value () [concrete] -// 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: %DifferentParams.type.d40e5c.2: type = generic_interface_type @DifferentParams.2 [concrete] +// CHECK:STDOUT: %DifferentParams.generic.d33670.2: %DifferentParams.type.d40e5c.2 = struct_value () [concrete] +// CHECK:STDOUT: %DifferentParams.type.12c: type = facet_type <@DifferentParams.2, @DifferentParams.2(%T.7a6)> [symbolic] +// CHECK:STDOUT: %Self.8d7: %DifferentParams.type.12c = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .NotGeneric = %NotGeneric.decl -// CHECK:STDOUT: .Generic = %Generic.decl -// CHECK:STDOUT: .DifferentParams = %DifferentParams.decl +// CHECK:STDOUT: .NotGeneric = %NotGeneric.decl.loc11 +// CHECK:STDOUT: .Generic = %Generic.decl.loc21 +// CHECK:STDOUT: .DifferentParams = %DifferentParams.decl.loc31 // CHECK:STDOUT: } -// CHECK:STDOUT: %NotGeneric.decl: type = interface_decl @NotGeneric [concrete = constants.%NotGeneric.type] {} {} -// CHECK:STDOUT: %.decl.loc19: %.type.abf52e.1 = interface_decl @.1 [concrete = constants.%.generic.0a9e18.1] { +// CHECK:STDOUT: %NotGeneric.decl.loc11: type = interface_decl @NotGeneric.1 [concrete = constants.%NotGeneric.type.10e] {} {} +// CHECK:STDOUT: %NotGeneric.decl.loc19: %NotGeneric.type.93b = interface_decl @NotGeneric.2 [concrete = constants.%NotGeneric.generic] { // 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: } { // CHECK:STDOUT: %T.loc19_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_22.2 (constants.%T.8b3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Generic.decl: %Generic.type = interface_decl @Generic [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl.loc21: %Generic.type.c21 = interface_decl @Generic.1 [concrete = 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.e01)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc21_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_19.2 (constants.%T.8b3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc29: type = interface_decl @.2 [concrete = constants.%.type.4ea] {} {} -// CHECK:STDOUT: %DifferentParams.decl: %DifferentParams.type = interface_decl @DifferentParams [concrete = constants.%DifferentParams.generic] { +// CHECK:STDOUT: %Generic.decl.loc29: type = interface_decl @Generic.2 [concrete = constants.%Generic.type.c99] {} {} +// CHECK:STDOUT: %DifferentParams.decl.loc31: %DifferentParams.type.d40e5c.1 = interface_decl @DifferentParams.1 [concrete = constants.%DifferentParams.generic.d33670.1] { // 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: } { // CHECK:STDOUT: %T.loc31_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc31_27.2 (constants.%T.8b3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc39: %.type.abf52e.2 = interface_decl @.3 [concrete = constants.%.generic.0a9e18.2] { +// CHECK:STDOUT: %DifferentParams.decl.loc39: %DifferentParams.type.d40e5c.2 = interface_decl @DifferentParams.2 [concrete = constants.%DifferentParams.generic.d33670.2] { // CHECK:STDOUT: %T.patt.loc39_27.1: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc39_27.2 (constants.%T.patt.e60)] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc39_32.1: type = splice_block %.loc39_32.3 [concrete = constants.%empty_tuple.type] { @@ -97,18 +97,18 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: interface @NotGeneric; +// CHECK:STDOUT: interface @NotGeneric.1; // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%T.loc19_22.1: type) { +// CHECK:STDOUT: generic interface @NotGeneric.2(%T.loc19_22.1: type) { // 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.eb3)] -// CHECK:STDOUT: %Self.2: %.type.eb3 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.037)] +// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric.2, @NotGeneric.2(%T.loc19_22.2)> [symbolic = %NotGeneric.type (constants.%NotGeneric.type.8cb)] +// CHECK:STDOUT: %Self.2: %NotGeneric.type.8cb = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c08)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.eb3) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.037)] +// CHECK:STDOUT: %Self.1: @NotGeneric.2.%NotGeneric.type (%NotGeneric.type.8cb) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c08)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -116,38 +116,38 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic(%T.loc21_19.1: type) { +// CHECK:STDOUT: generic interface @Generic.1(%T.loc21_19.1: type) { // 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.86e] +// CHECK:STDOUT: interface @Generic.2 { +// CHECK:STDOUT: %Self: %Generic.type.c99 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.5ae] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @DifferentParams(%T.loc31_27.1: type) { +// CHECK:STDOUT: generic interface @DifferentParams.1(%T.loc31_27.1: type) { // 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.loc39_27.1: %empty_tuple.type) { +// CHECK:STDOUT: generic interface @DifferentParams.2(%T.loc39_27.1: %empty_tuple.type) { // CHECK:STDOUT: %T.loc39_27.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc39_27.2 (constants.%T.7a6)] // CHECK:STDOUT: %T.patt.loc39_27.2: %empty_tuple.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc39_27.2 (constants.%T.patt.e60)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.3, @.3(%T.loc39_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: %DifferentParams.type: type = facet_type <@DifferentParams.2, @DifferentParams.2(%T.loc39_27.2)> [symbolic = %DifferentParams.type (constants.%DifferentParams.type.12c)] +// CHECK:STDOUT: %Self.2: %DifferentParams.type.12c = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.8d7)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.3.%.type (%.type.b4a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.bb6)] +// CHECK:STDOUT: %Self.1: @DifferentParams.2.%DifferentParams.type (%DifferentParams.type.12c) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.8d7)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -155,27 +155,27 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T.8b3) { +// CHECK:STDOUT: specific @NotGeneric.2(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: specific @NotGeneric.2(%T.loc19_22.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic(constants.%T.8b3) { +// CHECK:STDOUT: specific @Generic.1(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.8b3) { +// CHECK:STDOUT: specific @DifferentParams.1(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.7a6) { +// CHECK:STDOUT: specific @DifferentParams.2(constants.%T.7a6) { // CHECK:STDOUT: %T.loc39_27.2 => constants.%T.7a6 // CHECK:STDOUT: %T.patt.loc39_27.2 => constants.%T.7a6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.3(%T.loc39_27.2) {} +// CHECK:STDOUT: specific @DifferentParams.2(%T.loc39_27.2) {} // CHECK:STDOUT: 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 5eeaeba70814..e0fd8af31741 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_lookup_undefined.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_lookup_undefined.carbon @@ -50,8 +50,8 @@ interface BeingDefined { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Undefined.type: type = facet_type <@Undefined> [concrete] -// CHECK:STDOUT: %.type.b6a: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type.b6a = struct_value () [concrete] +// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] +// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] // CHECK:STDOUT: %BeingDefined.type: type = facet_type <@BeingDefined> [concrete] @@ -60,8 +60,8 @@ interface BeingDefined { // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %BeingDefined.assoc_type: type = assoc_entity_type %BeingDefined.type [concrete] // CHECK:STDOUT: %assoc0: %BeingDefined.assoc_type = assoc_entity element0, @BeingDefined.%H.decl [concrete] -// CHECK:STDOUT: %.type.5fb: type = fn_type @.2 [concrete] -// CHECK:STDOUT: %.b15: %.type.5fb = struct_value () [concrete] +// CHECK:STDOUT: %I.type: type = fn_type @I [concrete] +// CHECK:STDOUT: %I: %I.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -71,7 +71,7 @@ interface BeingDefined { // CHECK:STDOUT: .BeingDefined = %BeingDefined.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Undefined.decl: type = interface_decl @Undefined [concrete = constants.%Undefined.type] {} {} -// CHECK:STDOUT: %.decl: %.type.b6a = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] {} {} // CHECK:STDOUT: %BeingDefined.decl: type = interface_decl @BeingDefined [concrete = constants.%BeingDefined.type] {} {} // CHECK:STDOUT: } @@ -90,7 +90,7 @@ interface BeingDefined { // CHECK:STDOUT: %return: ref = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %BeingDefined.assoc_type = assoc_entity element0, %H.decl [concrete = constants.%assoc0] -// CHECK:STDOUT: %.decl: %.type.5fb = fn_decl @.2 [concrete = constants.%.b15] {} {} +// CHECK:STDOUT: %I.decl: %I.type = fn_decl @I [concrete = constants.%I] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -99,7 +99,7 @@ interface BeingDefined { // CHECK:STDOUT: witness = (%H.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(); +// CHECK:STDOUT: fn @F(); // CHECK:STDOUT: // CHECK:STDOUT: fn @Test() { // CHECK:STDOUT: !entry: @@ -112,11 +112,11 @@ interface BeingDefined { // CHECK:STDOUT: fn() -> ; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.2(@BeingDefined.%Self: %BeingDefined.type) { +// CHECK:STDOUT: generic fn @I(@BeingDefined.%Self: %BeingDefined.type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.2(constants.%Self) {} +// CHECK:STDOUT: specific @I(constants.%Self) {} // CHECK:STDOUT: 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 1d790441abe1..e209903a259d 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_redeclare_member.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_redeclare_member.carbon @@ -25,12 +25,12 @@ interface Interface { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete] // CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.1ad64d.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.5d382e.1: %F.type.1ad64d.1 = struct_value () [concrete] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type %Interface.type [concrete] -// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.%F.decl [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.563: %.type = struct_value () [concrete] +// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.%F.decl.loc12 [concrete] +// CHECK:STDOUT: %F.type.1ad64d.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.5d382e.2: %F.type.1ad64d.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -42,25 +42,25 @@ interface Interface { // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { // CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.563] {} {} +// CHECK:STDOUT: %F.decl.loc12: %F.type.1ad64d.1 = fn_decl @F.1 [concrete = constants.%F.5d382e.1] {} {} +// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl.loc12 [concrete = constants.%assoc0] +// CHECK:STDOUT: %F.decl.loc20: %F.type.1ad64d.2 = fn_decl @F.2 [concrete = constants.%F.5d382e.2] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self // CHECK:STDOUT: .F = %assoc0 -// CHECK:STDOUT: witness = (%F.decl) +// CHECK:STDOUT: witness = (%F.decl.loc12) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Interface.%Self: %Interface.type) { +// CHECK:STDOUT: generic fn @F.1(@Interface.%Self: %Interface.type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(@Interface.%Self: %Interface.type) { +// CHECK:STDOUT: generic fn @F.2(@Interface.%Self: %Interface.type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Self) {} +// CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%Self) {} +// CHECK:STDOUT: specific @F.2(constants.%Self) {} // CHECK:STDOUT: 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 df7ff88b391c..1320bdc3f08e 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 @@ -32,12 +32,12 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // 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.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: %I.assoc_type: type = assoc_entity_type %I.type.325 [symbolic] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%F.decl [symbolic] -// CHECK:STDOUT: %.type: type = fn_type @.1, @I(%T) [symbolic] -// CHECK:STDOUT: %.075: %.type = struct_value () [symbolic] +// CHECK:STDOUT: %F.type.2aef59.2: type = fn_type @F.2, @I(%T) [symbolic] +// CHECK:STDOUT: %F.bb2dd4.2: %F.type.2aef59.2 = struct_value () [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -50,27 +50,27 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [symbolic = constants.%.075] { -// CHECK:STDOUT: %self.patt: @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = binding_pattern self -// CHECK:STDOUT: %self.param_patt: @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = value_param_pattern %self.patt, call_param0 -// CHECK:STDOUT: %return.patt: @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = return_slot_pattern -// CHECK:STDOUT: %return.param_patt: @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = out_param_pattern %return.patt, call_param1 +// CHECK:STDOUT: %F.decl: %F.type.2aef59.2 = fn_decl @F.2 [symbolic = constants.%F.bb2dd4.2] { +// CHECK:STDOUT: %self.patt: @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = value_param_pattern %self.patt, call_param0 +// CHECK:STDOUT: %return.patt: @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = out_param_pattern %return.patt, call_param1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc23_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %.loc23_35.1: @.1.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref.loc23_35: @.1.%I.type (%I.type.325) = name_ref Self, %.loc23_35.1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc23_35.1: @F.2.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref.loc23_35: @F.2.%I.type (%I.type.325) = name_ref Self, %.loc23_35.1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc23_35: type = facet_access_type %Self.ref.loc23_35 [symbolic = %Self.as_type.loc23_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc23_35.2: type = converted %Self.ref.loc23_35, %Self.as_type.loc23_35 [symbolic = %Self.as_type.loc23_24.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %self.param: @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc23_24.1: type = splice_block %.loc23_24.3 [symbolic = %Self.as_type.loc23_24.2 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc23_24.2: @.1.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref.loc23_24: @.1.%I.type (%I.type.325) = name_ref Self, %.loc23_24.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc23_24.2: @F.2.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref.loc23_24: @F.2.%I.type (%I.type.325) = name_ref Self, %.loc23_24.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc23_24.1: type = facet_access_type %Self.ref.loc23_24 [symbolic = %Self.as_type.loc23_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc23_24.3: type = converted %Self.ref.loc23_24, %Self.as_type.loc23_24.1 [symbolic = %Self.as_type.loc23_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %self: @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -81,33 +81,33 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: !definition: // 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.type: type = fn_type @F.1, @I(%T.loc11_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: %I.assoc_type: type = assoc_entity_type @I.%I.type (%I.type.325) [symbolic = %I.assoc_type (constants.%I.assoc_type)] // CHECK:STDOUT: %assoc0.loc13_29.2: @I.%I.assoc_type (%I.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.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, call_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, call_param1 +// 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.loc13_14.1 (%Self.as_type) = binding_pattern self +// CHECK:STDOUT: %self.param_patt: @F.1.%Self.as_type.loc13_14.1 (%Self.as_type) = value_param_pattern %self.patt, call_param0 +// CHECK:STDOUT: %return.patt: @F.1.%Self.as_type.loc13_14.1 (%Self.as_type) = return_slot_pattern +// CHECK:STDOUT: %return.param_patt: @F.1.%Self.as_type.loc13_14.1 (%Self.as_type) = out_param_pattern %return.patt, call_param1 // CHECK:STDOUT: } { -// 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: %.loc13_25.1: @F.1.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref.loc13_25: @F.1.%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 call_param0 +// CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc13_14.1 (%Self.as_type) = value_param call_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.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: %.loc13_14.2: @F.1.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref.loc13_14: @F.1.%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: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc13_14.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @F.%Self.as_type.loc13_14.1 (%Self.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%Self.as_type.loc13_14.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %self: @F.1.%Self.as_type.loc13_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @F.1.%Self.as_type.loc13_14.1 (%Self.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.1.%Self.as_type.loc13_14.1 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc13_29.1: @I.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc13_29.2 (constants.%assoc0)] // CHECK:STDOUT: @@ -118,16 +118,16 @@ 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.325)) { +// CHECK:STDOUT: generic fn @F.1(@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.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: fn[%self.param_patt: @F.1.%Self.as_type.loc13_14.1 (%Self.as_type)]() -> @F.1.%Self.as_type.loc13_14.1 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc23_6.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) { +// CHECK:STDOUT: generic fn @F.2(%T.loc23_6.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) { // CHECK:STDOUT: %T.loc23_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_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.loc23_6.2)> [symbolic = %I.type (constants.%I.type.325)] @@ -135,11 +135,11 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %Self.as_type.loc23_24.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc23_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type @.1.%Self.as_type.loc23_24.2 (%Self.as_type) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%self.param_patt: @.1.%Self.as_type.loc23_24.2 (%Self.as_type)]() -> @.1.%Self.as_type.loc23_24.2 (%Self.as_type) { +// CHECK:STDOUT: fn[%self.param_patt: @F.2.%Self.as_type.loc23_24.2 (%Self.as_type)]() -> @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @.1.%Self.as_type.loc23_24.2 (%Self.as_type) = name_ref self, %self +// CHECK:STDOUT: %self.ref: @F.2.%Self.as_type.loc23_24.2 (%Self.as_type) = name_ref self, %self // CHECK:STDOUT: return %self.ref // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -151,24 +151,24 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: !definition: // 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 +// CHECK:STDOUT: %F.type => constants.%F.type.2aef59.1 +// CHECK:STDOUT: %F => constants.%F.bb2dd4.1 // CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type // CHECK:STDOUT: %assoc0.loc13_29.2 => constants.%assoc0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T, constants.%Self) { +// CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T // 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: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@F.%T) {} +// CHECK:STDOUT: specific @I(@F.1.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I(%T.loc11_13.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T, constants.%Self) { +// CHECK:STDOUT: specific @F.2(constants.%T, constants.%Self) { // CHECK:STDOUT: %T.loc23_6.2 => constants.%T // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.325 @@ -176,5 +176,5 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %Self.as_type.loc23_24.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@.1.%T.loc23_6.2) {} +// CHECK:STDOUT: specific @I(@F.2.%T.loc23_6.2) {} // 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 2d91899f85ff..75b86f272297 100644 --- a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon @@ -370,27 +370,27 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type.abf = struct_value () [concrete] -// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl: %Foo.type = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] { // CHECK:STDOUT: %a.patt.loc6_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type.abf = interface_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt.loc14_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc14_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -398,23 +398,23 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc6_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.1(%a.loc6_15.1: %C) { // CHECK:STDOUT: %a.loc6_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] // 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: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc14_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.2(%a.loc14_15.1: %C) { // CHECK:STDOUT: %a.loc14_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_15.2 (constants.%a)] // 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.0dd)] -// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc14_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: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Foo.2.%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 @@ -430,17 +430,17 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc6_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc6_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc14_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc14_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(%a.loc14_15.2) {} +// CHECK:STDOUT: specific @Foo.2(%a.loc14_15.2) {} // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_raw_identifier.carbon // CHECK:STDOUT: @@ -586,29 +586,29 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.abf52e.1: type = generic_interface_type @.1 [concrete] -// CHECK:STDOUT: %.generic.0a9e18.1: %.type.abf52e.1 = struct_value () [concrete] -// 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 [concrete] -// CHECK:STDOUT: %Bar.generic: %Bar.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.abf52e.2: type = generic_interface_type @.2 [concrete] -// CHECK:STDOUT: %.generic.0a9e18.2: %.type.abf52e.2 = struct_value () [concrete] -// 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: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic] +// CHECK:STDOUT: %Self.a71: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Bar.type.982aac.1: type = generic_interface_type @Bar.1 [concrete] +// CHECK:STDOUT: %Bar.generic.4bda5e.1: %Bar.type.982aac.1 = struct_value () [concrete] +// CHECK:STDOUT: %Bar.type.982aac.2: type = generic_interface_type @Bar.2 [concrete] +// CHECK:STDOUT: %Bar.generic.4bda5e.2: %Bar.type.982aac.2 = struct_value () [concrete] +// CHECK:STDOUT: %Bar.type.6a9: type = facet_type <@Bar.2, @Bar.2(%a)> [symbolic] +// CHECK:STDOUT: %Self.cec: %Bar.type.6a9 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.Foo: %Foo.type = import_ref Main//two_file, Foo, loaded [concrete = constants.%Foo.generic] -// CHECK:STDOUT: %Main.Bar: %Bar.type = import_ref Main//two_file, Bar, loaded [concrete = constants.%Bar.generic] +// CHECK:STDOUT: %Main.Foo: %Foo.type.5380b8.1 = import_ref Main//two_file, Foo, loaded [concrete = constants.%Foo.generic.ec3175.1] +// CHECK:STDOUT: %Main.Bar: %Bar.type.982aac.1 = import_ref Main//two_file, Bar, loaded [concrete = constants.%Bar.generic.4bda5e.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type] // CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst14 [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.f97b44.1: %C = import_ref Main//two_file, loc7_15, loaded [symbolic = @Foo.%a (constants.%a)] -// CHECK:STDOUT: %Main.import_ref.f97b44.2: %C = import_ref Main//two_file, loc8_15, loaded [symbolic = @Bar.%a (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.f97b44.1: %C = import_ref Main//two_file, loc7_15, loaded [symbolic = @Foo.1.%a (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.f97b44.2: %C = import_ref Main//two_file, loc8_15, loaded [symbolic = @Bar.1.%a (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -620,13 +620,13 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_6.1 = import // CHECK:STDOUT: %default.import.loc2_6.2 = import -// CHECK:STDOUT: %.decl.loc12: %.type.abf52e.1 = interface_decl @.1 [concrete = constants.%.generic.0a9e18.1] { +// CHECK:STDOUT: %Foo.decl: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt.loc12_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc12_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc12_15.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl.loc21: %.type.abf52e.2 = interface_decl @.2 [concrete = constants.%.generic.0a9e18.2] { +// CHECK:STDOUT: %Bar.decl: %Bar.type.982aac.2 = interface_decl @Bar.2 [concrete = constants.%Bar.generic.4bda5e.2] { // CHECK:STDOUT: %a.patt.loc21_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc21_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C] @@ -634,23 +634,23 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(imports.%Main.import_ref.f97b44.1: %C) [from "two_file.carbon"] { +// CHECK:STDOUT: generic interface @Foo.1(imports.%Main.import_ref.f97b44.1: %C) [from "two_file.carbon"] { // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic = %a (constants.%a)] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc12_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.2(%a.loc12_15.1: %C) { // CHECK:STDOUT: %a.loc12_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc12_15.2 (constants.%a)] // 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.0ddd66.1)] -// CHECK:STDOUT: %Self.2: %.type.0ddd66.1 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1b0707.1)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc12_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: @.1.%.type (%.type.0ddd66.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1b0707.1)] +// CHECK:STDOUT: %Self.1: @Foo.2.%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 @@ -658,23 +658,23 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Bar(imports.%Main.import_ref.f97b44.2: %C) [from "two_file.carbon"] { +// CHECK:STDOUT: generic interface @Bar.1(imports.%Main.import_ref.f97b44.2: %C) [from "two_file.carbon"] { // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic = %a (constants.%a)] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.2(%a.loc21_15.1: %C) { +// CHECK:STDOUT: generic interface @Bar.2(%a.loc21_15.1: %C) { // CHECK:STDOUT: %a.loc21_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc21_15.2 (constants.%a)] // 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.0ddd66.2)] -// CHECK:STDOUT: %Self.2: %.type.0ddd66.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1b0707.2)] +// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar.2, @Bar.2(%a.loc21_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: @.2.%.type (%.type.0ddd66.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1b0707.2)] +// CHECK:STDOUT: %Self.1: @Bar.2.%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 @@ -689,29 +689,29 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Self = imports.%Main.import_ref.2c4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a => constants.%a // CHECK:STDOUT: %a.patt => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc12_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc12_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(%a.loc12_15.2) {} +// CHECK:STDOUT: specific @Foo.2(%a.loc12_15.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Bar(constants.%a) { +// CHECK:STDOUT: specific @Bar.1(constants.%a) { // CHECK:STDOUT: %a => constants.%a // CHECK:STDOUT: %a.patt => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.2(constants.%a) { +// CHECK:STDOUT: specific @Bar.2(constants.%a) { // CHECK:STDOUT: %a.loc21_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc21_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.2(%a.loc21_15.2) {} +// CHECK:STDOUT: specific @Bar.2(%a.loc21_15.2) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_name_mismatch.carbon // CHECK:STDOUT: @@ -721,32 +721,32 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete] // CHECK:STDOUT: %b: %C = bind_symbolic_name b, 0 [symbolic] // CHECK:STDOUT: %b.patt: %C = symbolic_binding_pattern b, 0 [symbolic] -// CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type.abf = struct_value () [concrete] -// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%b)> [symbolic] -// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%b)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] { // CHECK:STDOUT: %a.patt.loc7_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type.abf = interface_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %b.patt.loc15_15.1: %C = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc15_15.2 (constants.%b.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -754,23 +754,23 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc7_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.1(%a.loc7_15.1: %C) { // CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // 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: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%b.loc15_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.2(%b.loc15_15.1: %C) { // CHECK:STDOUT: %b.loc15_15.2: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_15.2 (constants.%b)] // 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.0dd)] -// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%b.loc15_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: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Foo.2.%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 @@ -786,17 +786,17 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%b) { +// CHECK:STDOUT: specific @Foo.2(constants.%b) { // CHECK:STDOUT: %b.loc15_15.2 => constants.%b // CHECK:STDOUT: %b.patt.loc15_15.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(%b.loc15_15.2) {} +// CHECK:STDOUT: specific @Foo.2(%b.loc15_15.2) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_alias.carbon // CHECK:STDOUT: @@ -806,30 +806,30 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type.abf = struct_value () [concrete] -// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] { // CHECK:STDOUT: %a.patt.loc7_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type.abf = interface_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt.loc15_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -837,23 +837,23 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc7_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.1(%a.loc7_15.1: %C) { // CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // 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: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc15_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.2(%a.loc15_15.1: %C) { // CHECK:STDOUT: %a.loc15_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.2 (constants.%a)] // 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.0dd)] -// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc15_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: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Foo.2.%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 @@ -869,17 +869,17 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc15_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc15_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(%a.loc15_15.2) {} +// CHECK:STDOUT: specific @Foo.2(%a.loc15_15.2) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduced_alias.carbon // CHECK:STDOUT: @@ -889,30 +889,30 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type.abf = struct_value () [concrete] -// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] { // CHECK:STDOUT: %a.patt.loc7_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type.abf = interface_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt.loc15_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -920,23 +920,23 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc7_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.1(%a.loc7_15.1: %C) { // CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // 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: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc15_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.2(%a.loc15_15.1: %C) { // CHECK:STDOUT: %a.loc15_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.2 (constants.%a)] // 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.0dd)] -// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc15_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: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Foo.2.%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 @@ -952,17 +952,17 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc15_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc15_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(%a.loc15_15.2) {} +// CHECK:STDOUT: specific @Foo.2(%a.loc15_15.2) {} // CHECK:STDOUT: // CHECK:STDOUT: --- alias_two_file.carbon // CHECK:STDOUT: @@ -1018,20 +1018,20 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type.abf = struct_value () [concrete] -// CHECK:STDOUT: %.type.0dd: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.0dd = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.Foo: %Foo.type = import_ref Main//alias_two_file, Foo, loaded [concrete = constants.%Foo.generic] +// CHECK:STDOUT: %Main.Foo: %Foo.type.5380b8.1 = import_ref Main//alias_two_file, Foo, loaded [concrete = constants.%Foo.generic.ec3175.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type] // CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst14 [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.f97: %C = import_ref Main//alias_two_file, loc6_15, loaded [symbolic = @Foo.%a (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.f97: %C = import_ref Main//alias_two_file, loc6_15, loaded [symbolic = @Foo.1.%a (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1044,7 +1044,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %default.import.loc2_6.2 = import // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %D: type = bind_alias D, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %.decl: %.type.abf = interface_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt.loc17_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc17_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -1052,23 +1052,23 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(imports.%Main.import_ref.f97: %C) [from "alias_two_file.carbon"] { +// CHECK:STDOUT: generic interface @Foo.1(imports.%Main.import_ref.f97: %C) [from "alias_two_file.carbon"] { // CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic = %a (constants.%a)] // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc17_15.1: %C) { +// CHECK:STDOUT: generic interface @Foo.2(%a.loc17_15.1: %C) { // CHECK:STDOUT: %a.loc17_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc17_15.2 (constants.%a)] // 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.0dd)] -// CHECK:STDOUT: %Self.2: %.type.0dd = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc17_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: @.1.%.type (%.type.0dd) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Foo.2.%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 @@ -1083,17 +1083,17 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Self = imports.%Main.import_ref.2c4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a => constants.%a // CHECK:STDOUT: %a.patt => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc17_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc17_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(%a.loc17_15.2) {} +// CHECK:STDOUT: specific @Foo.2(%a.loc17_15.2) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_repeat_const.carbon // CHECK:STDOUT: @@ -1104,21 +1104,21 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %const: type = const_type %C [concrete] // CHECK:STDOUT: %a: %const = bind_symbolic_name a, 0 [symbolic] // CHECK:STDOUT: %a.patt: %const = symbolic_binding_pattern a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type = struct_value () [concrete] -// CHECK:STDOUT: %.type.abf: type = generic_interface_type @.1 [concrete] -// CHECK:STDOUT: %.generic: %.type.abf = struct_value () [concrete] -// CHECK:STDOUT: %.type.963: type = facet_type <@.1, @.1(%a)> [symbolic] -// CHECK:STDOUT: %Self: %.type.963 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete] +// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.924: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.924 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = %C.decl -// CHECK:STDOUT: .Foo = %Foo.decl +// CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl: %Foo.type = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] { // CHECK:STDOUT: %a.patt.loc6_15.1: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %const [concrete = constants.%const] { @@ -1127,7 +1127,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_15.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.decl: %.type.abf = interface_decl @.1 [concrete = constants.%.generic] { +// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt.loc18_15.1: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc18_15.2 (constants.%a.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18: type = splice_block %const.loc18_19 [concrete = constants.%const] { @@ -1139,23 +1139,23 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc6_15.1: %const) { +// CHECK:STDOUT: generic interface @Foo.1(%a.loc6_15.1: %const) { // CHECK:STDOUT: %a.loc6_15.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc6_15.2: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc18_15.1: %const) { +// CHECK:STDOUT: generic interface @Foo.2(%a.loc18_15.1: %const) { // CHECK:STDOUT: %a.loc18_15.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_15.2 (constants.%a)] // CHECK:STDOUT: %a.patt.loc18_15.2: %const = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc18_15.2 (constants.%a.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = facet_type <@.1, @.1(%a.loc18_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: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc18_15.2)> [symbolic = %Foo.type (constants.%Foo.type.924)] +// CHECK:STDOUT: %Self.2: %Foo.type.924 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.1: @.1.%.type (%.type.963) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] +// CHECK:STDOUT: %Self.1: @Foo.2.%Foo.type (%Foo.type.924) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -1171,15 +1171,15 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(constants.%a) { +// CHECK:STDOUT: specific @Foo.1(constants.%a) { // CHECK:STDOUT: %a.loc6_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc6_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%a) { +// CHECK:STDOUT: specific @Foo.2(constants.%a) { // CHECK:STDOUT: %a.loc18_15.2 => constants.%a // CHECK:STDOUT: %a.patt.loc18_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(%a.loc18_15.2) {} +// CHECK:STDOUT: specific @Foo.2(%a.loc18_15.2) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_conflict_after_merge.carbon b/toolchain/check/testdata/namespace/fail_conflict_after_merge.carbon index ff4e8cd0f00f..9aec4590a411 100644 --- a/toolchain/check/testdata/namespace/fail_conflict_after_merge.carbon +++ b/toolchain/check/testdata/namespace/fail_conflict_after_merge.carbon @@ -69,10 +69,10 @@ fn NS(); // CHECK:STDOUT: --- fail_conflict.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %.type.b6a92a.1: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d852be.1: %.type.b6a92a.1 = struct_value () [concrete] -// CHECK:STDOUT: %.type.b6a92a.2: type = fn_type @.2 [concrete] -// CHECK:STDOUT: %.d852be.2: %.type.b6a92a.2 = struct_value () [concrete] +// CHECK:STDOUT: %NS.type.1cad4d.1: type = fn_type @NS.1 [concrete] +// CHECK:STDOUT: %NS.b2e2ce.1: %NS.type.1cad4d.1 = struct_value () [concrete] +// CHECK:STDOUT: %NS.type.1cad4d.2: type = fn_type @NS.2 [concrete] +// CHECK:STDOUT: %NS.b2e2ce.2: %NS.type.1cad4d.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -92,12 +92,12 @@ fn NS(); // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %NS.loc8: = namespace [concrete] {} -// CHECK:STDOUT: %.decl.loc18: %.type.b6a92a.1 = fn_decl @.1 [concrete = constants.%.d852be.1] {} {} +// CHECK:STDOUT: %NS.decl.loc18: %NS.type.1cad4d.1 = fn_decl @NS.1 [concrete = constants.%NS.b2e2ce.1] {} {} // CHECK:STDOUT: %NS.loc22: = namespace [concrete] {} -// CHECK:STDOUT: %.decl.loc32: %.type.b6a92a.2 = fn_decl @.2 [concrete = constants.%.d852be.2] {} {} +// CHECK:STDOUT: %NS.decl.loc32: %NS.type.1cad4d.2 = fn_decl @NS.2 [concrete = constants.%NS.b2e2ce.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(); +// CHECK:STDOUT: fn @NS.1(); // CHECK:STDOUT: -// CHECK:STDOUT: fn @.2(); +// CHECK:STDOUT: fn @NS.2(); // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_conflict_imported_namespace_first.carbon b/toolchain/check/testdata/namespace/fail_conflict_imported_namespace_first.carbon index 589702d865d4..bfc375bd9337 100644 --- a/toolchain/check/testdata/namespace/fail_conflict_imported_namespace_first.carbon +++ b/toolchain/check/testdata/namespace/fail_conflict_imported_namespace_first.carbon @@ -53,8 +53,8 @@ fn NS.Foo(); // CHECK:STDOUT: --- fail_conflict.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %NS.type: type = fn_type @NS [concrete] +// CHECK:STDOUT: %NS: %NS.type = struct_value () [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -77,11 +77,11 @@ fn NS.Foo(); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %NS.decl: %NS.type = fn_decl @NS [concrete = constants.%NS] {} {} // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(); +// CHECK:STDOUT: fn @NS(); // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(); // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_conflict_imported_namespace_second.carbon b/toolchain/check/testdata/namespace/fail_conflict_imported_namespace_second.carbon index 990a329cf103..195ef4401c2f 100644 --- a/toolchain/check/testdata/namespace/fail_conflict_imported_namespace_second.carbon +++ b/toolchain/check/testdata/namespace/fail_conflict_imported_namespace_second.carbon @@ -70,8 +70,8 @@ fn NS.Foo(); // CHECK:STDOUT: constants { // CHECK:STDOUT: %NS.type: type = fn_type @NS [concrete] // CHECK:STDOUT: %NS: %NS.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] +// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -90,10 +90,10 @@ fn NS.Foo(); // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %.loc14: = namespace [concrete] {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @NS() [from "fn.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1(); +// CHECK:STDOUT: fn @Foo(); // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon index 189e3a7ed3b4..a14fdfa83d78 100644 --- a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon +++ b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon @@ -27,8 +27,8 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %A.type: type = fn_type @A [concrete] +// CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] @@ -62,7 +62,7 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: %NS: = namespace [concrete] {} // CHECK:STDOUT: %NS.ref: = name_ref NS, %NS [concrete = %NS] // CHECK:STDOUT: %ns: = bind_alias ns, %NS [concrete = %NS] -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] { +// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -73,7 +73,7 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() -> %i32 { +// CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] diff --git a/toolchain/check/testdata/namespace/fail_duplicate.carbon b/toolchain/check/testdata/namespace/fail_duplicate.carbon index 560f002dd7f4..9a0f5f3ec81a 100644 --- a/toolchain/check/testdata/namespace/fail_duplicate.carbon +++ b/toolchain/check/testdata/namespace/fail_duplicate.carbon @@ -26,10 +26,10 @@ fn Foo.Baz() { // CHECK:STDOUT: --- fail_duplicate.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Baz.type: type = fn_type @Baz [concrete] -// CHECK:STDOUT: %Baz: %Baz.type = struct_value () [concrete] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.700: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Baz.type.8987ba.1: type = fn_type @Baz.1 [concrete] +// CHECK:STDOUT: %Baz.eb4c34.1: %Baz.type.8987ba.1 = struct_value () [concrete] +// CHECK:STDOUT: %Baz.type.8987ba.2: type = fn_type @Baz.2 [concrete] +// CHECK:STDOUT: %Baz.eb4c34.2: %Baz.type.8987ba.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -46,18 +46,18 @@ fn Foo.Baz() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo: = namespace [concrete] { -// CHECK:STDOUT: .Baz = %Baz.decl +// CHECK:STDOUT: .Baz = %Baz.decl.loc13 // CHECK:STDOUT: } -// CHECK:STDOUT: %Baz.decl: %Baz.type = fn_decl @Baz [concrete = constants.%Baz] {} {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.700] {} {} +// CHECK:STDOUT: %Baz.decl.loc13: %Baz.type.8987ba.1 = fn_decl @Baz.1 [concrete = constants.%Baz.eb4c34.1] {} {} +// CHECK:STDOUT: %Baz.decl.loc23: %Baz.type.8987ba.2 = fn_decl @Baz.2 [concrete = constants.%Baz.eb4c34.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Baz() { +// CHECK:STDOUT: fn @Baz.1() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @Baz.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/fail_params.carbon b/toolchain/check/testdata/namespace/fail_params.carbon index e6a55f4c4668..4740d1efb492 100644 --- a/toolchain/check/testdata/namespace/fail_params.carbon +++ b/toolchain/check/testdata/namespace/fail_params.carbon @@ -42,14 +42,14 @@ fn D(T:! type).F() {} // CHECK:STDOUT: --- fail_params.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.bd7: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.199: %F.type.bd7 = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -70,9 +70,9 @@ fn D(T:! type).F() {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A: = namespace [concrete] { -// CHECK:STDOUT: .F = %F.decl +// CHECK:STDOUT: .F = %F.decl.loc18 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} +// CHECK:STDOUT: %F.decl.loc18: %F.type.bd7 = fn_decl @F.1 [concrete = constants.%F.199] {} {} // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.loc24: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -86,17 +86,17 @@ fn D(T:! type).F() {} // CHECK:STDOUT: %x: %T = bind_name x, %x.param // CHECK:STDOUT: %C: = namespace [concrete] {} // CHECK:STDOUT: %D: = namespace [concrete] {} -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} { +// CHECK:STDOUT: %F.decl.loc40: %F.type.b25 = fn_decl @F.2 [concrete = constants.%F.c41] {} { // CHECK:STDOUT: %T.loc40_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc40_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() { +// CHECK:STDOUT: fn @F.1() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc40_6.1: type) { +// CHECK:STDOUT: generic fn @F.2(%T.loc40_6.1: type) { // CHECK:STDOUT: %T.loc40_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc40_6.2 (constants.%T)] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)] // CHECK:STDOUT: @@ -108,7 +108,7 @@ fn D(T:! type).F() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(constants.%T) { +// CHECK:STDOUT: specific @F.2(constants.%T) { // CHECK:STDOUT: %T.loc40_6.2 => constants.%T // CHECK:STDOUT: %T.patt => constants.%T // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/fail_unresolved_scope.carbon b/toolchain/check/testdata/namespace/fail_unresolved_scope.carbon index baf4bc052deb..35e0782f63d4 100644 --- a/toolchain/check/testdata/namespace/fail_unresolved_scope.carbon +++ b/toolchain/check/testdata/namespace/fail_unresolved_scope.carbon @@ -18,8 +18,8 @@ fn Foo.Baz() { // CHECK:STDOUT: --- fail_unresolved_scope.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.d85: %.type = struct_value () [concrete] +// CHECK:STDOUT: %Baz.type: type = fn_type @Baz [concrete] +// CHECK:STDOUT: %Baz: %Baz.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -34,10 +34,10 @@ fn Foo.Baz() { // CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.d85] {} {} +// CHECK:STDOUT: %Baz.decl: %Baz.type = fn_decl @Baz [concrete = constants.%Baz] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @Baz() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } 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 7ed7c386b79b..88c50f722c3c 100644 --- a/toolchain/check/testdata/packages/no_prelude/cross_package_import.carbon +++ b/toolchain/check/testdata/packages/no_prelude/cross_package_import.carbon @@ -474,8 +474,8 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: --- fail_main_namespace_conflict.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %.type: type = fn_type @.1 [concrete] -// CHECK:STDOUT: %.b19: %.type = struct_value () [concrete] +// CHECK:STDOUT: %F.type.700976.2: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.7e9a3e.2: %F.type.700976.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -492,12 +492,12 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Other.import = import Other -// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [concrete = constants.%.b19] {} {} +// CHECK:STDOUT: %F.decl: %F.type.700976.2 = fn_decl @F.2 [concrete = constants.%F.7e9a3e.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() [from "other_fn.carbon"]; +// CHECK:STDOUT: fn @F.1() [from "other_fn.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @.1() { +// CHECK:STDOUT: fn @F.2() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: }