On Monday, 2 August 2021 at 14:46:36 UTC, jfondren wrote:
On Monday, 2 August 2021 at 14:31:45 UTC, Rekel wrote:
[...]
I don't know where you can find this in the docs, but what
doesn't seem trivial about it? The type of the expression
`print()` is void. That's the type that `doSomething` returns.
That's the type of the expression that `doSomething` does
return and the type of the expression following a `return`
keyword in `doSomething`. Rather than a rule expressly
permitting this, I would expect to find to either nothing (it's
permitted because it makes sense) or a rule against it (it's
expressly forbidden because it has to be to not work, because
it makes sense).
C, C++, Rust, and Zig are all fine with this. Nim doesn't like
it.
Wow. Just discovered that C accepts it. After 35 years of daily
use of C, there are still things to discover.