DIP 1017--Add Bottom Type--Final Review

Olivier FAURE couteaubleu at gmail.com
Tue Jan 15 12:20:20 UTC 2019


On Tuesday, 15 January 2019 at 08:59:07 UTC, Mike Parker wrote:
> DIP 1017, "Add Bottom Type", is now ready for Final Review.
>
> [...]
>
> Thanks in advance for your participation.

I agree that this proposal should still be in the "Community 
Review stage". The DIP procedure document says:

> At the end of the review period, the DIP Manager will work with 
> the POC to ensure all feedback has been addressed, revise the 
> DIP as necessary, and include a summary of the review round in 
> the Reviews section of the DIP.

While a "Reviews" section has been added, no other change has 
been added to the document. For instance, while the Reviews 
section notes that `Tbottom*` should logically be `typeof(null)`, 
the document body still lists `Tbottom*` == `Tbottom`.

But most importantly, the document does nothing to explore and 
compare alternatives to having a bottom type, that were suggested 
in the previous review threads.

For instance, it was suggested that a function not returning 
could be expressed through an out contract:

     void foobar() out (; false);

We could even add a __traits(wontReturn, ...) syntax, so that 
template functions could detect such contracts, and propagate 
them. Now, maybe these functions would be bloated and overly 
complicated and adding a bottom type would simplify them... but 
we should probably wait until these problems actually exist to 
add a layer of complexity to the type system.


More information about the Digitalmars-d mailing list