diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-12-18 16:24:13 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-18 16:24:13 -0500 |
| commit | aca9c74e80e106309b9783ff251ab0cdd3fb9626 (patch) | |
| tree | 16c65995ac6d3b434af61c4cd61a191b81dd93a0 /test/cases/compile_errors | |
| parent | d93edadead45e447e6bc16c0934a3031a06d0fd8 (diff) | |
| parent | 9bb1104e373dec192fb2a22d48b023330ddbaeae (diff) | |
| download | zig-aca9c74e80e106309b9783ff251ab0cdd3fb9626.tar.gz zig-aca9c74e80e106309b9783ff251ab0cdd3fb9626.zip | |
Merge pull request #13914 from Vexu/variadic
implement defining C variadic functions
Diffstat (limited to 'test/cases/compile_errors')
3 files changed, 36 insertions, 9 deletions
diff --git a/test/cases/compile_errors/invalid_capture_type.zig b/test/cases/compile_errors/invalid_capture_type.zig new file mode 100644 index 0000000000..3813021c95 --- /dev/null +++ b/test/cases/compile_errors/invalid_capture_type.zig @@ -0,0 +1,24 @@ +export fn f1() void { + if (true) |x| { _ = x; } +} +export fn f2() void { + if (@as(usize, 5)) |_| {} +} +export fn f3() void { + if (@as(usize, 5)) |_| {} else |_| {} +} +export fn f4() void { + if (null) |_| {} +} +export fn f5() void { + if (error.Foo) |_| {} else |_| {} +} + +// error +// backend=stage2 +// target=native +// +// :2:9: error: expected optional type, found 'bool' +// :5:9: error: expected optional type, found 'usize' +// :8:9: error: expected error union type, found 'usize' +// :14:9: error: expected error union type, found 'error{Foo}' diff --git a/test/cases/compile_errors/invalid_variadic_function.zig b/test/cases/compile_errors/invalid_variadic_function.zig new file mode 100644 index 0000000000..997db9fee8 --- /dev/null +++ b/test/cases/compile_errors/invalid_variadic_function.zig @@ -0,0 +1,12 @@ +fn foo(...) void {} +fn bar(a: anytype, ...) callconv(a) void {} + +comptime { _ = foo; } +comptime { _ = bar; } + +// error +// backend=stage2 +// target=native +// +// :1:1: error: variadic function must have 'C' calling convention +// :2:1: error: generic function cannot be variadic diff --git a/test/cases/compile_errors/stage1/obj/invalid_maybe_type.zig b/test/cases/compile_errors/stage1/obj/invalid_maybe_type.zig deleted file mode 100644 index cb075c36b7..0000000000 --- a/test/cases/compile_errors/stage1/obj/invalid_maybe_type.zig +++ /dev/null @@ -1,9 +0,0 @@ -export fn f() void { - if (true) |x| { _ = x; } -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:2:9: error: expected optional type, found 'bool' |
