Improve SemIR naming of import_refs (#4824)

Changes the name of SemIR `import_ref`s to use the format
`<package>.<entity>`.

<table>
<tr><th>Before</th><th>After</th></tr>
<tr>
<td><code>%import_ref.05a: type</code></td>
<td><code>%Main.D: type</code></td>
</tr>
<tr>
<td><code>%import_ref.8f2: &lt;witness&gt;</code></td>
<td><code>%Main.import_ref.8f2: &lt;witness&gt;</code></td>
</tr>
</table>

* [Discord discussion in
#toolchain](https://discord.com/channels/655572317891461132/655578254970716160/1330253540999827577)
* Closes #4769
This commit is contained in:
Calvin
2025-01-22 07:22:07 +00:00
committed by GitHub
parent fe92e3f552
commit 3f4de65ad8
418 changed files with 4164 additions and 4139 deletions
@@ -62,7 +62,7 @@ var f: () = F();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref: %F.type = import_ref Main//base, F, loaded [template = constants.%F]
// CHECK:STDOUT: %Main.F: %F.type = import_ref Main//base, F, loaded [template = constants.%F]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
@@ -70,7 +70,7 @@ var f: () = F();
// CHECK:STDOUT: .F = %F
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
// CHECK:STDOUT: %F: %F.type = export F, imports.%import_ref [template = constants.%F]
// CHECK:STDOUT: %F: %F.type = export F, imports.%Main.F [template = constants.%F]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() [from "base.carbon"];
@@ -84,12 +84,12 @@ var f: () = F();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref: %F.type = import_ref Main//export, F, loaded [template = constants.%F]
// CHECK:STDOUT: %Main.F: %F.type = import_ref Main//export, F, loaded [template = constants.%F]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .F = imports.%import_ref
// CHECK:STDOUT: .F = imports.%Main.F
// CHECK:STDOUT: .f = %f
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
@@ -109,7 +109,7 @@ var f: () = F();
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref [template = constants.%F]
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Main.F [template = constants.%F]
// CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref()
// CHECK:STDOUT: assign file.%f.var, %F.call
// CHECK:STDOUT: return
@@ -106,12 +106,12 @@ extern library "basic" fn F();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref: %F.type = import_ref Main//basic, F, loaded [template = constants.%F]
// CHECK:STDOUT: %Main.F: %F.type = import_ref Main//basic, F, loaded [template = constants.%F]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .F = imports.%import_ref
// CHECK:STDOUT: .F = imports.%Main.F
// CHECK:STDOUT: .x = %x
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
@@ -131,7 +131,7 @@ extern library "basic" fn F();
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%import_ref [template = constants.%F]
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Main.F [template = constants.%F]
// CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref()
// CHECK:STDOUT: assign file.%x.var, %F.call
// CHECK:STDOUT: return
@@ -271,12 +271,12 @@ extern library "extern_library_owner" fn F() {}
// CHECK:STDOUT: --- fail_extern_library_collision.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.bde = import_ref Main//extern_library, F, unloaded
// CHECK:STDOUT: %Main.F = import_ref Main//extern_library, F, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .F = imports.%import_ref.bde
// CHECK:STDOUT: .F = imports.%Main.F
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
// CHECK:STDOUT: }
@@ -198,26 +198,26 @@ fn CallFAndGIncomplete() {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.f42 = import_ref Main//incomplete_return, C, unloaded
// CHECK:STDOUT: %import_ref.e8f = import_ref Main//incomplete_return, D, unloaded
// CHECK:STDOUT: %import_ref.c3e: %ReturnCUnused.type = import_ref Main//incomplete_return, ReturnCUnused, loaded [template = constants.%ReturnCUnused]
// CHECK:STDOUT: %import_ref.073: %ReturnCUsed.type = import_ref Main//incomplete_return, ReturnCUsed, loaded [template = constants.%ReturnCUsed]
// CHECK:STDOUT: %import_ref.c58: %ReturnDUnused.type = import_ref Main//incomplete_return, ReturnDUnused, loaded [template = constants.%ReturnDUnused]
// CHECK:STDOUT: %import_ref.e1f: %ReturnDUsed.type = import_ref Main//incomplete_return, ReturnDUsed, loaded [template = constants.%ReturnDUsed]
// CHECK:STDOUT: %import_ref.2ce = import_ref Main//incomplete_return, Call, unloaded
// CHECK:STDOUT: %import_ref.8f2: <witness> = import_ref Main//incomplete_return, loc37_10, loaded [template = constants.%complete_type]
// CHECK:STDOUT: %import_ref.cab = import_ref Main//incomplete_return, inst16 [no loc], unloaded
// CHECK:STDOUT: %Main.C = import_ref Main//incomplete_return, C, unloaded
// CHECK:STDOUT: %Main.D = import_ref Main//incomplete_return, D, unloaded
// CHECK:STDOUT: %Main.ReturnCUnused: %ReturnCUnused.type = import_ref Main//incomplete_return, ReturnCUnused, loaded [template = constants.%ReturnCUnused]
// CHECK:STDOUT: %Main.ReturnCUsed: %ReturnCUsed.type = import_ref Main//incomplete_return, ReturnCUsed, loaded [template = constants.%ReturnCUsed]
// CHECK:STDOUT: %Main.ReturnDUnused: %ReturnDUnused.type = import_ref Main//incomplete_return, ReturnDUnused, loaded [template = constants.%ReturnDUnused]
// CHECK:STDOUT: %Main.ReturnDUsed: %ReturnDUsed.type = import_ref Main//incomplete_return, ReturnDUsed, loaded [template = constants.%ReturnDUsed]
// CHECK:STDOUT: %Main.Call = import_ref Main//incomplete_return, Call, unloaded
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//incomplete_return, loc37_10, loaded [template = constants.%complete_type]
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//incomplete_return, inst16 [no loc], unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .C = imports.%import_ref.f42
// CHECK:STDOUT: .D = imports.%import_ref.e8f
// CHECK:STDOUT: .ReturnCUnused = imports.%import_ref.c3e
// CHECK:STDOUT: .ReturnCUsed = imports.%import_ref.073
// CHECK:STDOUT: .ReturnDUnused = imports.%import_ref.c58
// CHECK:STDOUT: .ReturnDUsed = imports.%import_ref.e1f
// CHECK:STDOUT: .Call = imports.%import_ref.2ce
// CHECK:STDOUT: .C = imports.%Main.C
// CHECK:STDOUT: .D = imports.%Main.D
// CHECK:STDOUT: .ReturnCUnused = imports.%Main.ReturnCUnused
// CHECK:STDOUT: .ReturnCUsed = imports.%Main.ReturnCUsed
// CHECK:STDOUT: .ReturnDUnused = imports.%Main.ReturnDUnused
// CHECK:STDOUT: .ReturnDUsed = imports.%Main.ReturnDUsed
// CHECK:STDOUT: .Call = imports.%Main.Call
// CHECK:STDOUT: .CallFAndGIncomplete = %CallFAndGIncomplete.decl
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
@@ -227,23 +227,23 @@ fn CallFAndGIncomplete() {
// CHECK:STDOUT: class @C [from "fail_incomplete_return.carbon"];
// CHECK:STDOUT:
// CHECK:STDOUT: class @D [from "fail_incomplete_return.carbon"] {
// CHECK:STDOUT: complete_type_witness = imports.%import_ref.8f2
// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.cab
// CHECK:STDOUT: .Self = imports.%Main.import_ref.cab
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @CallFAndGIncomplete() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %ReturnCUnused.ref: %ReturnCUnused.type = name_ref ReturnCUnused, imports.%import_ref.c3e [template = constants.%ReturnCUnused]
// CHECK:STDOUT: %ReturnCUnused.ref: %ReturnCUnused.type = name_ref ReturnCUnused, imports.%Main.ReturnCUnused [template = constants.%ReturnCUnused]
// CHECK:STDOUT: %ReturnCUnused.call: init <error> = call %ReturnCUnused.ref()
// CHECK:STDOUT: %ReturnCUsed.ref: %ReturnCUsed.type = name_ref ReturnCUsed, imports.%import_ref.073 [template = constants.%ReturnCUsed]
// CHECK:STDOUT: %ReturnCUsed.ref: %ReturnCUsed.type = name_ref ReturnCUsed, imports.%Main.ReturnCUsed [template = constants.%ReturnCUsed]
// CHECK:STDOUT: %ReturnCUsed.call: init <error> = call %ReturnCUsed.ref()
// CHECK:STDOUT: %ReturnDUnused.ref: %ReturnDUnused.type = name_ref ReturnDUnused, imports.%import_ref.c58 [template = constants.%ReturnDUnused]
// CHECK:STDOUT: %ReturnDUnused.ref: %ReturnDUnused.type = name_ref ReturnDUnused, imports.%Main.ReturnDUnused [template = constants.%ReturnDUnused]
// CHECK:STDOUT: %.loc33_17.1: ref %D = temporary_storage
// CHECK:STDOUT: %ReturnDUnused.call: init %D = call %ReturnDUnused.ref() to %.loc33_17.1
// CHECK:STDOUT: %.loc33_17.2: ref %D = temporary %.loc33_17.1, %ReturnDUnused.call
// CHECK:STDOUT: %ReturnDUsed.ref: %ReturnDUsed.type = name_ref ReturnDUsed, imports.%import_ref.e1f [template = constants.%ReturnDUsed]
// CHECK:STDOUT: %ReturnDUsed.ref: %ReturnDUsed.type = name_ref ReturnDUsed, imports.%Main.ReturnDUsed [template = constants.%ReturnDUsed]
// CHECK:STDOUT: %.loc34_15.1: ref %D = temporary_storage
// CHECK:STDOUT: %ReturnDUsed.call: init %D = call %ReturnDUsed.ref() to %.loc34_15.1
// CHECK:STDOUT: %.loc34_15.2: ref %D = temporary %.loc34_15.1, %ReturnDUsed.call
@@ -1025,17 +1025,17 @@ fn F() {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.f42 = import_ref Main//poison, C, unloaded
// CHECK:STDOUT: %import_ref.a98: <namespace> = import_ref Main//poison, N, loaded
// CHECK:STDOUT: %N: <namespace> = namespace %import_ref.a98, [template] {
// CHECK:STDOUT: .F1 = %import_ref.cd4
// CHECK:STDOUT: %Main.C = import_ref Main//poison, C, unloaded
// CHECK:STDOUT: %Main.N: <namespace> = import_ref Main//poison, N, loaded
// CHECK:STDOUT: %N: <namespace> = namespace %Main.N, [template] {
// CHECK:STDOUT: .F1 = %Main.F1
// CHECK:STDOUT: .C = file.%C.decl
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .C = imports.%import_ref.f42
// CHECK:STDOUT: .C = imports.%Main.C
// CHECK:STDOUT: .N = imports.%N
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
@@ -1059,17 +1059,17 @@ fn F() {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.f42 = import_ref Main//poison, C, unloaded
// CHECK:STDOUT: %import_ref.a98: <namespace> = import_ref Main//poison, N, loaded
// CHECK:STDOUT: %N: <namespace> = namespace %import_ref.a98, [template] {
// CHECK:STDOUT: .F1 = %import_ref.cd4
// CHECK:STDOUT: %Main.C = import_ref Main//poison, C, unloaded
// CHECK:STDOUT: %Main.N: <namespace> = import_ref Main//poison, N, loaded
// CHECK:STDOUT: %N: <namespace> = namespace %Main.N, [template] {
// CHECK:STDOUT: .F1 = %Main.F1
// CHECK:STDOUT: .C = file.%C.decl
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .C = imports.%import_ref.f42
// CHECK:STDOUT: .C = imports.%Main.C
// CHECK:STDOUT: .N = imports.%N
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import.loc2_6.1 = import <invalid>
@@ -122,12 +122,12 @@ fn D();
// CHECK:STDOUT: --- use_decl_in_api.impl.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref = import_ref Main//decl_in_api_definition_in_impl, A, unloaded
// CHECK:STDOUT: %Main.A = import_ref Main//decl_in_api_definition_in_impl, A, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .A = imports.%import_ref
// CHECK:STDOUT: .A = imports.%Main.A
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import.loc2_6.1 = import <invalid>
// CHECK:STDOUT: %default.import.loc2_6.2 = import <invalid>
@@ -152,12 +152,12 @@ fn D();
// CHECK:STDOUT: --- decl_only_in_api.impl.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref = import_ref Main//decl_only_in_api, B, unloaded
// CHECK:STDOUT: %Main.B = import_ref Main//decl_only_in_api, B, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .B = imports.%import_ref
// CHECK:STDOUT: .B = imports.%Main.B
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import.loc2_6.1 = import <invalid>
// CHECK:STDOUT: %default.import.loc2_6.2 = import <invalid>