Bug when lowering a method ref (concise method)

Remi Forax forax at univ-mlv.fr
Tue Oct 2 15:15:42 UTC 2018


Hi Vicente,
the test case 

public class ConciseMethodRef implements Runnable {
  public void run() { }
  
  Runnable f(Runnable r) -> r;
  
  void m() = f(this)::run;
}

still cause an issue.

java.lang.NullPointerException
	at jdk.compiler/com.sun.tools.javac.tree.TreeMaker.Ident(TreeMaker.java:681)
	at jdk.compiler/com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2552)
	at jdk.compiler/com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2449)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:879)
	at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
	at jdk.compiler/com.sun.tools.javac.comp.Lower.translate(Lower.java:2084)
	at jdk.compiler/com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2222)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:780)
	at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
	at jdk.compiler/com.sun.tools.javac.comp.Lower.translate(Lower.java:2084)
	at jdk.compiler/com.sun.tools.javac.comp.Lower.translate(Lower.java:2103)
	at jdk.compiler/com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3854)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1579)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1432)
	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)

at least with jdk 12-amber+0-fbed49487ec4

Rémi



----- Mail original -----
> De: "Remi Forax" <forax at univ-mlv.fr>
> À: "Vicente Romero" <vicente.romero at oracle.com>, "amber-dev" <amber-dev at openjdk.java.net>
> Envoyé: Dimanche 30 Septembre 2018 15:11:57
> Objet: Bug when lowering a method ref (concise method)

> Hi Vicente,
> another test case not handled by javac.
> 
> public class ConciseMethodRef implements Runnable {
>  public void run() -> null;
>  
>  Runnable f(Runnable r) -> r;
>  
>  void m() = f(this)::run;
> }
> 
> 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.tree.TreeMaker.isUnqualifiable(TreeMaker.java:1084)
>	at jdk.compiler/com.sun.tools.javac.tree.TreeMaker.QualIdent(TreeMaker.java:699)
>	at
>	jdk.compiler/com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2549)
>	at jdk.compiler/com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2447)
>	at
>	jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:879)
>	at
>	jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
>	at jdk.compiler/com.sun.tools.javac.comp.Lower.translate(Lower.java:2082)
>	at jdk.compiler/com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2220)
>	at
>	jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:780)
>	at
>	jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
>	at jdk.compiler/com.sun.tools.javac.comp.Lower.translate(Lower.java:2082)
>	at jdk.compiler/com.sun.tools.javac.comp.Lower.translate(Lower.java:2101)
>	at
>	jdk.compiler/com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3850)
>	at
>	jdk.compiler/com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1579)
>	at
>	jdk.compiler/com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1432)
>	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)
> 
> Rémi


More information about the amber-dev mailing list