proposed @noreturn attribute
Moritz Maxeiner via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jul 18 14:35:21 PDT 2017
On Tuesday, 18 July 2017 at 20:49:56 UTC, Timon Gehr wrote:
> On 18.07.2017 20:46, Yuxuan Shui wrote:
>> On Tuesday, 18 July 2017 at 15:26:59 UTC, Timon Gehr wrote:
>>> On 18.07.2017 14:19, Stefan Koch wrote:
>>>> [...]
>>>
>>> D has a C-inspired first-order type system, so it is not
>>> necessarily crucial to have it in D. (The reason I got
>>> involved in this thread is that it was proposed to add Bottom
>>> as a type that is not really a type; 'void' is annoying
>>> enough as the 'null' of types. We don't really need another
>>> one of those.)
>>>
>>> [...]
>>
>> What about void?
>
> You can't have a value of type void, but it is not empty either.
>
> For example, this means that the following transformation is
> not always valid:
>
> return foo();
Could you explain why `return foo();` is even legal for a `void
foo() {}`? I wasn't aware of it before and the fact that you can
(syntactically) return the non-existent return value of `foo`
raises cognitive dissonance flags for me. I imagine there's a
type system reason?
More information about the Digitalmars-d
mailing list