From 9db084f43d6f253f36484b9e3b76ea483917a893 Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Thu, 2 Feb 2023 00:54:07 -0800 Subject: [PATCH] Add test for optional error set return types Closes #5820 --- test/behavior/error.zig | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/behavior/error.zig b/test/behavior/error.zig index b2a6cc5a5052659f3264b80a86551bcb77e81f19..f30290eb918bcd5280e93a9867f6a7b0f2fd6743 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).?); +} -- 2.54.0