> On Apr 23, 2018, at 2:27 PM, Guy Steele <guy.ste...@oracle.com> wrote: > > Good point, Rémi. However, note that > > case pat1, pat2 -> s > > is equally too close to > > case pat1 -> pat2 -> s > > and again they have very different meanings. > > We have to admit that there is room to blunder with this syntax. > > One way out would be to use a different arrow for `switch` statements: > > switch (x) { > case pat1 => case pat2 => s1; > case pat3 => pat4 -> s2; > case pat5, pat6 => s2; > case pat7, pat8 => pat9 -> s4; > }
As a careful coder, if I did not have a separate arrow `=>` (and probably even if I did), I would use formatting and parentheses to convey my intent: switch (x) { case pat1 -> case pat2 -> s1; case pat3 -> (pat4 -> s2); case pat5, pat6 -> s2; case pat7, pat8 -> (pat9 -> s4); } —Guy