switch()

Manu turkeyman at gmail.com
Thu Feb 20 08:53:19 PST 2014


On 21 February 2014 01:20, Steven Schveighoffer <schveiguy at yahoo.com> wrote:

> On Thu, 20 Feb 2014 10:13:27 -0500, Daniel Murphy <
> yebbliesnospam at gmail.com> wrote:
>
>  "Steven Schveighoffer"  wrote in message news:op.xbk44onleav7ka@
>> stevens-macbook-pro.local...
>>
>>  What I really would be curious about is if in most D code, you see a lot
>>> more default: break; than default: assert(0);
>>>
>>
>> I just did a quick git-grep on the compiler source (not D, but all
>> switches do have a default thanks to the d port)
>>
>> With 707 "default:"s 68 had a break on either the same or next line, and
>> 249 had an assert(0).
>>
>> On phobos I get 22 assert(0)s vs 10 breaks with 147 defaults
>>
>> With druntime i get 24 assert(0)s + 5 error();s vs 11 breaks with 64
>> defaults.
>>
>
> Good data, but I was more thinking of people who use D, not the core
> language. The core language's developers have different behaviors than
> standard users. I'm not dismissing this data, but I would like to see more
> application statistics.
>

In my little app:
 17 default: break;
 1 default: assert(0); ... and I just realised it should have been a final
switch() anyway... so now there's 0.

I haven't just been lazy, the default case just happens to be as if an
unhandled else in many cases.

Another interesting data point would be whether any of those asserts were
> inserted after the language deprecated missing defaults, or if they existed
> beforehand.
>
> One thing that is nice is how asserts are supported in D. It makes this a
> much easier decision.
>
> -Steve
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20140221/55dd5421/attachment-0001.html>


More information about the Digitalmars-d mailing list