RFR: 8314226: Series of colon-style fallthrough switch cases with guards compiled incorrectly [v5]

Aggelos Biboudis abimpoudis at openjdk.org
Fri Sep 8 20:25:45 UTC 2023


On Thu, 7 Sep 2023 14:26:25 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:

>> Aggelos Biboudis has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Make patchCompletingNormallyCases void returning
>
> I think I'd like to ask for some more tests. Especially:
> - multiple cases with statements where the fall through goes from one to the other, e.g. something like:
> 
>    case Integer _ when ((Integer) obj) > 0:
>    case String _ when !((String) obj).isEmpty():
>        System.err.println(1);
>    case null:
>        System.err.println(2);
>    default:    
>        System.err.println(3);
> 
> - cases with loop statements with break (and/or continue) to the loop. E.g.:
> 
> while (true) {break;}
> 
> instead of `System.err.println(2);`
> 
> - break/continue, return, yield(?) going outside of the switch (probably one of them would be enough) in the duplicated section.

Thank you @lahodaj for the improvement. This is extremely elegant and reduces the code size!!!

-------------

PR Comment: https://git.openjdk.org/jdk/pull/15532#issuecomment-1712178630


More information about the compiler-dev mailing list