diff options
Diffstat (limited to 'test/cases/compile_errors/function_parameter_is_opaque.zig')
| -rw-r--r-- | test/cases/compile_errors/function_parameter_is_opaque.zig | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/cases/compile_errors/function_parameter_is_opaque.zig b/test/cases/compile_errors/function_parameter_is_opaque.zig new file mode 100644 index 0000000000..31c477e8bc --- /dev/null +++ b/test/cases/compile_errors/function_parameter_is_opaque.zig @@ -0,0 +1,30 @@ +const FooType = opaque {}; +export fn entry1() void { + const someFuncPtr: fn (FooType) void = undefined; + _ = someFuncPtr; +} + +export fn entry2() void { + const someFuncPtr: fn (@TypeOf(null)) void = undefined; + _ = someFuncPtr; +} + +fn foo(p: FooType) void {_ = p;} +export fn entry3() void { + _ = foo; +} + +fn bar(p: @TypeOf(null)) void {_ = p;} +export fn entry4() void { + _ = bar; +} + +// error +// backend=stage2 +// target=native +// +// :3:24: error: parameter of opaque type 'tmp.FooType' not allowed +// :1:17: note: opaque declared here +// :8:24: error: parameter of type '@TypeOf(null)' not allowed +// :12:1: error: parameter of opaque type 'tmp.FooType' not allowed +// :17:1: error: parameter of type '@TypeOf(null)' not allowed |
