Wish: Variable Not Used Warning
Robert Fraser
fraserofthenight at gmail.com
Fri Jul 11 15:40:16 PDT 2008
superdan Wrote:
> Robert Fraser Wrote:
>
> > Don Wrote:
> >
> > > superdan wrote:
> > > > 4. warning - switch statement has no default
> > > >
> > > > another example of a motherfuck. just require total coverage. in closed-set cases i routinely write anyway:
> > > >
> > > > switch (crap)
> > > > {
> > > > case a: ...; break;
> > > > case b: ...; break;
> > > > default: assert(crap == c): ...; break;
> > > > }
> > > >
> > > > again: vast majority of code already has a default. the minority just has to add a little code. make it an error.
> > >
> > > Yup. Make it an error.
> >
> > I agree with everything else, but this one I think shouldn't be an error or
> > warning (the implicit assert(0) is enough). This is because the vast
> > majority of switch statements I use (and many I see) are over enums, and
> > if every branch in the enumeration is covered, a pointless "default" will just
> > complicate code.
>
> you are not disagreeing. switching over an enum is already closed if you
> mention all cases. the compiler knows that. it should indeed just throw an
> error if you have an out-of-range value that you forged from an int. but
> that's an uncommon case. don't make all pay for a rare bug.
Ah, in that case we are in agreement. But as of a few versions ago, DMD
still gives a warning even if you use all the possible values of an enum in a
switch statement.
More information about the Digitalmars-d
mailing list