aboutsummaryrefslogtreecommitdiff
path: root/test/cases/error.zig
diff options
context:
space:
mode:
authorJimmi Holst Christensen <jimmiholstchristensen@gmail.com>2018-04-28 14:05:08 +0200
committerJimmi Holst Christensen <jimmiholstchristensen@gmail.com>2018-04-28 14:05:08 +0200
commit3178528335cb5efbf237cecb9ea9eb3bfa31b21f (patch)
tree3a0d8ef0107e6a9989a55f2a3d8070ad42999217 /test/cases/error.zig
parent27cbb44993389ae042a03266743379c0f15a523e (diff)
downloadzig-3178528335cb5efbf237cecb9ea9eb3bfa31b21f.tar.gz
zig-3178528335cb5efbf237cecb9ea9eb3bfa31b21f.zip
Removed zero sized error set optimization
fixes #762 fixes #818
Diffstat (limited to 'test/cases/error.zig')
-rw-r--r--test/cases/error.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/cases/error.zig b/test/cases/error.zig
index e64bf02c91..c64c835fc4 100644
--- a/test/cases/error.zig
+++ b/test/cases/error.zig
@@ -175,3 +175,30 @@ fn baz_1() !i32 {
fn quux_1() !i32 {
return error.C;
}
+
+
+test "error: fn returning empty error set can be passed as fn returning any error" {
+ entry();
+ comptime entry();
+}
+
+fn entry() void {
+ foo2(bar2);
+}
+
+fn foo2(f: fn()error!void) void {
+ const x = f();
+}
+
+fn bar2() (error{}!void) { }
+
+
+test "error: Zero sized error set returned with value payload crash" {
+ _ = foo3(0);
+ _ = comptime foo3(0);
+}
+
+const Error = error{};
+fn foo3(b: usize) Error!usize {
+ return b;
+}