On Mon, 3 Nov 2025 18:31:48 GMT, Archie Cobbs <[email protected]> wrote:

>> src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java line 4055:
>> 
>>> 4053:             int maximumShift;
>>> 4054:             switch (((OperatorSymbol)operator).opcode) {
>>> 4055:             case ByteCodes.ishl:
>> 
>> Nit: use "modernized" switch - multiple case labels and `->`?
>
> We can combined the labels, but since we're setting _two_ values we can't use 
> the `->` syntax. Fixed in 8044632727d.

Having two assignments should not be a blocker for `->`, no? It ought to be 
enough to use `{}`:

            switch (((OperatorSymbol)operator).opcode) {
            case ByteCodes.ishl, ByteCodes.ishr, ByteCodes.iushr,
                 ByteCodes.ishll, ByteCodes.ishrl, ByteCodes.iushrl -> {
                targetType = syms.intType;
                maximumShift = 32;
            }
            case ByteCodes.lshl, ByteCodes.lshr, ByteCodes.lushr,
                 ByteCodes.lshll, ByteCodes.lshrl, ByteCodes.lushrl -> {
                targetType = syms.longType;
                maximumShift = 64;
            }
            default -> {
                return;
            }
            }


I am not strictly insisting on using `->`, but it generally makes things 
simpler as there's guaranteed no fallthrough.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27102#discussion_r2494960651

Reply via email to