Distinguish between name IDs and string IDs in the type system. (#3341)

Add a `NameId` that is effectively just a wrapper around a `StringId`,
with
some additional predefined values for names that don't correspond to
strings, such as the name of `self` or the function's return slot.
This commit is contained in:
Richard Smith
2023-11-09 16:51:36 +00:00
committed by GitHub
parent 84bc8cc4bf
commit 71aa4a45be
206 changed files with 1050 additions and 921 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ fn F(p: const (const (const i32*)*)) -> const i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%p: const (const (const i32*)*)) -> const i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %p.ref: const (const (const i32*)*) = name_reference "p", %p
// CHECK:STDOUT: %p.ref: const (const (const i32*)*) = name_reference p, %p
// CHECK:STDOUT: %.loc9_11.1: ref const (const i32*) = dereference %p.ref
// CHECK:STDOUT: %.loc9_11.2: const (const i32*) = bind_value %.loc9_11.1
// CHECK:STDOUT: %.loc9_10.1: ref const i32 = dereference %.loc9_11.2