mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Add support for 'package' in expressions. (#3445)
This creates a namespace for `package` scope. It looks like names of class_decls in namespaces lead to an unexpected instref. This is already true, as best as I can tell. I'm not sure if there's a preferred approach to address that, so I've left a TODO for now.
This commit is contained in:
@@ -20,6 +20,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Echo = %Echo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Echo: <function> = fn_decl @Echo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -19,6 +19,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Echo = %Echo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Echo: <function> = fn_decl @Echo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -18,6 +18,7 @@ fn Run() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Run = %Run}
|
||||
// CHECK:STDOUT: %Run: <function> = fn_decl @Run
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -62,6 +62,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Run0 = %Run0, .Run1 = %Run1, .Run2 = %Run2, .Main = %Main}
|
||||
// CHECK:STDOUT: %Run0: <function> = fn_decl @Run0
|
||||
// CHECK:STDOUT: %Run1: <function> = fn_decl @Run1
|
||||
// CHECK:STDOUT: %Run2: <function> = fn_decl @Run2
|
||||
|
||||
@@ -23,6 +23,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.G = %G, .F = %F}
|
||||
// CHECK:STDOUT: %G: <function> = fn_decl @G
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -16,6 +16,7 @@ fn Run() {
|
||||
// CHECK:STDOUT: --- fail_return_type_mismatch.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Foo = %Foo, .Run = %Run}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo
|
||||
// CHECK:STDOUT: %Run: <function> = fn_decl @Run
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -15,6 +15,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: --- i32.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Echo = %Echo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Echo: <function> = fn_decl @Echo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -18,6 +18,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Foo = %Foo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -17,6 +17,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Foo = %Foo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -18,6 +18,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Foo = %Foo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -17,6 +17,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Foo = %Foo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -18,6 +18,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Foo = %Foo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -17,6 +17,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.Foo = %Foo, .Main = %Main}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -18,6 +18,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace {.MakeImplicitEmptyTuple = %MakeImplicitEmptyTuple, .Main = %Main}
|
||||
// CHECK:STDOUT: %MakeImplicitEmptyTuple: <function> = fn_decl @MakeImplicitEmptyTuple
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
Reference in New Issue
Block a user