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