| ... | ... | @@ -889,3 +889,16 @@ test "field access of anyerror results in smaller error set" { |
| 889 | 889 | try expect(@TypeOf(E2.A) == E2); |
| 890 | 890 | try expect(@TypeOf(@field(anyerror, "NotFound")) == error{NotFound}); |
| 891 | 891 | } |
| 892 | |
| 893 | test "optional error union return type" { |
| 894 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 895 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 896 | |
| 897 | const S = struct { |
| 898 | fn foo() ?anyerror!u32 { |
| 899 | var x: u32 = 1234; |
| 900 | return @as(anyerror!u32, x); |
| 901 | } |
| 902 | }; |
| 903 | try expect(1234 == try S.foo().?); |
| 904 | } |