Relax alias restrictions. (#7190)

Implement the alias rules from proposal #5389, wherein an alias is
permitted so long as the target has a constant value. While that
proposal is not yet accepted, this seems like a reasonable basis for
further iteration, and will be useful for the examples we're currently
pursuing.
This commit is contained in:
Richard Smith
2026-05-12 17:22:44 +00:00
committed by GitHub
parent d4063cad65
commit dd7cfdb149
35 changed files with 262 additions and 219 deletions
@@ -335,7 +335,7 @@ fn B() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {}
// CHECK:STDOUT: %A.ref: %A.type = name_ref A, %A.decl [concrete = constants.%A]
// CHECK:STDOUT: %B: %A.type = alias_binding B, %A.decl [concrete = constants.%A]
// CHECK:STDOUT: %B: %A.type = alias_binding B, %A.ref [concrete = constants.%A]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @A();