On Sunday, 9 July 2017 at 19:30:25 UTC, Meta wrote:
I thought some more about the ramifications of having a Bottom type in D. Having a special type like this interacts badly with most aspects of D's generic programming capabilities, even on the simplest level. At the least we would probably have to create special cases everywhere in the compiler and/or libraries that check if the type we're working with is the bottom type. A few simple cases I can think of off the top of my head:

alias Bottom = typeof(assert(0)); //for convenience

Bottom* pb; //Must be statically disallowed as this makes no sense
Bottom[] ab; //ditto
cast(Bottom)1; //ditto

Another case that we should probably just statically disallow:

alias ImmutableBottom = immutable Bottom; //Ditto for shared, const, etc.

This obviously doesn't make any sense anyway.

Reply via email to