aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors/function_parameter_is_opaque.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/cases/compile_errors/function_parameter_is_opaque.zig')
-rw-r--r--test/cases/compile_errors/function_parameter_is_opaque.zig30
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