On Jun 19, 10 17:56, bearophile wrote:
KennyTM~:
This "fallthrough" statement already exists.

      switch (x) {
         case 0:
           do_something();
           goto case;
         case 1:
           do_more_thing();
           goto case;
         case 2:
           done();
           break;
         default:
           error();
           break;
      }

I didn't know this, this is a hidden D feature. So it's just a matter of D 
forbidding the cases that miss an explicit return, goto, or break, assert(0), 
exit(), and similar.

As for the multiple returns in a function this needs a bit of care because this 
is acceptable:

switch (x) {
     case 0:
         if (y)
             goto case;
         else
             return x;
     default:
         break;
}

Bye,
bearophile

Actually it's not hidden :)

   http://www.digitalmars.com/d/1.0/statement.html#GotoStatement
   http://www.digitalmars.com/d/2.0/statement.html#GotoStatement

Reply via email to