| ... | ... | @@ -3886,6 +3886,22 @@ test "if error union with optional" { |
| 3886 | 3886 | } else |err| { |
| 3887 | 3887 | assert(err == error.BadValue); |
| 3888 | 3888 | } |
| 3889 | |
| 3890 | // Access the value by reference by using a pointer capture each time. |
| 3891 | var d: anyerror!?u32 = 3; |
| 3892 | if (d) |*optional_value| { |
| 3893 | if (optional_value.*) |*value| { |
| 3894 | value.* = 9; |
| 3895 | } |
| 3896 | } else |err| { |
| 3897 | unreachable; |
| 3898 | } |
| 3899 | |
| 3900 | if (d) |optional_value| { |
| 3901 | assert(optional_value.? == 9); |
| 3902 | } else |err| { |
| 3903 | unreachable; |
| 3904 | } |
| 3889 | 3905 | } |
| 3890 | 3906 | {#code_end#} |
| 3891 | 3907 | {#see_also|Optionals|Errors#} |