Hello all!

Yuriy pointed out a valid point.

1) Should we treat float/double/boolean/longs as a new addition to the 
non-enhanced switch (old switch) and support anything new that comes with that?

or

2) Should we treat those data types equally with all the pre-existing ones?

I am strongly in favour of the 2) for the shake of symmetry and uniformity in 
what the user will assume, thus I will fix the bug.

What do others think?

________________________________
From: Yuriy Maslyanko <[email protected]>
Sent: 24 October 2023 21:57
To: Angelos Bimpoudis <[email protected]>
Cc: [email protected] <[email protected]>
Subject: JEP 455: Non-enhanced switch statements


Hi Angelos,



Section 14.11.2 of 
https://cr.openjdk.org/~abimpoudis/instanceof/jep443-20231010/specs/instanceof-jls.html#jls-14.11.2
 has this note:



For compatibility reasons, switch statements that are not enhanced switch 
statements are not required to be exhaustive.



Noticed that if the switch selector statement is float/double/boolean (in this 
case it’s a non-enhanced switch statement), the code shown below fails with 
“error: the switch statement does not cover all possible input values”:



    static boolean check = false;

    public static boolean testMethod() {

        double v1 = 1d;

        switch ( v1 ) {

            case 1d:

                check = true;

                break;

        }

        return check;

    }



Reply via email to