Fw: JEP 455: Non-enhanced switch statements

Angelos Bimpoudis angelos.bimpoudis at oracle.com
Tue Oct 24 22:49:18 UTC 2023


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 <yuriy.maslyanko at oracle.com>
Sent: 24 October 2023 21:57
To: Angelos Bimpoudis <angelos.bimpoudis at oracle.com>
Cc: compiler-dev at openjdk.org <compiler-dev at openjdk.org>
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;

    }



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/amber-spec-experts/attachments/20231024/ec35489e/attachment.htm>


More information about the amber-spec-experts mailing list