| ... | @@ -889,3 +889,16 @@ test "field access of anyerror results in smaller error set" { | ... | @@ -889,3 +889,16 @@ test "field access of anyerror results in smaller error set" { |
| 889 | try expect(@TypeOf(E2.A) == E2); | 889 | try expect(@TypeOf(E2.A) == E2); |
| 890 | try expect(@TypeOf(@field(anyerror, "NotFound")) == error{NotFound}); | 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 | } |