commit 9db084f43d6f253f36484b9e3b76ea483917a893 (tree) parent 03cdb4fb5853109e46bdc08d8a849a23780093ae Author: Ryan Liptak <squeek502@hotmail.com> Date: Thu, 2 Feb 2023 00:54:07 -0800 Add test for optional error set return types Closes #5820 Diffstat:
| M | test/behavior/error.zig | | | 15 | +++++++++++++++ |
1 file changed, 15 insertions(+), 0 deletions(-)
diff --git 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).?); +}