diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-09-09 21:36:08 +0300 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-09-15 00:50:18 +0300 |
| commit | 5e37da6ade7eb307d51c21a2dfcdbef23e9cbf08 (patch) | |
| tree | a4549f045d0c87d67519eb1045d3ddccf84d9751 /test/behavior/eval.zig | |
| parent | bf4a3df9a961e18a258d94fa35b0c433424e4bbe (diff) | |
| download | zig-5e37da6ade7eb307d51c21a2dfcdbef23e9cbf08.tar.gz zig-5e37da6ade7eb307d51c21a2dfcdbef23e9cbf08.zip | |
Sema: check_comptime_control_flow needs to check runtime_index
Diffstat (limited to 'test/behavior/eval.zig')
| -rw-r--r-- | test/behavior/eval.zig | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/behavior/eval.zig b/test/behavior/eval.zig index dbbdbf2df3..849e0ca6cc 100644 --- a/test/behavior/eval.zig +++ b/test/behavior/eval.zig @@ -1371,3 +1371,30 @@ test "break from inline loop depends on runtime condition" { try expect(blk == 4); } } + +test "inline for inside a runtime condition" { + var a = false; + if (a) { + const arr = .{ 1, 2, 3 }; + inline for (arr) |val| { + if (val < 3) continue; + try expect(val == 3); + } + } +} + +test "continue in inline for inside a comptime switch" { + const arr = .{ 1, 2, 3 }; + var count: u8 = 0; + switch (arr[1]) { + 2 => { + inline for (arr) |val| { + if (val == 2) continue; + + count += val; + } + }, + else => {}, + } + try expect(count == 4); +} |
