diff options
Diffstat (limited to 'test/cases3/while.zig')
| -rw-r--r-- | test/cases3/while.zig | 44 |
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) |
