aboutsummaryrefslogtreecommitdiff
path: root/test/behavior
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-09-09 21:36:08 +0300
committerVeikka Tuominen <git@vexu.eu>2022-09-15 00:50:18 +0300
commit5e37da6ade7eb307d51c21a2dfcdbef23e9cbf08 (patch)
treea4549f045d0c87d67519eb1045d3ddccf84d9751 /test/behavior
parentbf4a3df9a961e18a258d94fa35b0c433424e4bbe (diff)
downloadzig-5e37da6ade7eb307d51c21a2dfcdbef23e9cbf08.tar.gz
zig-5e37da6ade7eb307d51c21a2dfcdbef23e9cbf08.zip
Sema: check_comptime_control_flow needs to check runtime_index
Diffstat (limited to 'test/behavior')
-rw-r--r--test/behavior/eval.zig27
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);
+}