authorgravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2023-02-02 00:54:07-08:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2023-02-03 14:48:08+02:00
log9db084f43d6f253f36484b9e3b76ea483917a893
treecc9dd27289d7e937b2a56413f7a5faa461f66005
parent03cdb4fb5853109e46bdc08d8a849a23780093ae

Add test for optional error set return types

Closes #5820

1 files changed, 15 insertions(+), 0 deletions(-)

test/behavior/error.zig+15
...@@ -896,3 +896,18 @@ test "optional error union return type" {...@@ -896,3 +896,18 @@ test "optional error union return type" {
896 };896 };
897 try expect(1234 == try S.foo().?);897 try expect(1234 == try S.foo().?);
898}898}
899
900test "optional error set return type" {
901 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
902 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
903
904 const E = error{ A, B };
905 const S = struct {
906 fn foo(return_null: bool) ?E {
907 return if (return_null) null else E.A;
908 }
909 };
910
911 try expect(null == S.foo(true));
912 try expect(E.A == S.foo(false).?);
913}