-
Bug
-
Resolution: Fixed
-
P3
-
11, 21
-
b10
The following invalid program crashes javac. The crash repros back to at least JDK 11.
public class X {
interface F {
void apply(E e);
}
enum E {
ONE
}
F f = (E.ONE) -> {};
}
An exception has occurred in the compiler (20-ea). Please file a bug against the Java compiler via the Java bug reporting page (https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com) for duplicates. Include your program, the following diagnostic, and the parameters passed to the Java compiler in your report. Thank you.
java.lang.NullPointerException: Cannot read field "sym" because "localEnv.enclMethod" is null
at jdk.compiler/com.sun.tools.javac.comp.MemberEnter.checkReceiver(MemberEnter.java:322)
at jdk.compiler/com.sun.tools.javac.comp.MemberEnter.visitVarDef(MemberEnter.java:267)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:1018)
at jdk.compiler/com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:163)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1265)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:1018)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:737)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStats(Attr.java:756)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:3171)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1994)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:709)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1306)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:1018)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:737)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:5592)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5485)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5309)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attrib(Attr.java:5248)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1331)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:960)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:317)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)
at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)
public class X {
interface F {
void apply(E e);
}
enum E {
ONE
}
F f = (E.ONE) -> {};
}
An exception has occurred in the compiler (20-ea). Please file a bug against the Java compiler via the Java bug reporting page (https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com) for duplicates. Include your program, the following diagnostic, and the parameters passed to the Java compiler in your report. Thank you.
java.lang.NullPointerException: Cannot read field "sym" because "localEnv.enclMethod" is null
at jdk.compiler/com.sun.tools.javac.comp.MemberEnter.checkReceiver(MemberEnter.java:322)
at jdk.compiler/com.sun.tools.javac.comp.MemberEnter.visitVarDef(MemberEnter.java:267)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:1018)
at jdk.compiler/com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:163)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1265)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:1018)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:737)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStats(Attr.java:756)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:3171)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1994)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:709)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1306)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:1018)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:737)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:5592)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5485)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5309)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attrib(Attr.java:5248)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1331)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:960)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:317)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)
at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)