3 ms·
IIRC in the following, the expected type of `x` in B stops being bool (but I no longer have a Zig env set up so I can't test it). # A if (x) {
by frou_dh 4y ago
IIRC in the following, the expected type of `x` in B stops being bool (but I no longer have a Zig env set up so I can't test it).
# A
if (x) {
...
} else {
...
}
# B
if (x) {
...
} else |y| {
...
}
- hansvm 4y agoThat looks right. If/else is overloaded as doing the normal thing with bools by default, and if you try to capture something exceptional with `else |y|` then the type of `x` is inferred to be something capable of such a capture -- optionals or error unions.
- frou_dh 4y agoIn a statically typed language, this specifically comes off to me as an artificial way to keep the total number of keywords down.