On 21 February 2014 01:20, Steven Schveighoffer <schvei...@yahoo.com> wrote:
> On Thu, 20 Feb 2014 10:13:27 -0500, Daniel Murphy < > yebbliesnos...@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 >