From 8feb3987608945040c955bd7b24be3841ebf74ac Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Sun, 17 Jul 2022 17:03:52 +0300 Subject: Sema: validate function parameter types and return type --- .../function_parameter_is_opaque.zig | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/cases/compile_errors/function_parameter_is_opaque.zig (limited to 'test/cases/compile_errors/function_parameter_is_opaque.zig') 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 -- cgit v1.2.3