> 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

Reply via email to