Feedback Thread: DIP 1034--Add a Bottom Type (reboot)--Final Review

Meta jared771 at gmail.com
Tue Sep 22 18:11:56 UTC 2020


On Tuesday, 22 September 2020 at 17:24:02 UTC, Paul Backus wrote:
> On Tuesday, 22 September 2020 at 12:17:09 UTC, Mike Parker 
> wrote:
>> This is the feedback thread for the Final Review of DIP 1034, 
>> "Add a Bottom Type (reboot)".
>
> From the DIP:
>
>>  * A union has the size of the largest member. Adding a 
>> noreturn field to a union never increases the size, so its 
>> size is 0.
>
> Currently, all structs and unions must have .init values that 
> are computable at compile time, which means that adding a 
> noreturn field would have to be a compile-time error, since it 
> makes the .init value impossible to compute. You should 
> probably specify in the section about `noreturn.init` than any 
> aggregate with a noreturn field also has no .init value.

We could also make noreturn.sizeof == 1, like with void. As for 
noreturn.init, it should be equivalent to assert(0) IMO, although 
that contradicts the rule that it's *accessing* a noreturn value, 
not creating it, that aborts the program.


More information about the Digitalmars-d mailing list