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