aboutsummaryrefslogtreecommitdiff
path: root/test/run_tests.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2015-12-24 15:36:49 -0700
committerAndrew Kelley <superjoe30@gmail.com>2015-12-24 15:36:49 -0700
commit5943f995106f9fc2c7c5b416c8d4a2ebba2b8315 (patch)
treee7c67f1b85260de9b54e22a85de8eb3212788d86 /test/run_tests.cpp
parent44ca5e19dc174383b1b0490e636398092711306d (diff)
downloadzig-5943f995106f9fc2c7c5b416c8d4a2ebba2b8315.tar.gz
zig-5943f995106f9fc2c7c5b416c8d4a2ebba2b8315.zip
implement continue expression
closes #6
Diffstat (limited to 'test/run_tests.cpp')
-rw-r--r--test/run_tests.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/test/run_tests.cpp b/test/run_tests.cpp
index 165113ebe9..f1e8555903 100644
--- a/test/run_tests.cpp
+++ b/test/run_tests.cpp
@@ -659,17 +659,15 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 {
}
)SOURCE", "loop\nloop\nloop\nloop\n");
- add_simple_case("break out of while loop", R"SOURCE(
+ add_simple_case("continue and break", R"SOURCE(
use "std.zig";
export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 {
var i : i32 = 0;
while true {
- while true {
- if i >= 4 {
- break;
- }
- print_str("loop\n");
- i += 1;
+ print_str("loop\n");
+ i += 1;
+ if i < 4 {
+ continue;
}
break;
}
@@ -678,6 +676,8 @@ export fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 {
)SOURCE", "loop\nloop\nloop\nloop\n");
}
+////////////////////////////////////////////////////////////////////////////////////
+
static void add_compile_failure_test_cases(void) {
add_compile_fail_case("multiple function definitions", R"SOURCE(
fn a() {}
@@ -958,6 +958,12 @@ fn f() {
break;
}
)SOURCE", 1, ".tmp_source.zig:3:5: error: 'break' expression not in loop");
+
+ add_compile_fail_case("invalid continue expression", R"SOURCE(
+fn f() {
+ continue;
+}
+ )SOURCE", 1, ".tmp_source.zig:3:5: error: 'continue' expression not in loop");
}
static void print_compiler_invocation(TestCase *test_case) {