What's the point of a switch without implicit fallthrough? If you take that away, it offers nothing that if/elseif doesn't. (Aside from not retyping the switch(stuff here), which you can bring into a function anyway, so whoop-de-doo. And I guess some performance boosts in rearranging the cases, but can't the optimizer do that in if/else anyway?)
int Case(in int value) { return myvar == value; } if(Case(10)) { } else if (Case(20)) { } else { /* default */ } You can even use goto and labels to simulate goto case. I'm quite serious here: fallthrough is the defining feature of the switch. Taking it away leaves you with nothing that if/elseif can't already do. Might as well just axe the whole thing. Oh yeah, the final switch would still be useful, since it offers a check that if/elseif doesn't, but meh, move it to std.typecons, since it is mostly for enums anyway. (I'm not actually for removing the switch. I'm firmly in the status quo camp.)