aboutsummaryrefslogtreecommitdiff
path: root/test/cases3/while.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/cases3/while.zig')
-rw-r--r--test/cases3/while.zig44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/cases3/while.zig b/test/cases3/while.zig
index b9b444f708..4b4c3ffc26 100644
--- a/test/cases3/while.zig
+++ b/test/cases3/while.zig
@@ -31,6 +31,50 @@ fn staticWhileLoop2() -> i32 {
}
}
+fn continueAndBreak() {
+ @setFnTest(this);
+
+ runContinueAndBreakTest();
+ assert(continue_and_break_counter == 8);
+}
+var continue_and_break_counter: i32 = 0;
+fn runContinueAndBreakTest() {
+ var i : i32 = 0;
+ while (true) {
+ continue_and_break_counter += 2;
+ i += 1;
+ if (i < 4) {
+ continue;
+ }
+ break;
+ }
+ assert(i == 4);
+}
+
+fn returnWithImplicitCastFromWhileLoop() {
+ @setFnTest(this);
+
+ %%returnWithImplicitCastFromWhileLoopTest();
+}
+fn returnWithImplicitCastFromWhileLoopTest() -> %void {
+ while (true) {
+ return;
+ }
+}
+
+fn whileWithContinueExpr() {
+ @setFnTest(this);
+
+ var sum: i32 = 0;
+ {var i: i32 = 0; while (i < 10; i += 1) {
+ if (i == 5) continue;
+ sum += i;
+ }}
+ assert(sum == 40);
+}
+
+
+
// TODO const assert = @import("std").debug.assert;
fn assert(ok: bool) {
if (!ok)