amber-demo branch has trouble with the switch on String

Vicente Romero vicente.romero at oracle.com
Wed Oct 17 14:55:48 UTC 2018


Hi Remi,

Thanks again for reporting this bug. It has been fixed in the patterns 
repo [1], thanks Jan, and automagically imported to the amber-demo

Vicente

[1] http://hg.openjdk.java.net/amber/amber/rev/37bbcd1f1f50

On 10/9/18 6:45 AM, Remi Forax wrote:
> Hi all,
> this was reported by one of my students.
>
> It seems there is a bad merge somewhere with the amber-demo branch,
> this issue is no reproducible with the latest beta of jdk 12.
>
> javac struggle with the following code:
>    public static String exprStringSwitch(String index) {
>          return switch(index) {
>              case "viva zorg", "foo" -> "zero";
>              case "bar" -> "one";
>              case "baz" -> "a lot";
>              default -> throw new IllegalArgumentException("number should be foo, bar, baz or viva zorg. Having : " + index);
>          };
>    }
>
> Note: ./src/main/java/fr.umlv.javainside.labthree/fr/umlv/javainside/labthree/ExprSwitches.java uses preview language features.
> Note: Recompile with -Xlint:preview for details.
> An exception has occurred in the compiler (12-amber). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
> java.lang.NullPointerException
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStats(Gen.java:662)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStats(Gen.java:647)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitSwitch(Gen.java:1226)
>      at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCSwitch.accept(JCTree.java:1260)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genDef(Gen.java:591)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:626)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:612)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStats(Gen.java:663)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1027)
>      at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1052)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genDef(Gen.java:591)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:626)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:612)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStats(Gen.java:663)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitLetExpr(Gen.java:2152)
>      at jdk.compiler/com.sun.tools.javac.tree.JCTree$LetExpr.accept(JCTree.java:3202)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:813)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitReturn(Gen.java:1623)
>      at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCReturn.accept(JCTree.java:1665)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genDef(Gen.java:591)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:626)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:612)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStats(Gen.java:663)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1027)
>      at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1052)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genDef(Gen.java:591)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:626)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:897)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:860)
>      at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:894)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genDef(Gen.java:591)
>      at jdk.compiler/com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2204)
>      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:756)
>      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1647)
>      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1615)
>      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:973)
>      at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:311)
>      at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:170)
>      at jdk.compiler/com.sun.tools.javac.main.JavacToolProvider.run(JavacToolProvider.java:46)
>      at java.base/java.util.spi.ToolProvider.run(ToolProvider.java:137)
>
> cheers,
> Rémi


More information about the amber-dev mailing list