[External] : Re: Rehabilitating switch -- a scorecard
Brian Goetz
brian.goetz at oracle.com
Mon May 17 22:23:10 UTC 2021
> I think we've done a remarkable job at rehabilitating this monster.
>
>
> I believe the only pending issue on that matter is the position of
> default inside the switch,
> With the legacy switch, default can be in the middle, with a switch on
> types that default has to be the last case.
>
> I think we should try to emit a warning if "default" is not at last
> position, both Eclipse and IntelliJ already have that warning.
>
>
In an earlier round, we pended this issue because there were corner
cases such as default falling into another case, such as:
switch (n) {
case 1: println("one"); break;
case 2: println("two"); break;
default: print("more than ");
case 3: println("three"); break;
}
which prints "one", "two", "three", or "more than three".
This is legal, if silly. We pended this issue until the rest of the
story shook out; now that it has, I think we are still kind of in the
same place here. A warning is OK here but it feels more like a style
hint than a real warning.
More information about the amber-spec-observers
mailing list