[Submission] D Slices

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed Jun 1 09:03:35 PDT 2011


On 06/01/2011 10:26 AM, Daniel Murphy wrote:
> "Andrej Mitrovic"<andrej.mitrovich at gmail.com>  wrote in message
> news:mailman.517.1306925428.14074.digitalmars-d at puremagic.com...
>> On 6/1/11, Andrei Alexandrescu<SeeWebsiteForEmail at erdani.org>  wrote:
>>> Also, I think the runtime error on not handling all cases should be
>>> eliminated as well. It's very non-D-ish and error prone in the extreme
>>> (as unhandled cases tend to be often rare too). Right there with the
>>> HiddenFunc error.
>>>
>> I get these errors all the time in GUI apps. They're a pain in the
>> ass, and I really want them to surface during compilation instead of
>> getting triggered at random during runtime.
>
> Shouldn't final switch be the way to handle this though?

I think that should be the default behavior of switch.

> It seems like
> making it a compile time error will just force the programmer to insert
> 'default: assert(0);', which is basically what the compiler does anyway.  Or
> have I missed the point?

1. Most switch statements already have a default label.

2. Those that don't should be inspected and annotated by the programmer, 
not rely on the compiler to automagically insert code assuming the 
programmer's intent.

Every single time I had that assertion firing, the cause was a bug in my 
code. We can't leave that to a dynamic error, particularly since 
unhandled cases may be arbitrarily infrequent. The current state of 
affairs is choosing the wrong tradeoff, pure and simple.


Andrei


More information about the Digitalmars-d mailing list