KennyTM~:
> switch (x) {
> case 2:
> doSomething();
> // At this point:
> // Compiles fine in C.
> // Falls through to the next (irrelevant) branch.
> // Compile-time error in D (missing "break;" or "goto case 3;")
> case 3:
> doSomeTotallyDifferentThing(x, ~x);
> break;
> ...
> }
Nice idea.
"goto case 3;" isn't the nicest syntax to step to the following case, but it
has the advantage that it keeps working if you shuffle the cases.
So this design is acceptable, avoids introducing a third version of switch,
keeps the minimal compatibility necessary for C. If other people like it, then
it may be implemented in D2.
Anyone sees disadvantages?
Bye,
bearophile