diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-01-03 18:17:50 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-01-03 18:17:50 -0700 |
| commit | fa6e3eec464227a2c20ca949e2fd12f3ab649960 (patch) | |
| tree | 6ac09e0230a70cd9473f067fb6fe50f55c614594 /test | |
| parent | b453345554cf7a48061e0cb43a6e8b45641cb4c3 (diff) | |
| download | zig-fa6e3eec464227a2c20ca949e2fd12f3ab649960.tar.gz zig-fa6e3eec464227a2c20ca949e2fd12f3ab649960.zip | |
add #typeof() compiler function
Diffstat (limited to 'test')
| -rw-r--r-- | test/run_tests.cpp | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/test/run_tests.cpp b/test/run_tests.cpp index 645d8295fa..7fb46bfcd7 100644 --- a/test/run_tests.cpp +++ b/test/run_tests.cpp @@ -347,7 +347,7 @@ pub fn main(argc: isize, argv: &&u8, env: &&u8) -> i32 { add_simple_case("hello world without libc", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { print_str("Hello, world!\n"); return 0; } @@ -357,7 +357,7 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { add_simple_case("a + b + c", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { if (false || false || false) { print_str("BAD 1\n"); } if (true && true && false) { print_str("BAD 2\n"); } if (1 | 2 | 4 != 7) { print_str("BAD 3\n"); } @@ -379,7 +379,7 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { add_simple_case("short circuit", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { if (true || { print_str("BAD 1\n"); false }) { print_str("OK 1\n"); } @@ -402,7 +402,7 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { add_simple_case("modify operators", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { var i : i32 = 0; i += 5; if (i != 5) { print_str("BAD +=\n"); } i -= 2; if (i != 3) { print_str("BAD -=\n"); } @@ -554,7 +554,7 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { add_simple_case("structs", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { var foo : Foo; foo.a += 1; foo.b = foo.a == 1; @@ -628,7 +628,7 @@ use "std.zig"; const g1 : i32 = 1233 + 1; var g2 : i32; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { if (g2 != 0) { print_str("BAD\n"); } g2 = g1; if (g2 != 1234) { print_str("BAD\n"); } @@ -639,7 +639,7 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { add_simple_case("while loop", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { var i : i32 = 0; while (i < 4) { print_str("loop\n"); @@ -651,7 +651,7 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { add_simple_case("continue and break", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { var i : i32 = 0; while (true) { print_str("loop\n"); @@ -667,7 +667,7 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { add_simple_case("maybe type", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { const x : ?bool = true; if (const y ?= x) { @@ -685,7 +685,7 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { add_simple_case("implicit cast after unreachable", R"SOURCE( use "std.zig"; -export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { const x = outer(); if (x == 1234) { print_str("OK\n"); @@ -697,6 +697,17 @@ fn outer() -> isize { return inner(); } )SOURCE", "OK\n"); + + add_simple_case("#typeof()", R"SOURCE( +use "std.zig"; +const x: u16 = 13; +const z: #typeof(x) = 19; +pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { + const y: #typeof(x) = 120; + print_str("OK\n"); + return 0; +} + )SOURCE", "OK\n"); } //////////////////////////////////////////////////////////////////////////////////// @@ -999,6 +1010,11 @@ fn f() -> i32 { (return 1) as i32 } )SOURCE", 1, ".tmp_source.zig:3:16: error: invalid cast from type 'unreachable' to 'i32'"); + + add_compile_fail_case("invalid compiler fn", R"SOURCE( +fn f() -> #bogus(foo) { +} + )SOURCE", 1, ".tmp_source.zig:2:11: error: invalid compiler function: 'bogus'"); } static void print_compiler_invocation(TestCase *test_case) { |
