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
+1 -1
View File
@@ -28,7 +28,7 @@ interface I {
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
// CHECK:STDOUT: .Int = %import_ref.485
// CHECK:STDOUT: .Int = %Core.Int
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }
@@ -31,7 +31,7 @@ interface I {
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
// CHECK:STDOUT: .ImplicitAs = %import_ref.d44
// CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }
@@ -36,7 +36,7 @@ interface I {
// CHECK:STDOUT: %assoc1: %assoc_type.4fb = assoc_entity element1, @I.%N [template]
// CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [template]
// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
// CHECK:STDOUT: %impl_witness.d39: <witness> = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template]
// CHECK:STDOUT: %impl_witness.d39: <witness> = impl_witness (imports.%Core.import_ref.a5b), @impl.1(%int_32) [template]
// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template]
// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template]
// CHECK:STDOUT: %Convert.bound: <bound method> = bound_method %int_42.20e, %Convert.956 [template]
@@ -46,8 +46,8 @@ interface I {
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
// CHECK:STDOUT: .Int = %import_ref.485
// CHECK:STDOUT: .ImplicitAs = %import_ref.d44
// CHECK:STDOUT: .Int = %Core.Int
// CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }
@@ -41,7 +41,7 @@ interface Interface {
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
// CHECK:STDOUT: .Int = %import_ref.485
// CHECK:STDOUT: .Int = %Core.Int
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }
@@ -87,7 +87,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
// CHECK:STDOUT: .Int = %import_ref.485
// CHECK:STDOUT: .Int = %Core.Int
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }
+2 -2
View File
@@ -84,7 +84,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
// CHECK:STDOUT: .Int = %import_ref.485
// CHECK:STDOUT: .Int = %Core.Int
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }
@@ -288,7 +288,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
// CHECK:STDOUT: .Int = %import_ref.485
// CHECK:STDOUT: .Int = %Core.Int
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }
@@ -67,8 +67,8 @@ fn UseEmpty(i: I) {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.df2: type = import_ref Main//base, I, loaded [template = constants.%I.type]
// CHECK:STDOUT: %import_ref.e5d = import_ref Main//base, inst15 [no loc], unloaded
// CHECK:STDOUT: %Main.I: type = import_ref Main//base, I, loaded [template = constants.%I.type]
// CHECK:STDOUT: %Main.import_ref = import_ref Main//base, inst15 [no loc], unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
@@ -76,12 +76,12 @@ fn UseEmpty(i: I) {}
// CHECK:STDOUT: .I = %I
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
// CHECK:STDOUT: %I: type = export I, imports.%import_ref.df2 [template = constants.%I.type]
// CHECK:STDOUT: %I: type = export I, imports.%Main.I [template = constants.%I.type]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: interface @I [from "base.carbon"] {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.e5d
// CHECK:STDOUT: .Self = imports.%Main.import_ref
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -94,13 +94,13 @@ fn UseEmpty(i: I) {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.df1: type = import_ref Main//export, I, loaded [template = constants.%I.type]
// CHECK:STDOUT: %import_ref.6c2 = import_ref Main//export, inst18 [indirect], unloaded
// CHECK:STDOUT: %Main.I: type = import_ref Main//export, I, loaded [template = constants.%I.type]
// CHECK:STDOUT: %Main.import_ref = import_ref Main//export, inst18 [indirect], unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .I = imports.%import_ref.df1
// CHECK:STDOUT: .I = imports.%Main.I
// CHECK:STDOUT: .UseEmpty = %UseEmpty.decl
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
@@ -109,14 +109,14 @@ fn UseEmpty(i: I) {}
// CHECK:STDOUT: %i.param_patt: %I.type = value_param_pattern %i.patt, runtime_param0
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i.param: %I.type = value_param runtime_param0
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.df1 [template = constants.%I.type]
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [template = constants.%I.type]
// CHECK:STDOUT: %i: %I.type = bind_name i, %i.param
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: interface @I [from "export.carbon"] {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.6c2
// CHECK:STDOUT: .Self = imports.%Main.import_ref
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -53,12 +53,12 @@ interface I {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref: type = import_ref Main//a, I, loaded [template = constants.%I.type]
// CHECK:STDOUT: %Main.I: type = import_ref Main//a, I, loaded [template = constants.%I.type]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .I = imports.%import_ref
// CHECK:STDOUT: .I = imports.%Main.I
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
// CHECK:STDOUT: %.decl: type = interface_decl @.1 [template = constants.%.type] {} {}
@@ -108,12 +108,12 @@ impl C as AddWith(C) {
// CHECK:STDOUT: %F.type.fbc: type = fn_type @F.1, @AddWith(%T) [symbolic]
// CHECK:STDOUT: %F.be3: %F.type.fbc = struct_value () [symbolic]
// CHECK:STDOUT: %F.assoc_type.f26: type = assoc_entity_type %AddWith.type.bc7, %F.type.fbc [symbolic]
// CHECK:STDOUT: %assoc0.1ff: %F.assoc_type.f26 = assoc_entity element0, imports.%import_ref.0c5 [symbolic]
// CHECK:STDOUT: %assoc0.1ff: %F.assoc_type.f26 = assoc_entity element0, imports.%Main.import_ref.0c5 [symbolic]
// CHECK:STDOUT: %AddWith.type.e8e: type = facet_type <@AddWith, @AddWith(%C)> [template]
// CHECK:STDOUT: %F.type.cd2: type = fn_type @F.1, @AddWith(%C) [template]
// CHECK:STDOUT: %F.b58: %F.type.cd2 = struct_value () [template]
// CHECK:STDOUT: %F.assoc_type.c97: type = assoc_entity_type %AddWith.type.e8e, %F.type.cd2 [template]
// CHECK:STDOUT: %assoc0.dc2: %F.assoc_type.c97 = assoc_entity element0, imports.%import_ref.0c5 [template]
// CHECK:STDOUT: %assoc0.dc2: %F.assoc_type.c97 = assoc_entity element0, imports.%Main.import_ref.0c5 [template]
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (@impl.%F.decl) [template]
// CHECK:STDOUT: %F.type.c09: type = fn_type @F.2 [template]
// CHECK:STDOUT: %F.e62: %F.type.c09 = struct_value () [template]
@@ -121,23 +121,23 @@ impl C as AddWith(C) {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.cf6: %AddWith.type.b35 = import_ref Main//a, AddWith, loaded [template = constants.%AddWith.generic]
// CHECK:STDOUT: %import_ref.476 = import_ref Main//a, inst26 [no loc], unloaded
// CHECK:STDOUT: %import_ref.ce5 = import_ref Main//a, loc5_9, unloaded
// CHECK:STDOUT: %import_ref.b80: @AddWith.%F.type (%F.type.fbc) = import_ref Main//a, F, loaded [symbolic = @AddWith.%F (constants.%F.be3)]
// CHECK:STDOUT: %import_ref.0c5 = import_ref Main//a, loc5_9, unloaded
// CHECK:STDOUT: %Main.AddWith: %AddWith.type.b35 = import_ref Main//a, AddWith, loaded [template = constants.%AddWith.generic]
// CHECK:STDOUT: %Main.import_ref.476 = import_ref Main//a, inst26 [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.ce5 = import_ref Main//a, loc5_9, unloaded
// CHECK:STDOUT: %Main.F: @AddWith.%F.type (%F.type.fbc) = import_ref Main//a, F, loaded [symbolic = @AddWith.%F (constants.%F.be3)]
// CHECK:STDOUT: %Main.import_ref.0c5 = import_ref Main//a, loc5_9, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .AddWith = imports.%import_ref.cf6
// CHECK:STDOUT: .AddWith = imports.%Main.AddWith
// CHECK:STDOUT: .C = %C.decl
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <invalid>
// CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {}
// CHECK:STDOUT: impl_decl @impl [template] {} {
// CHECK:STDOUT: %C.ref.loc7_6: type = name_ref C, file.%C.decl [template = constants.%C]
// CHECK:STDOUT: %AddWith.ref: %AddWith.type.b35 = name_ref AddWith, imports.%import_ref.cf6 [template = constants.%AddWith.generic]
// CHECK:STDOUT: %AddWith.ref: %AddWith.type.b35 = name_ref AddWith, imports.%Main.AddWith [template = constants.%AddWith.generic]
// CHECK:STDOUT: %C.ref.loc7_19: type = name_ref C, file.%C.decl [template = constants.%C]
// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(constants.%C)> [template = constants.%AddWith.type.e8e]
// CHECK:STDOUT: }
@@ -154,13 +154,13 @@ impl C as AddWith(C) {
// CHECK:STDOUT: %F.type: type = fn_type @F.1, @AddWith(%T) [symbolic = %F.type (constants.%F.type.fbc)]
// CHECK:STDOUT: %F: @AddWith.%F.type (%F.type.fbc) = struct_value () [symbolic = %F (constants.%F.be3)]
// CHECK:STDOUT: %F.assoc_type: type = assoc_entity_type @AddWith.%AddWith.type (%AddWith.type.bc7), @AddWith.%F.type (%F.type.fbc) [symbolic = %F.assoc_type (constants.%F.assoc_type.f26)]
// CHECK:STDOUT: %assoc0: @AddWith.%F.assoc_type (%F.assoc_type.f26) = assoc_entity element0, imports.%import_ref.0c5 [symbolic = %assoc0 (constants.%assoc0.1ff)]
// CHECK:STDOUT: %assoc0: @AddWith.%F.assoc_type (%F.assoc_type.f26) = assoc_entity element0, imports.%Main.import_ref.0c5 [symbolic = %assoc0 (constants.%assoc0.1ff)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.476
// CHECK:STDOUT: .F = imports.%import_ref.ce5
// CHECK:STDOUT: witness = (imports.%import_ref.b80)
// CHECK:STDOUT: .Self = imports.%Main.import_ref.476
// CHECK:STDOUT: .F = imports.%Main.import_ref.ce5
// CHECK:STDOUT: witness = (imports.%Main.F)
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
+49 -49
View File
@@ -159,43 +159,43 @@ var f: ForwardDeclared* = &f_ref.f;
// CHECK:STDOUT: %UseForwardDeclared.type: type = fn_type @UseForwardDeclared [template]
// CHECK:STDOUT: %UseForwardDeclared: %UseForwardDeclared.type = struct_value () [template]
// CHECK:STDOUT: %assoc_type.6af: type = assoc_entity_type %Basic.type, type [template]
// CHECK:STDOUT: %assoc0.1d6: %assoc_type.6af = assoc_entity element0, imports.%import_ref.ef4597.1 [template]
// CHECK:STDOUT: %assoc0.1d6: %assoc_type.6af = assoc_entity element0, imports.%Main.import_ref.ef4597.1 [template]
// CHECK:STDOUT: %F.type.320: type = fn_type @F.1 [template]
// CHECK:STDOUT: %F.assoc_type.94b: type = assoc_entity_type %Basic.type, %F.type.320 [template]
// CHECK:STDOUT: %assoc1.d7b: %F.assoc_type.94b = assoc_entity element1, imports.%import_ref.0be [template]
// CHECK:STDOUT: %assoc1.d7b: %F.assoc_type.94b = assoc_entity element1, imports.%Main.import_ref.0be [template]
// CHECK:STDOUT: %assoc_type.3e8: type = assoc_entity_type %ForwardDeclared.type, type [template]
// CHECK:STDOUT: %assoc0.910: %assoc_type.3e8 = assoc_entity element0, imports.%import_ref.ef4597.2 [template]
// CHECK:STDOUT: %assoc0.910: %assoc_type.3e8 = assoc_entity element0, imports.%Main.import_ref.ef4597.2 [template]
// CHECK:STDOUT: %F.type.505: type = fn_type @F.2 [template]
// CHECK:STDOUT: %F.assoc_type.1e3: type = assoc_entity_type %ForwardDeclared.type, %F.type.505 [template]
// CHECK:STDOUT: %assoc1.68e: %F.assoc_type.1e3 = assoc_entity element1, imports.%import_ref.1cc [template]
// CHECK:STDOUT: %assoc1.68e: %F.assoc_type.1e3 = assoc_entity element1, imports.%Main.import_ref.1cc [template]
// CHECK:STDOUT: %ptr: type = ptr_type %ForwardDeclared.type [template]
// CHECK:STDOUT: %struct_type.f.2f5: type = struct_type {.f: %ForwardDeclared.type} [template]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.4ea: type = import_ref Main//a, Empty, loaded [template = constants.%Empty.type]
// CHECK:STDOUT: %import_ref.4b7: type = import_ref Main//a, Basic, loaded [template = constants.%Basic.type]
// CHECK:STDOUT: %import_ref.e33: type = import_ref Main//a, ForwardDeclared, loaded [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %import_ref.2ac: ref %struct_type.f.2f5 = import_ref Main//a, f_ref, loaded
// CHECK:STDOUT: %import_ref.cc0 = import_ref Main//a, inst15 [no loc], unloaded
// CHECK:STDOUT: %import_ref.37f = import_ref Main//a, inst19 [no loc], unloaded
// CHECK:STDOUT: %import_ref.42e: %assoc_type.6af = import_ref Main//a, loc8_8, loaded [template = constants.%assoc0.1d6]
// CHECK:STDOUT: %import_ref.b06: %F.assoc_type.94b = import_ref Main//a, loc9_9, loaded [template = constants.%assoc1.d7b]
// CHECK:STDOUT: %import_ref.08d600.1 = import_ref Main//a, T, unloaded
// CHECK:STDOUT: %import_ref.eea = import_ref Main//a, F, unloaded
// CHECK:STDOUT: %import_ref.52b = import_ref Main//a, inst34 [no loc], unloaded
// CHECK:STDOUT: %import_ref.95f: %assoc_type.3e8 = import_ref Main//a, loc16_8, loaded [template = constants.%assoc0.910]
// CHECK:STDOUT: %import_ref.7f1: %F.assoc_type.1e3 = import_ref Main//a, loc17_9, loaded [template = constants.%assoc1.68e]
// CHECK:STDOUT: %import_ref.08d600.2 = import_ref Main//a, T, unloaded
// CHECK:STDOUT: %import_ref.5d0 = import_ref Main//a, F, unloaded
// CHECK:STDOUT: %Main.Empty: type = import_ref Main//a, Empty, loaded [template = constants.%Empty.type]
// CHECK:STDOUT: %Main.Basic: type = import_ref Main//a, Basic, loaded [template = constants.%Basic.type]
// CHECK:STDOUT: %Main.ForwardDeclared: type = import_ref Main//a, ForwardDeclared, loaded [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %Main.f_ref: ref %struct_type.f.2f5 = import_ref Main//a, f_ref, loaded
// CHECK:STDOUT: %Main.import_ref.cc0 = import_ref Main//a, inst15 [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.37f = import_ref Main//a, inst19 [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.42e: %assoc_type.6af = import_ref Main//a, loc8_8, loaded [template = constants.%assoc0.1d6]
// CHECK:STDOUT: %Main.import_ref.b06: %F.assoc_type.94b = import_ref Main//a, loc9_9, loaded [template = constants.%assoc1.d7b]
// CHECK:STDOUT: %Main.T.08d600.1 = import_ref Main//a, T, unloaded
// CHECK:STDOUT: %Main.F.eea = import_ref Main//a, F, unloaded
// CHECK:STDOUT: %Main.import_ref.52b = import_ref Main//a, inst34 [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.95f: %assoc_type.3e8 = import_ref Main//a, loc16_8, loaded [template = constants.%assoc0.910]
// CHECK:STDOUT: %Main.import_ref.7f1: %F.assoc_type.1e3 = import_ref Main//a, loc17_9, loaded [template = constants.%assoc1.68e]
// CHECK:STDOUT: %Main.T.08d600.2 = import_ref Main//a, T, unloaded
// CHECK:STDOUT: %Main.F.5d0 = import_ref Main//a, F, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .Empty = imports.%import_ref.4ea
// CHECK:STDOUT: .Basic = imports.%import_ref.4b7
// CHECK:STDOUT: .ForwardDeclared = imports.%import_ref.e33
// CHECK:STDOUT: .f_ref = imports.%import_ref.2ac
// CHECK:STDOUT: .Empty = imports.%Main.Empty
// CHECK:STDOUT: .Basic = imports.%Main.Basic
// CHECK:STDOUT: .ForwardDeclared = imports.%Main.ForwardDeclared
// CHECK:STDOUT: .f_ref = imports.%Main.f_ref
// CHECK:STDOUT: .UseEmpty = %UseEmpty.decl
// CHECK:STDOUT: .UseBasic = %UseBasic.decl
// CHECK:STDOUT: .UseForwardDeclared = %UseForwardDeclared.decl
@@ -211,7 +211,7 @@ var f: ForwardDeclared* = &f_ref.f;
// CHECK:STDOUT: %e.param_patt: %Empty.type = value_param_pattern %e.patt, runtime_param0
// CHECK:STDOUT: } {
// CHECK:STDOUT: %e.param: %Empty.type = value_param runtime_param0
// CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%import_ref.4ea [template = constants.%Empty.type]
// CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%Main.Empty [template = constants.%Empty.type]
// CHECK:STDOUT: %e: %Empty.type = bind_name e, %e.param
// CHECK:STDOUT: }
// CHECK:STDOUT: %UseBasic.decl: %UseBasic.type = fn_decl @UseBasic [template = constants.%UseBasic] {
@@ -219,7 +219,7 @@ var f: ForwardDeclared* = &f_ref.f;
// CHECK:STDOUT: %e.param_patt: %Basic.type = value_param_pattern %e.patt, runtime_param0
// CHECK:STDOUT: } {
// CHECK:STDOUT: %e.param: %Basic.type = value_param runtime_param0
// CHECK:STDOUT: %Basic.ref: type = name_ref Basic, imports.%import_ref.4b7 [template = constants.%Basic.type]
// CHECK:STDOUT: %Basic.ref: type = name_ref Basic, imports.%Main.Basic [template = constants.%Basic.type]
// CHECK:STDOUT: %e: %Basic.type = bind_name e, %e.param
// CHECK:STDOUT: }
// CHECK:STDOUT: %UseForwardDeclared.decl: %UseForwardDeclared.type = fn_decl @UseForwardDeclared [template = constants.%UseForwardDeclared] {
@@ -227,28 +227,28 @@ var f: ForwardDeclared* = &f_ref.f;
// CHECK:STDOUT: %f.param_patt: %ForwardDeclared.type = value_param_pattern %f.patt, runtime_param0
// CHECK:STDOUT: } {
// CHECK:STDOUT: %f.param: %ForwardDeclared.type = value_param runtime_param0
// CHECK:STDOUT: %ForwardDeclared.ref: type = name_ref ForwardDeclared, imports.%import_ref.e33 [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %ForwardDeclared.ref: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %f: %ForwardDeclared.type = bind_name f, %f.param
// CHECK:STDOUT: }
// CHECK:STDOUT: %Basic.ref.loc10: type = name_ref Basic, imports.%import_ref.4b7 [template = constants.%Basic.type]
// CHECK:STDOUT: %T.ref.loc10: %assoc_type.6af = name_ref T, imports.%import_ref.42e [template = constants.%assoc0.1d6]
// CHECK:STDOUT: %UseBasicT: %assoc_type.6af = bind_alias UseBasicT, imports.%import_ref.42e [template = constants.%assoc0.1d6]
// CHECK:STDOUT: %Basic.ref.loc11: type = name_ref Basic, imports.%import_ref.4b7 [template = constants.%Basic.type]
// CHECK:STDOUT: %F.ref.loc11: %F.assoc_type.94b = name_ref F, imports.%import_ref.b06 [template = constants.%assoc1.d7b]
// CHECK:STDOUT: %UseBasicF: %F.assoc_type.94b = bind_alias UseBasicF, imports.%import_ref.b06 [template = constants.%assoc1.d7b]
// CHECK:STDOUT: %ForwardDeclared.ref.loc13: type = name_ref ForwardDeclared, imports.%import_ref.e33 [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %T.ref.loc13: %assoc_type.3e8 = name_ref T, imports.%import_ref.95f [template = constants.%assoc0.910]
// CHECK:STDOUT: %UseForwardDeclaredT: %assoc_type.3e8 = bind_alias UseForwardDeclaredT, imports.%import_ref.95f [template = constants.%assoc0.910]
// CHECK:STDOUT: %ForwardDeclared.ref.loc14: type = name_ref ForwardDeclared, imports.%import_ref.e33 [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %F.ref.loc14: %F.assoc_type.1e3 = name_ref F, imports.%import_ref.7f1 [template = constants.%assoc1.68e]
// CHECK:STDOUT: %UseForwardDeclaredF: %F.assoc_type.1e3 = bind_alias UseForwardDeclaredF, imports.%import_ref.7f1 [template = constants.%assoc1.68e]
// CHECK:STDOUT: %Basic.ref.loc10: type = name_ref Basic, imports.%Main.Basic [template = constants.%Basic.type]
// CHECK:STDOUT: %T.ref.loc10: %assoc_type.6af = name_ref T, imports.%Main.import_ref.42e [template = constants.%assoc0.1d6]
// CHECK:STDOUT: %UseBasicT: %assoc_type.6af = bind_alias UseBasicT, imports.%Main.import_ref.42e [template = constants.%assoc0.1d6]
// CHECK:STDOUT: %Basic.ref.loc11: type = name_ref Basic, imports.%Main.Basic [template = constants.%Basic.type]
// CHECK:STDOUT: %F.ref.loc11: %F.assoc_type.94b = name_ref F, imports.%Main.import_ref.b06 [template = constants.%assoc1.d7b]
// CHECK:STDOUT: %UseBasicF: %F.assoc_type.94b = bind_alias UseBasicF, imports.%Main.import_ref.b06 [template = constants.%assoc1.d7b]
// CHECK:STDOUT: %ForwardDeclared.ref.loc13: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %T.ref.loc13: %assoc_type.3e8 = name_ref T, imports.%Main.import_ref.95f [template = constants.%assoc0.910]
// CHECK:STDOUT: %UseForwardDeclaredT: %assoc_type.3e8 = bind_alias UseForwardDeclaredT, imports.%Main.import_ref.95f [template = constants.%assoc0.910]
// CHECK:STDOUT: %ForwardDeclared.ref.loc14: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %F.ref.loc14: %F.assoc_type.1e3 = name_ref F, imports.%Main.import_ref.7f1 [template = constants.%assoc1.68e]
// CHECK:STDOUT: %UseForwardDeclaredF: %F.assoc_type.1e3 = bind_alias UseForwardDeclaredF, imports.%Main.import_ref.7f1 [template = constants.%assoc1.68e]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %ptr = binding_pattern f
// CHECK:STDOUT: %.loc16_1: %ptr = var_pattern %f.patt
// CHECK:STDOUT: }
// CHECK:STDOUT: %f.var: ref %ptr = var f
// CHECK:STDOUT: %.loc16_23: type = splice_block %ptr [template = constants.%ptr] {
// CHECK:STDOUT: %ForwardDeclared.ref.loc16: type = name_ref ForwardDeclared, imports.%import_ref.e33 [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %ForwardDeclared.ref.loc16: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [template = constants.%ForwardDeclared.type]
// CHECK:STDOUT: %ptr: type = ptr_type %ForwardDeclared.type [template = constants.%ptr]
// CHECK:STDOUT: }
// CHECK:STDOUT: %f: ref %ptr = bind_name f, %f.var
@@ -256,24 +256,24 @@ var f: ForwardDeclared* = &f_ref.f;
// CHECK:STDOUT:
// CHECK:STDOUT: interface @Empty [from "a.carbon"] {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.cc0
// CHECK:STDOUT: .Self = imports.%Main.import_ref.cc0
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: interface @Basic [from "a.carbon"] {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.37f
// CHECK:STDOUT: .T = imports.%import_ref.42e
// CHECK:STDOUT: .F = imports.%import_ref.b06
// CHECK:STDOUT: witness = (imports.%import_ref.08d600.1, imports.%import_ref.eea)
// CHECK:STDOUT: .Self = imports.%Main.import_ref.37f
// CHECK:STDOUT: .T = imports.%Main.import_ref.42e
// CHECK:STDOUT: .F = imports.%Main.import_ref.b06
// CHECK:STDOUT: witness = (imports.%Main.T.08d600.1, imports.%Main.F.eea)
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: interface @ForwardDeclared [from "a.carbon"] {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.52b
// CHECK:STDOUT: .T = imports.%import_ref.95f
// CHECK:STDOUT: .F = imports.%import_ref.7f1
// CHECK:STDOUT: witness = (imports.%import_ref.08d600.2, imports.%import_ref.5d0)
// CHECK:STDOUT: .Self = imports.%Main.import_ref.52b
// CHECK:STDOUT: .T = imports.%Main.import_ref.95f
// CHECK:STDOUT: .F = imports.%Main.import_ref.7f1
// CHECK:STDOUT: witness = (imports.%Main.T.08d600.2, imports.%Main.F.5d0)
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @UseEmpty(%e.param_patt: %Empty.type) {
@@ -303,7 +303,7 @@ var f: ForwardDeclared* = &f_ref.f;
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %f_ref.ref: ref %struct_type.f.2f5 = name_ref f_ref, imports.%import_ref.2ac
// CHECK:STDOUT: %f_ref.ref: ref %struct_type.f.2f5 = name_ref f_ref, imports.%Main.f_ref
// CHECK:STDOUT: %.loc16: ref %ForwardDeclared.type = struct_access %f_ref.ref, element0
// CHECK:STDOUT: %addr: %ptr = addr_of %.loc16
// CHECK:STDOUT: assign file.%f.var, %addr
@@ -206,13 +206,13 @@ private interface Redecl {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.5e5: type = import_ref Test//def, Def, loaded [template = constants.%Def.type]
// CHECK:STDOUT: %import_ref.cd6 = import_ref Test//def, inst15 [no loc], unloaded
// CHECK:STDOUT: %Test.Def: type = import_ref Test//def, Def, loaded [template = constants.%Def.type]
// CHECK:STDOUT: %Test.import_ref = import_ref Test//def, inst15 [no loc], unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .Def [private] = imports.%import_ref.5e5
// CHECK:STDOUT: .Def [private] = imports.%Test.Def
// CHECK:STDOUT: .F = %F.decl
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.import = import Test
@@ -222,14 +222,14 @@ private interface Redecl {}
// CHECK:STDOUT: %i.param_patt: %Def.type = value_param_pattern %i.patt, runtime_param0
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i.param: %Def.type = value_param runtime_param0
// CHECK:STDOUT: %Def.ref: type = name_ref Def, imports.%import_ref.5e5 [template = constants.%Def.type]
// CHECK:STDOUT: %Def.ref: type = name_ref Def, imports.%Test.Def [template = constants.%Def.type]
// CHECK:STDOUT: %i: %Def.type = bind_name i, %i.param
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: interface @Def [from "def.carbon"] {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.cd6
// CHECK:STDOUT: .Self = imports.%Test.import_ref
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -311,13 +311,13 @@ private interface Redecl {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.247: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [template = constants.%ForwardWithDef.type]
// CHECK:STDOUT: %import_ref.aa5 = import_ref Test//forward_with_def, inst16 [no loc], unloaded
// CHECK:STDOUT: %Test.ForwardWithDef: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [template = constants.%ForwardWithDef.type]
// CHECK:STDOUT: %Test.import_ref = import_ref Test//forward_with_def, inst16 [no loc], unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .ForwardWithDef [private] = imports.%import_ref.247
// CHECK:STDOUT: .ForwardWithDef [private] = imports.%Test.ForwardWithDef
// CHECK:STDOUT: .F = %F.decl
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.import = import Test
@@ -327,14 +327,14 @@ private interface Redecl {}
// CHECK:STDOUT: %i.param_patt: %ForwardWithDef.type = value_param_pattern %i.patt, runtime_param0
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i.param: %ForwardWithDef.type = value_param runtime_param0
// CHECK:STDOUT: %ForwardWithDef.ref: type = name_ref ForwardWithDef, imports.%import_ref.247 [template = constants.%ForwardWithDef.type]
// CHECK:STDOUT: %ForwardWithDef.ref: type = name_ref ForwardWithDef, imports.%Test.ForwardWithDef [template = constants.%ForwardWithDef.type]
// CHECK:STDOUT: %i: %ForwardWithDef.type = bind_name i, %i.param
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: interface @ForwardWithDef [from "forward_with_def.carbon"] {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.aa5
// CHECK:STDOUT: .Self = imports.%Test.import_ref
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -45,12 +45,12 @@ impl library "[[@TEST_NAME]]";
// CHECK:STDOUT: --- a.impl.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref = import_ref Main//a, A, unloaded
// CHECK:STDOUT: %Main.A = import_ref Main//a, 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.loc1_6.1 = import <invalid>
// CHECK:STDOUT: %default.import.loc1_6.2 = import <invalid>
@@ -96,15 +96,15 @@ impl library "[[@TEST_NAME]]";
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.8b9 = import_ref Main//b, B, unloaded
// CHECK:STDOUT: %import_ref.420 = import_ref Main//b, inst15 [no loc], unloaded
// CHECK:STDOUT: %import_ref.e5c: type = import_ref Main//b, loc7_7, loaded [template = constants.%empty_tuple.type]
// CHECK:STDOUT: %import_ref.171: type = import_ref Main//b, loc7_12, loaded [template = constants.%B.type]
// CHECK:STDOUT: %Main.B = import_ref Main//b, B, unloaded
// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//b, inst15 [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//b, loc7_7, loaded [template = constants.%empty_tuple.type]
// CHECK:STDOUT: %Main.import_ref.171: type = import_ref Main//b, loc7_12, loaded [template = constants.%B.type]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .B = imports.%import_ref.8b9
// CHECK:STDOUT: .B = imports.%Main.B
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import.loc1_6.1 = import <invalid>
// CHECK:STDOUT: %default.import.loc1_6.2 = import <invalid>
@@ -112,9 +112,9 @@ impl library "[[@TEST_NAME]]";
// CHECK:STDOUT:
// CHECK:STDOUT: interface @B [from "fail_b.carbon"] {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = imports.%import_ref.420
// CHECK:STDOUT: .Self = imports.%Main.import_ref.420
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: impl @impl: imports.%import_ref.e5c as imports.%import_ref.171 [from "fail_b.carbon"];
// CHECK:STDOUT: impl @impl: imports.%Main.import_ref.e5c as imports.%Main.import_ref.171 [from "fail_b.carbon"];
// CHECK:STDOUT:
@@ -625,20 +625,20 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//two_file, C, loaded [template = constants.%C]
// CHECK:STDOUT: %import_ref.05a: type = import_ref Main//two_file, D, loaded [template = constants.%C]
// CHECK:STDOUT: %import_ref.c61: %Foo.type = import_ref Main//two_file, Foo, loaded [template = constants.%Foo.generic]
// CHECK:STDOUT: %import_ref.feb: %Bar.type = import_ref Main//two_file, Bar, loaded [template = constants.%Bar.generic]
// CHECK:STDOUT: %import_ref.8f2: <witness> = import_ref Main//two_file, loc4_10, loaded [template = constants.%complete_type]
// CHECK:STDOUT: %import_ref.2c4 = import_ref Main//two_file, inst14 [no loc], unloaded
// CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [template = constants.%C]
// CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [template = constants.%C]
// CHECK:STDOUT: %Main.Foo: %Foo.type = import_ref Main//two_file, Foo, loaded [template = constants.%Foo.generic]
// CHECK:STDOUT: %Main.Bar: %Bar.type = import_ref Main//two_file, Bar, loaded [template = constants.%Bar.generic]
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//two_file, loc4_10, loaded [template = constants.%complete_type]
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst14 [no loc], unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .C = imports.%import_ref.3b0
// CHECK:STDOUT: .D = imports.%import_ref.05a
// CHECK:STDOUT: .Foo = imports.%import_ref.c61
// CHECK:STDOUT: .Bar = imports.%import_ref.feb
// CHECK:STDOUT: .C = imports.%Main.C
// CHECK:STDOUT: .D = imports.%Main.D
// CHECK:STDOUT: .Foo = imports.%Main.Foo
// CHECK:STDOUT: .Bar = imports.%Main.Bar
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import.loc2_6.1 = import <invalid>
// CHECK:STDOUT: %default.import.loc2_6.2 = import <invalid>
@@ -647,7 +647,7 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc12_15.1, runtime_param<invalid> [symbolic = %a.patt.loc12_15.2 (constants.%a.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %C = value_param runtime_param<invalid>
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [template = constants.%C]
// CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc12_15.2 (constants.%a)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.decl.loc21: %.type.abf52e.2 = interface_decl @.2 [template = constants.%.generic.0a9e18.2] {
@@ -655,7 +655,7 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc21_15.1, runtime_param<invalid> [symbolic = %a.patt.loc21_15.2 (constants.%a.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %C = value_param runtime_param<invalid>
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.05a [template = constants.%C]
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [template = constants.%C]
// CHECK:STDOUT: %a.loc21_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc21_15.2 (constants.%a)]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -709,10 +709,10 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "two_file.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.2c4
// CHECK:STDOUT: .Self = imports.%Main.import_ref.2c4
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Foo(constants.%a) {
@@ -1067,22 +1067,22 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %import_ref.3b0: type = import_ref Main//alias_two_file, C, loaded [template = constants.%C]
// CHECK:STDOUT: %import_ref.c61: %Foo.type = import_ref Main//alias_two_file, Foo, loaded [template = constants.%Foo.generic]
// CHECK:STDOUT: %import_ref.8f2: <witness> = import_ref Main//alias_two_file, loc4_10, loaded [template = constants.%complete_type]
// CHECK:STDOUT: %import_ref.2c4 = import_ref Main//alias_two_file, inst14 [no loc], unloaded
// CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [template = constants.%C]
// CHECK:STDOUT: %Main.Foo: %Foo.type = import_ref Main//alias_two_file, Foo, loaded [template = constants.%Foo.generic]
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//alias_two_file, loc4_10, loaded [template = constants.%complete_type]
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst14 [no loc], unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: package: <namespace> = namespace [template] {
// CHECK:STDOUT: .C = imports.%import_ref.3b0
// CHECK:STDOUT: .Foo = imports.%import_ref.c61
// CHECK:STDOUT: .C = imports.%Main.C
// CHECK:STDOUT: .Foo = imports.%Main.Foo
// CHECK:STDOUT: .D = %D
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import.loc2_6.1 = import <invalid>
// CHECK:STDOUT: %default.import.loc2_6.2 = import <invalid>
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.3b0 [template = constants.%C]
// CHECK:STDOUT: %D: type = bind_alias D, imports.%import_ref.3b0 [template = constants.%C]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [template = constants.%C]
// CHECK:STDOUT: %D: type = bind_alias D, imports.%Main.C [template = constants.%C]
// CHECK:STDOUT: %.decl: %.type.abf = interface_decl @.1 [template = constants.%.generic] {
// CHECK:STDOUT: %a.patt.loc17_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc17_15.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc17_15.1, runtime_param<invalid> [symbolic = %a.patt.loc17_15.2 (constants.%a.patt)]
@@ -1118,10 +1118,10 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "alias_two_file.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.2c4
// CHECK:STDOUT: .Self = imports.%Main.import_ref.2c4
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Foo(constants.%a) {
@@ -42,7 +42,7 @@ interface I {
// CHECK:STDOUT: %assoc3: %assoc_type.4fb = assoc_entity element3, @I.%N [template]
// CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [template]
// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
// CHECK:STDOUT: %impl_witness.d39: <witness> = impl_witness (imports.%import_ref.a5b), @impl.1(%int_32) [template]
// CHECK:STDOUT: %impl_witness.d39: <witness> = impl_witness (imports.%Core.import_ref.a5b), @impl.1(%int_32) [template]
// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.1(%int_32) [template]
// CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [template]
// CHECK:STDOUT: %Convert.bound: <bound method> = bound_method %int_42.20e, %Convert.956 [template]
@@ -52,8 +52,8 @@ interface I {
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
// CHECK:STDOUT: .Int = %import_ref.485
// CHECK:STDOUT: .ImplicitAs = %import_ref.d44
// CHECK:STDOUT: .Int = %Core.Int
// CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }