mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 06:54:44 +01:00
Split apart some tests which don't need the prelude. (#3904)
This could probably go further, but I'm just trying to get the ability to run some significant tests without the prelude. This already requires some migration of `i32` and `bool` to non-prelude-dependent types (technically not at the moment, but I'm trying to stick with the philosophical model of the prelude). Note this undoes part of #3895 which had made all lex/parse tests depend on the prelude -- I don't think that was a necessary change. Rather, it seems better to isolate individual lex/parse tests from the prelude. I'd been on the fence in that PR (it was fixing one of the issues that contributed to wanting to not include the prelude), but now it feels more consistent. The prelude could have a parse error and we shouldn't break every parse test on that.
This commit is contained in:
+17
-12
@@ -4,48 +4,53 @@
|
||||
//
|
||||
// AUTOUPDATE
|
||||
|
||||
fn A() -> i32 { return 0; }
|
||||
fn A() -> () { return (); }
|
||||
|
||||
alias B = A;
|
||||
|
||||
fn Main() {
|
||||
var b: i32 = B();
|
||||
var b: () = B();
|
||||
}
|
||||
|
||||
// CHECK:STDOUT: --- alias.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: i32 = int_literal 0 [template]
|
||||
// CHECK:STDOUT: %.1: type = tuple_type () [template]
|
||||
// CHECK:STDOUT: %.2: () = tuple_value () [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: .B = %B
|
||||
// CHECK:STDOUT: .Main = %Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {
|
||||
// CHECK:STDOUT: @A.%return: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %.loc7_12.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc7_12.2: type = converted %.loc7_12.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: @A.%return: ref () = var <return slot>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %A.ref: <function> = name_ref A, %A [template = %A]
|
||||
// CHECK:STDOUT: %B: <function> = bind_alias B, %A [template = %A]
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @A() -> i32 {
|
||||
// CHECK:STDOUT: fn @A() -> () {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc7: i32 = int_literal 0 [template = constants.%.1]
|
||||
// CHECK:STDOUT: return %.loc7
|
||||
// CHECK:STDOUT: %.loc7_24.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc7_24.2: () = tuple_value () [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc7_25: () = converted %.loc7_24.1, %.loc7_24.2 [template = constants.%.2]
|
||||
// CHECK:STDOUT: return %.loc7_25
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %b.var: ref i32 = var b
|
||||
// CHECK:STDOUT: %b: ref i32 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %.loc12_11.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc12_11.2: type = converted %.loc12_11.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %b.var: ref () = var b
|
||||
// CHECK:STDOUT: %b: ref () = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %B.ref: <function> = name_ref B, file.%B [template = file.%A]
|
||||
// CHECK:STDOUT: %A.call: init i32 = call %B.ref()
|
||||
// CHECK:STDOUT: %A.call: init () = call %B.ref()
|
||||
// CHECK:STDOUT: assign %b.var, %A.call
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
-2
@@ -22,11 +22,9 @@ fn Main() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .Echo = %Echo
|
||||
// CHECK:STDOUT: .Main = %Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %Echo: <function> = fn_decl @Echo [template] {
|
||||
// CHECK:STDOUT: %.loc7_13.1: {} = struct_literal ()
|
||||
// CHECK:STDOUT: %.loc7_13.2: type = converted %.loc7_13.1, constants.%.1 [template = constants.%.1]
|
||||
-2
@@ -21,11 +21,9 @@ fn Main() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .Echo = %Echo
|
||||
// CHECK:STDOUT: .Main = %Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %Echo: <function> = fn_decl @Echo [template] {
|
||||
// CHECK:STDOUT: %.loc7_13.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc7_13.2: type = converted %.loc7_13.1, constants.%.1 [template = constants.%.1]
|
||||
-2
@@ -18,11 +18,9 @@ fn Main() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .Foo = %Foo
|
||||
// CHECK:STDOUT: .Main = %Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo [template] {}
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
-2
@@ -19,11 +19,9 @@ fn Main() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .MakeImplicitEmptyTuple = %MakeImplicitEmptyTuple
|
||||
// CHECK:STDOUT: .Main = %Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %MakeImplicitEmptyTuple: <function> = fn_decl @MakeImplicitEmptyTuple [template] {}
|
||||
// CHECK:STDOUT: %Main: <function> = fn_decl @Main [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
-8
@@ -56,10 +56,8 @@ class C {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -69,10 +67,8 @@ class C {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F.loc4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F.loc4: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %F.loc12: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
@@ -83,10 +79,8 @@ class C {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F.loc12
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F.loc4: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %F.loc12: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
@@ -102,10 +96,8 @@ class C {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .C = %C.decl
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
+8
-12
@@ -81,7 +81,6 @@ fn CallFAndGIncomplete() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .C = %C.decl
|
||||
// CHECK:STDOUT: .D = %D.decl.loc5
|
||||
// CHECK:STDOUT: .ReturnCUnused = %ReturnCUnused
|
||||
@@ -90,7 +89,6 @@ fn CallFAndGIncomplete() {
|
||||
// CHECK:STDOUT: .ReturnDUsed = %ReturnDUsed
|
||||
// CHECK:STDOUT: .Call = %Call
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {}
|
||||
// CHECK:STDOUT: %D.decl.loc5: type = class_decl @D [template = constants.%D] {}
|
||||
// CHECK:STDOUT: %ReturnCUnused: <function> = fn_decl @ReturnCUnused [template] {
|
||||
@@ -156,19 +154,17 @@ fn CallFAndGIncomplete() {
|
||||
// CHECK:STDOUT: .ReturnDUnused = %import_ref.5
|
||||
// CHECK:STDOUT: .ReturnDUsed = %import_ref.6
|
||||
// CHECK:STDOUT: .Call = %import_ref.7
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .CallFAndGIncomplete = %CallFAndGIncomplete
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref ir1, inst+2, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref ir1, inst+4, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: <function> = import_ref ir1, inst+8, loc_14 [template = imports.%ReturnCUnused]
|
||||
// CHECK:STDOUT: %import_ref.4: <function> = import_ref ir1, inst+11, loc_18 [template = imports.%ReturnCUsed]
|
||||
// CHECK:STDOUT: %import_ref.5: <function> = import_ref ir1, inst+14, loc_22 [template = imports.%ReturnDUnused]
|
||||
// CHECK:STDOUT: %import_ref.6: <function> = import_ref ir1, inst+17, loc_26 [template = imports.%ReturnDUsed]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref ir1, inst+18, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref ir1, inst+1, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref ir1, inst+3, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: <function> = import_ref ir1, inst+7, loc_14 [template = imports.%ReturnCUnused]
|
||||
// CHECK:STDOUT: %import_ref.4: <function> = import_ref ir1, inst+10, loc_18 [template = imports.%ReturnCUsed]
|
||||
// CHECK:STDOUT: %import_ref.5: <function> = import_ref ir1, inst+13, loc_22 [template = imports.%ReturnDUnused]
|
||||
// CHECK:STDOUT: %import_ref.6: <function> = import_ref ir1, inst+16, loc_26 [template = imports.%ReturnDUsed]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref ir1, inst+17, unloaded
|
||||
// CHECK:STDOUT: %CallFAndGIncomplete: <function> = fn_decl @CallFAndGIncomplete [template] {}
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref ir1, inst+5, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref ir1, inst+4, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @C;
|
||||
-2
@@ -98,7 +98,6 @@ extern private fn ExternOrderAndConflict() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .WrongOrder = %WrongOrder
|
||||
// CHECK:STDOUT: .DuplicateVirtual = %DuplicateVirtual
|
||||
// CHECK:STDOUT: .TwoAccess = %TwoAccess
|
||||
@@ -107,7 +106,6 @@ extern private fn ExternOrderAndConflict() {}
|
||||
// CHECK:STDOUT: .ModifiersConflict2 = %ModifiersConflict2
|
||||
// CHECK:STDOUT: .ExternOrderAndConflict = %ExternOrderAndConflict
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %WrongOrder: <function> = fn_decl @WrongOrder [template] {}
|
||||
// CHECK:STDOUT: %DuplicateVirtual: <function> = fn_decl @DuplicateVirtual [template] {}
|
||||
// CHECK:STDOUT: %TwoAccess: <function> = fn_decl @TwoAccess [template] {}
|
||||
+28
-20
@@ -14,25 +14,25 @@ fn A();
|
||||
// CHECK:STDERR:
|
||||
fn A();
|
||||
|
||||
fn B(x: i32);
|
||||
fn B(x: ());
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+7]]:1: ERROR: Redeclaration of `fn B` is redundant.
|
||||
// CHECK:STDERR: fn B(x: i32);
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fn B(x: ());
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: Previously declared here.
|
||||
// CHECK:STDERR: fn B(x: i32);
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fn B(x: ());
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
fn B(x: i32);
|
||||
fn B(x: ());
|
||||
|
||||
fn C();
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+7]]:1: ERROR: Function redeclaration differs because of parameter count of 1.
|
||||
// CHECK:STDERR: fn C(x: i32);
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fn C(x: ());
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: Previously declared with parameter count of 0.
|
||||
// CHECK:STDERR: fn C();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
fn C(x: i32);
|
||||
fn C(x: ());
|
||||
|
||||
fn D() {}
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+7]]:1: ERROR: Redeclaration of `fn D` is redundant.
|
||||
@@ -55,30 +55,38 @@ fn E() {}
|
||||
|
||||
// CHECK:STDOUT: --- fail_redecl.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: type = tuple_type () [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A.loc7
|
||||
// CHECK:STDOUT: .B = %B.loc17
|
||||
// CHECK:STDOUT: .C = %C
|
||||
// CHECK:STDOUT: .D = %D.loc37
|
||||
// CHECK:STDOUT: .E = %E.loc47
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A.loc7: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: %A.loc15: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: %B.loc17: <function> = fn_decl @B [template] {
|
||||
// CHECK:STDOUT: %x.loc17_6.1: i32 = param x
|
||||
// CHECK:STDOUT: @B.%x: i32 = bind_name x, %x.loc17_6.1
|
||||
// CHECK:STDOUT: %.loc17_10.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc17_10.2: type = converted %.loc17_10.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %x.loc17_6.1: () = param x
|
||||
// CHECK:STDOUT: @B.%x: () = bind_name x, %x.loc17_6.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %B.loc25: <function> = fn_decl @B [template] {
|
||||
// CHECK:STDOUT: %x.loc25_6.1: i32 = param x
|
||||
// CHECK:STDOUT: %x.loc25_6.2: i32 = bind_name x, %x.loc25_6.1
|
||||
// CHECK:STDOUT: %.loc25_10.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc25_10.2: type = converted %.loc25_10.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %x.loc25_6.1: () = param x
|
||||
// CHECK:STDOUT: %x.loc25_6.2: () = bind_name x, %x.loc25_6.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %C: <function> = fn_decl @C [template] {}
|
||||
// CHECK:STDOUT: %.loc35: <function> = fn_decl @.1 [template] {
|
||||
// CHECK:STDOUT: %x.loc35_6.1: i32 = param x
|
||||
// CHECK:STDOUT: @.1.%x: i32 = bind_name x, %x.loc35_6.1
|
||||
// CHECK:STDOUT: %.loc35_12: <function> = fn_decl @.1 [template] {
|
||||
// CHECK:STDOUT: %.loc35_10.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc35_10.2: type = converted %.loc35_10.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %x.loc35_6.1: () = param x
|
||||
// CHECK:STDOUT: @.1.%x: () = bind_name x, %x.loc35_6.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %D.loc37: <function> = fn_decl @D [template] {}
|
||||
// CHECK:STDOUT: %D.loc45: <function> = fn_decl @D [template] {}
|
||||
@@ -88,11 +96,11 @@ fn E() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @A();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @B(%x: i32);
|
||||
// CHECK:STDOUT: fn @B(%x: ());
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @C();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @.1(%x: i32);
|
||||
// CHECK:STDOUT: fn @.1(%x: ());
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @D() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
-2
@@ -13,10 +13,8 @@ private fn F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
+3
-15
@@ -63,10 +63,8 @@ extern fn A();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -76,11 +74,9 @@ extern fn A();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+2, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+1, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -90,10 +86,8 @@ extern fn A();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -103,11 +97,9 @@ extern fn A();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+2, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+1, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -117,10 +109,8 @@ extern fn A();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -130,11 +120,9 @@ extern fn A();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+2, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+1, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
-2
@@ -16,11 +16,9 @@ fn G() { F(); }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F
|
||||
// CHECK:STDOUT: .G = %G
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %G: <function> = fn_decl @G [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
-8
@@ -60,10 +60,8 @@ extern fn F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -76,10 +74,8 @@ extern fn F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F.loc12
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F.loc4: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %F.loc12: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
@@ -93,10 +89,8 @@ extern fn F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F.loc12
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F.loc4: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %F.loc12: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %F.loc13: <function> = fn_decl @F [template] {}
|
||||
@@ -111,10 +105,8 @@ extern fn F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F.loc4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F.loc4: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %F.loc11: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
+69
-51
@@ -6,73 +6,74 @@
|
||||
|
||||
fn F();
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE+7]]:1: ERROR: Function redeclaration differs because of parameter count of 1.
|
||||
// CHECK:STDERR: fn F(x: i32) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fn F(x: ()) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE-4]]:1: Previously declared with parameter count of 0.
|
||||
// CHECK:STDERR: fn F();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
fn F(x: i32) {}
|
||||
fn F(x: ()) {}
|
||||
|
||||
fn G(x: i32);
|
||||
fn G(x: ());
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE+7]]:1: ERROR: Function redeclaration differs because of parameter count of 0.
|
||||
// CHECK:STDERR: fn G() {}
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE-4]]:1: Previously declared with parameter count of 1.
|
||||
// CHECK:STDERR: fn G(x: i32);
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fn G(x: ());
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
fn G() {}
|
||||
|
||||
fn H(x: i32);
|
||||
fn H(x: ());
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE+7]]:6: ERROR: Function redeclaration differs at parameter 1.
|
||||
// CHECK:STDERR: fn H(x: bool) {}
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE-4]]:6: Previous declaration's corresponding parameter here.
|
||||
// CHECK:STDERR: fn H(x: i32);
|
||||
// CHECK:STDERR: fn H(x: ());
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR:
|
||||
fn H(x: bool) {}
|
||||
|
||||
fn I();
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE+7]]:1: ERROR: Function redeclaration differs because return type is `i32`.
|
||||
// CHECK:STDERR: fn I() -> i32 { return 0; }
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE+7]]:1: ERROR: Function redeclaration differs because return type is `()`.
|
||||
// CHECK:STDERR: fn I() -> () { return (); }
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE-4]]:1: Previously declared with no return type.
|
||||
// CHECK:STDERR: fn I();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
fn I() -> i32 { return 0; }
|
||||
fn I() -> () { return (); }
|
||||
|
||||
fn J() -> i32;
|
||||
fn J() -> ();
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE+7]]:1: ERROR: Function redeclaration differs because no return type is provided.
|
||||
// CHECK:STDERR: fn J() {}
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE-4]]:1: Previously declared with return type `i32`.
|
||||
// CHECK:STDERR: fn J() -> i32;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE-4]]:1: Previously declared with return type `()`.
|
||||
// CHECK:STDERR: fn J() -> ();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
fn J() {}
|
||||
|
||||
fn K() -> i32;
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE+6]]:1: ERROR: Function redeclaration differs because return type is `bool`.
|
||||
// CHECK:STDERR: fn K() -> bool { return false; }
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE-4]]:1: Previously declared with return type `i32`.
|
||||
// CHECK:STDERR: fn K() -> i32;
|
||||
fn K() -> ();
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE+6]]:1: ERROR: Function redeclaration differs because return type is `{}`.
|
||||
// CHECK:STDERR: fn K() -> {} { return {}; }
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
fn K() -> bool { return false; }
|
||||
// CHECK:STDERR: fail_decl_param_mismatch.carbon:[[@LINE-4]]:1: Previously declared with return type `()`.
|
||||
// CHECK:STDERR: fn K() -> ();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
fn K() -> {} { return {}; }
|
||||
|
||||
// CHECK:STDOUT: --- fail_decl_param_mismatch.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: i32 = int_literal 0 [template]
|
||||
// CHECK:STDOUT: %.2: bool = bool_literal false [template]
|
||||
// CHECK:STDOUT: %.1: type = tuple_type () [template]
|
||||
// CHECK:STDOUT: %.2: () = tuple_value () [template]
|
||||
// CHECK:STDOUT: %.3: type = struct_type {} [template]
|
||||
// CHECK:STDOUT: %.4: {} = struct_value () [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F
|
||||
// CHECK:STDOUT: .G = %G
|
||||
// CHECK:STDOUT: .H = %H
|
||||
@@ -80,56 +81,69 @@ fn K() -> bool { return false; }
|
||||
// CHECK:STDOUT: .J = %J
|
||||
// CHECK:STDOUT: .K = %K
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %.loc15: <function> = fn_decl @.1 [template] {
|
||||
// CHECK:STDOUT: %x.loc15_6.1: i32 = param x
|
||||
// CHECK:STDOUT: @.1.%x: i32 = bind_name x, %x.loc15_6.1
|
||||
// CHECK:STDOUT: %.loc15_13: <function> = fn_decl @.1 [template] {
|
||||
// CHECK:STDOUT: %.loc15_10.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc15_10.2: type = converted %.loc15_10.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %x.loc15_6.1: () = param x
|
||||
// CHECK:STDOUT: @.1.%x: () = bind_name x, %x.loc15_6.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %G: <function> = fn_decl @G [template] {
|
||||
// CHECK:STDOUT: %x.loc17_6.1: i32 = param x
|
||||
// CHECK:STDOUT: @G.%x: i32 = bind_name x, %x.loc17_6.1
|
||||
// CHECK:STDOUT: %.loc17_10.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc17_10.2: type = converted %.loc17_10.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %x.loc17_6.1: () = param x
|
||||
// CHECK:STDOUT: @G.%x: () = bind_name x, %x.loc17_6.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc25: <function> = fn_decl @.2 [template] {}
|
||||
// CHECK:STDOUT: %H: <function> = fn_decl @H [template] {
|
||||
// CHECK:STDOUT: %x.loc27_6.1: i32 = param x
|
||||
// CHECK:STDOUT: @H.%x: i32 = bind_name x, %x.loc27_6.1
|
||||
// CHECK:STDOUT: %.loc27_10.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc27_10.2: type = converted %.loc27_10.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %x.loc27_6.1: () = param x
|
||||
// CHECK:STDOUT: @H.%x: () = bind_name x, %x.loc27_6.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc35: <function> = fn_decl @.3 [template] {
|
||||
// CHECK:STDOUT: %x.loc35_6.1: bool = param x
|
||||
// CHECK:STDOUT: @.3.%x: bool = bind_name x, %x.loc35_6.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %I: <function> = fn_decl @I [template] {}
|
||||
// CHECK:STDOUT: %.loc45: <function> = fn_decl @.4 [template] {
|
||||
// CHECK:STDOUT: @.4.%return: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %.loc45_14: <function> = fn_decl @.4 [template] {
|
||||
// CHECK:STDOUT: %.loc45_12.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc45_12.2: type = converted %.loc45_12.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: @.4.%return: ref () = var <return slot>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %J: <function> = fn_decl @J [template] {
|
||||
// CHECK:STDOUT: @J.%return: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %.loc47_12.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc47_12.2: type = converted %.loc47_12.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: @J.%return: ref () = var <return slot>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc55: <function> = fn_decl @.5 [template] {}
|
||||
// CHECK:STDOUT: %K: <function> = fn_decl @K [template] {
|
||||
// CHECK:STDOUT: @K.%return: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %.loc57_12.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc57_12.2: type = converted %.loc57_12.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: @K.%return: ref () = var <return slot>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc64: <function> = fn_decl @.6 [template] {
|
||||
// CHECK:STDOUT: @.6.%return: ref bool = var <return slot>
|
||||
// CHECK:STDOUT: %.loc64_14: <function> = fn_decl @.6 [template] {
|
||||
// CHECK:STDOUT: %.loc64_12.1: {} = struct_literal ()
|
||||
// CHECK:STDOUT: %.loc64_12.2: type = converted %.loc64_12.1, constants.%.3 [template = constants.%.3]
|
||||
// CHECK:STDOUT: @.6.%return: ref {} = var <return slot>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @.1(%x: i32) {
|
||||
// CHECK:STDOUT: fn @.1(%x: ()) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G(%x: i32);
|
||||
// CHECK:STDOUT: fn @G(%x: ());
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @.2() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @H(%x: i32);
|
||||
// CHECK:STDOUT: fn @H(%x: ());
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @.3(%x: bool) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
@@ -138,24 +152,28 @@ fn K() -> bool { return false; }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @I();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @.4() -> i32 {
|
||||
// CHECK:STDOUT: fn @.4() -> () {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc45: i32 = int_literal 0 [template = constants.%.1]
|
||||
// CHECK:STDOUT: return %.loc45
|
||||
// CHECK:STDOUT: %.loc45_24.1: () = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc45_24.2: () = tuple_value () [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc45_25: () = converted %.loc45_24.1, %.loc45_24.2 [template = constants.%.2]
|
||||
// CHECK:STDOUT: return %.loc45_25
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @J() -> i32;
|
||||
// CHECK:STDOUT: fn @J() -> ();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @.5() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @K() -> i32;
|
||||
// CHECK:STDOUT: fn @K() -> ();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @.6() -> bool {
|
||||
// CHECK:STDOUT: fn @.6() -> {} {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc64: bool = bool_literal false [template = constants.%.2]
|
||||
// CHECK:STDOUT: return %.loc64
|
||||
// CHECK:STDOUT: %.loc64_24.1: {} = struct_literal ()
|
||||
// CHECK:STDOUT: %.loc64_24.2: {} = struct_value () [template = constants.%.4]
|
||||
// CHECK:STDOUT: %.loc64_25: {} = converted %.loc64_24.1, %.loc64_24.2 [template = constants.%.4]
|
||||
// CHECK:STDOUT: return %.loc64_25
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
-2
@@ -17,10 +17,8 @@ fn F() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F.loc7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F.loc7: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: %F.loc14: <function> = fn_decl @F [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
-2
@@ -12,10 +12,8 @@ fn Foo() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .Foo = %Foo.loc7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %Foo.loc7: <function> = fn_decl @Foo [template] {}
|
||||
// CHECK:STDOUT: %Foo.loc9: <function> = fn_decl @Foo [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
+5
-25
@@ -101,10 +101,8 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -114,11 +112,9 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+2, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+1, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -131,10 +127,8 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -144,11 +138,9 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+2, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+1, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -161,10 +153,8 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -174,11 +164,9 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+2, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+1, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -191,10 +179,8 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -207,11 +193,9 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+2, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+1, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -221,10 +205,8 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -237,11 +219,9 @@ fn A() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .A = %A
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+2, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %import_ref: <function> = import_ref ir0, inst+1, loaded [template = imports.%A]
|
||||
// CHECK:STDOUT: %A: <function> = fn_decl @A [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
-2
@@ -12,12 +12,10 @@ fn Baz() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .Foo = %Foo
|
||||
// CHECK:STDOUT: .Bar = %Bar
|
||||
// CHECK:STDOUT: .Baz = %Baz
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo [template] {}
|
||||
// CHECK:STDOUT: %Bar: <function> = fn_decl @Bar [template] {}
|
||||
// CHECK:STDOUT: %Baz: <function> = fn_decl @Baz [template] {}
|
||||
-2
@@ -10,10 +10,8 @@ fn Foo() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .Foo = %Foo
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %Foo: <function> = fn_decl @Foo [template] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
-2
@@ -22,10 +22,8 @@ fn F(T:! type, U:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F [template] {
|
||||
// CHECK:STDOUT: %T.loc7_6.1: type = param T
|
||||
// CHECK:STDOUT: @F.%T: type = bind_symbolic_name T 0, %T.loc7_6.1 [symbolic = constants.%T]
|
||||
-2
@@ -18,10 +18,8 @@ fn F(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F [template] {
|
||||
// CHECK:STDOUT: %T.loc7_6.1: type = param T
|
||||
// CHECK:STDOUT: @F.%T: type = bind_symbolic_name T 0, %T.loc7_6.1 [symbolic = constants.%T]
|
||||
-2
@@ -17,10 +17,8 @@ fn F(T:! type, n: T) -> T {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = %Core
|
||||
// CHECK:STDOUT: .F = %F
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace [template] {}
|
||||
// CHECK:STDOUT: %F: <function> = fn_decl @F [template] {
|
||||
// CHECK:STDOUT: %T.loc7_6.1: type = param T
|
||||
// CHECK:STDOUT: @F.%T: type = bind_symbolic_name T 0, %T.loc7_6.1 [symbolic = constants.%T]
|
||||
Reference in New Issue
Block a user