diff options
| author | Ryan Liptak <squeek502@hotmail.com> | 2023-02-02 00:54:07 -0800 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2023-02-03 14:48:08 +0200 |
| commit | 9db084f43d6f253f36484b9e3b76ea483917a893 (patch) | |
| tree | cc9dd27289d7e937b2a56413f7a5faa461f66005 /test/behavior/error.zig | |
| parent | 03cdb4fb5853109e46bdc08d8a849a23780093ae (diff) | |
| download | zig-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.zig | 15 |
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).?); +} |
