aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors
diff options
context:
space:
mode:
Diffstat (limited to 'test/cases/compile_errors')
-rw-r--r--test/cases/compile_errors/closure_get_depends_on_failed_decl.zig26
-rw-r--r--test/cases/compile_errors/closure_get_in_param_ty_instantiate_incorrectly.zig24
2 files changed, 50 insertions, 0 deletions
diff --git a/test/cases/compile_errors/closure_get_depends_on_failed_decl.zig b/test/cases/compile_errors/closure_get_depends_on_failed_decl.zig
new file mode 100644
index 0000000000..ccdbf67713
--- /dev/null
+++ b/test/cases/compile_errors/closure_get_depends_on_failed_decl.zig
@@ -0,0 +1,26 @@
+pub inline fn instanceRequestAdapter() void {}
+
+pub inline fn requestAdapter(
+ comptime callbackArg: fn () callconv(.Inline) void,
+) void {
+ _ = (struct {
+ pub fn callback() callconv(.C) void {
+ callbackArg();
+ }
+ }).callback;
+ instanceRequestAdapter(undefined); // note wrong number of arguments here
+}
+
+inline fn foo() void {}
+
+pub export fn entry() void {
+ requestAdapter(foo);
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :11:5: error: expected 0 argument(s), found 1
+// :1:12: note: function declared here
+// :17:19: note: called from here
diff --git a/test/cases/compile_errors/closure_get_in_param_ty_instantiate_incorrectly.zig b/test/cases/compile_errors/closure_get_in_param_ty_instantiate_incorrectly.zig
new file mode 100644
index 0000000000..dc533442fb
--- /dev/null
+++ b/test/cases/compile_errors/closure_get_in_param_ty_instantiate_incorrectly.zig
@@ -0,0 +1,24 @@
+fn Observable(comptime T: type) type {
+ return struct {
+ fn map(Src: T, Dst: anytype, function: fn (T) Dst) Dst {
+ _ = Src;
+ _ = function;
+ return Observable(Dst);
+ }
+ };
+}
+
+fn u32Tou64(x: u32) u64 {
+ _ = x;
+ return 0;
+}
+
+pub export fn entry() void {
+ Observable(u32).map(u32, u64, u32Tou64(0));
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :17:25: error: expected type 'u32', found 'type'