diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-02-19 10:20:19 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-02-19 10:20:19 -0700 |
| commit | b5b634e4e8a2a1fe32fba50ccd175257b4213936 (patch) | |
| tree | 4eed625db81dd4d6907e386084df36ec3ac85687 /test/cases/compile_errors | |
| parent | efdc94c10712f610e7de5e49fd9cd6f88b4bbbae (diff) | |
| parent | 02f5d2673f1bb21e7329acdd664fed565ecd4317 (diff) | |
| download | zig-b5b634e4e8a2a1fe32fba50ccd175257b4213936.tar.gz zig-b5b634e4e8a2a1fe32fba50ccd175257b4213936.zip | |
Merge remote-tracking branch 'origin/master' into llvm16
Diffstat (limited to 'test/cases/compile_errors')
| -rw-r--r-- | test/cases/compile_errors/for.zig | 40 | ||||
| -rw-r--r-- | test/cases/compile_errors/for_discard_unbounded.zig | 10 | ||||
| -rw-r--r-- | test/cases/compile_errors/for_empty.zig | 11 | ||||
| -rw-r--r-- | test/cases/compile_errors/for_extra_capture.zig | 12 | ||||
| -rw-r--r-- | test/cases/compile_errors/for_extra_condition.zig | 11 | ||||
| -rw-r--r-- | test/cases/compile_errors/for_unbounded.zig | 11 | ||||
| -rw-r--r-- | test/cases/compile_errors/invalid_pointer_for_var_type.zig | 2 | ||||
| -rw-r--r-- | test/cases/compile_errors/underscore_should_not_be_usable_inside_for.zig | 4 |
8 files changed, 98 insertions, 3 deletions
diff --git a/test/cases/compile_errors/for.zig b/test/cases/compile_errors/for.zig new file mode 100644 index 0000000000..5bd3aa0c64 --- /dev/null +++ b/test/cases/compile_errors/for.zig @@ -0,0 +1,40 @@ +export fn a() void { + for (0..10, 10..21) |i, j| { + _ = i; _ = j; + } +} +export fn b() void { + const s1 = "hello"; + const s2 = true; + for (s1, s2) |i, j| { + _ = i; _ = j; + } +} +export fn c() void { + var buf: [10]u8 = undefined; + for (buf) |*byte| { + _ = byte; + } +} +export fn d() void { + const x: [*]const u8 = "hello"; + const y: [*]const u8 = "world"; + for (x, 0.., y) |x1, x2, x3| { + _ = x1; _ = x2; _ = x3; + } +} + +// error +// backend=stage2 +// target=native +// +// :2:5: error: non-matching for loop lengths +// :2:11: note: length 10 here +// :2:19: note: length 11 here +// :9:14: error: type 'bool' does not support indexing +// :9:14: note: for loop operand must be an array, slice, tuple, or vector +// :15:16: error: pointer capture of non pointer type '[10]u8' +// :15:10: note: consider using '&' here +// :22:5: error: unbounded for loop +// :22:10: note: type '[*]const u8' has no upper bound +// :22:18: note: type '[*]const u8' has no upper bound diff --git a/test/cases/compile_errors/for_discard_unbounded.zig b/test/cases/compile_errors/for_discard_unbounded.zig new file mode 100644 index 0000000000..93434d0c21 --- /dev/null +++ b/test/cases/compile_errors/for_discard_unbounded.zig @@ -0,0 +1,10 @@ +export fn a() void { + for (0..10, 10..) |i, _| { + _ = i; + } +} +// error +// backend=stage2 +// target=native +// +// :2:27: error: discard of unbounded counter diff --git a/test/cases/compile_errors/for_empty.zig b/test/cases/compile_errors/for_empty.zig new file mode 100644 index 0000000000..a4cb5b3c4e --- /dev/null +++ b/test/cases/compile_errors/for_empty.zig @@ -0,0 +1,11 @@ +export fn b() void { + for () |i| { + _ = i; + } +} + +// error +// backend=stage2 +// target=native +// +// :2:10: error: expected expression, found ')' diff --git a/test/cases/compile_errors/for_extra_capture.zig b/test/cases/compile_errors/for_extra_capture.zig new file mode 100644 index 0000000000..a137b57d51 --- /dev/null +++ b/test/cases/compile_errors/for_extra_capture.zig @@ -0,0 +1,12 @@ +export fn b() void { + for (0..10) |i, j| { + _ = i; _ = j; + } +} + +// error +// backend=stage2 +// target=native +// +// :2:21: error: extra capture in for loop +// :2:21: note: run 'zig fmt' to upgrade your code automatically diff --git a/test/cases/compile_errors/for_extra_condition.zig b/test/cases/compile_errors/for_extra_condition.zig new file mode 100644 index 0000000000..11c013acee --- /dev/null +++ b/test/cases/compile_errors/for_extra_condition.zig @@ -0,0 +1,11 @@ +export fn a() void { + for (0..10, 10..20) |i| { + _ = i; + } +} + +// error +// backend=stage2 +// target=native +// +// :2:19: error: for input is not captured diff --git a/test/cases/compile_errors/for_unbounded.zig b/test/cases/compile_errors/for_unbounded.zig new file mode 100644 index 0000000000..5d05b1061f --- /dev/null +++ b/test/cases/compile_errors/for_unbounded.zig @@ -0,0 +1,11 @@ +export fn b() void { + for (0..) |i| { + _ = i; + } +} + +// error +// backend=stage2 +// target=native +// +// :2:5: error: unbounded for loop diff --git a/test/cases/compile_errors/invalid_pointer_for_var_type.zig b/test/cases/compile_errors/invalid_pointer_for_var_type.zig index ee193bab15..d94c7bd3b8 100644 --- a/test/cases/compile_errors/invalid_pointer_for_var_type.zig +++ b/test/cases/compile_errors/invalid_pointer_for_var_type.zig @@ -1,7 +1,7 @@ extern fn ext() usize; var bytes: [ext()]u8 = undefined; export fn f() void { - for (bytes) |*b, i| { + for (&bytes, 0..) |*b, i| { b.* = @as(u8, i); } } diff --git a/test/cases/compile_errors/underscore_should_not_be_usable_inside_for.zig b/test/cases/compile_errors/underscore_should_not_be_usable_inside_for.zig index 1fb79e11bd..b527d0d17e 100644 --- a/test/cases/compile_errors/underscore_should_not_be_usable_inside_for.zig +++ b/test/cases/compile_errors/underscore_should_not_be_usable_inside_for.zig @@ -1,6 +1,6 @@ export fn returns() void { - for ([_]void{}) |_, i| { - for ([_]void{}) |_, j| { + for ([_]void{}, 0..) |_, i| { + for ([_]void{}, 0..) |_, j| { return _; } } |
