From f4b067743f2ad25a1153153e3a89e0fe92837ea7 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 27 Dec 2022 13:46:57 -0700 Subject: [PATCH] add behavior test for optional error union return type closes #1814 --- test/behavior/error.zig | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/behavior/error.zig b/test/behavior/error.zig index fdf9091fe8..459799f5f6 100644 --- a/test/behavior/error.zig +++ b/test/behavior/error.zig @@ -889,3 +889,16 @@ test "field access of anyerror results in smaller error set" { try expect(@TypeOf(E2.A) == E2); try expect(@TypeOf(@field(anyerror, "NotFound")) == error{NotFound}); } + +test "optional error union return type" { + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + + const S = struct { + fn foo() ?anyerror!u32 { + var x: u32 = 1234; + return @as(anyerror!u32, x); + } + }; + try expect(1234 == try S.foo().?); +}