Switch expression with string concatenation
Jan Lahoda
jan.lahoda at oracle.com
Tue Nov 20 12:10:12 UTC 2018
Hi Tagir,
Thanks for the report, I've filled it here:
https://bugs.openjdk.java.net/browse/JDK-8214113
Jan
On 20.11.2018 10:40, Tagir Valeev wrote:
> Hello!
>
> Seems that switch expression behaves badly with string concatenation. Example:
>
> public class Java12Test {
> public static void main(String[] args) {
> String s = "foo";
> System.out.println(s + switch(0) {
> default -> {
> s = "bar";
> break 1;
> }
> });
> System.out.println(s);
> }
> }
>
>> "C:\Program Files\Java\jdk-12\bin\java.exe" -version
> openjdk version "12-ea" 2019-03-19
> OpenJDK Runtime Environment (build 12-ea+20)
> OpenJDK 64-Bit Server VM (build 12-ea+20, mixed mode, sharing)
>
>> "C:\Program Files\Java\jdk-12\bin\javac.exe" --enable-preview --release=12 Java12Test.java
> Note: Java12Test.java uses preview language features.
> Note: Recompile with -Xlint:preview for details.
>
>> "C:\Program Files\Java\jdk-12\bin\java.exe" --enable-preview Java12Test
> foo1
> foo
>
> As you can see, `s = "bar"` assignment was not executed.
>
> With best regards,
> Tagir Valeev
>
More information about the compiler-dev
mailing list