aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/error.zig
diff options
context:
space:
mode:
authorRyan Liptak <squeek502@hotmail.com>2023-02-02 00:54:07 -0800
committerVeikka Tuominen <git@vexu.eu>2023-02-03 14:48:08 +0200
commit9db084f43d6f253f36484b9e3b76ea483917a893 (patch)
treecc9dd27289d7e937b2a56413f7a5faa461f66005 /test/behavior/error.zig
parent03cdb4fb5853109e46bdc08d8a849a23780093ae (diff)
downloadzig-9db084f43d6f253f36484b9e3b76ea483917a893.tar.gz
zig-9db084f43d6f253f36484b9e3b76ea483917a893.zip
Add test for optional error set return types
Closes #5820
Diffstat (limited to 'test/behavior/error.zig')
-rw-r--r--test/behavior/error.zig15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/behavior/error.zig b/test/behavior/error.zig
index b2a6cc5a50..f30290eb91 100644
--- a/test/behavior/error.zig
+++ b/test/behavior/error.zig
@@ -896,3 +896,18 @@ test "optional error union return type" {
};
try expect(1234 == try S.foo().?);
}
+
+test "optional error set return type" {
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+
+ const E = error{ A, B };
+ const S = struct {
+ fn foo(return_null: bool) ?E {
+ return if (return_null) null else E.A;
+ }
+ };
+
+ try expect(null == S.foo(true));
+ try expect(E.A == S.foo(false).?);
+}