class Vars {
record Point(int x, int y) {}
enum Color {RED, GREEN, BLUE}
record ColoredPoint (Point p, Color c) {}
public static void main(String[] args) {
var cp = new ColoredPoint(new Point(3,4), Color.RED);
foo(cp);
}
public static void foo(Object o) {
if (o instanceof ColoredPoint(var(var x, var y), var c)) {
System.out.println(y);
}
}
}
The offending expression is:
o instanceof ColoredPoint(var(var x, var y), var c)
where the first var is erroneously placed.
Stacktrace:
An exception has occurred in the compiler (21-internal). 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 invoke "com.sun.tools.javac.tree.JCTree.accept(com.sun.tools.javac.tree.JCTree$Visitor)" because "tree" is null
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribType(Attr.java:729)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribType(Attr.java:722)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitRecordPattern(Attr.java:4197)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCRecordPattern.accept(JCTree.java:2481)
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.visitRecordPattern(Attr.java:4230)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCRecordPattern.accept(JCTree.java:2481)
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.visitTypeTest(Attr.java:4106)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCInstanceOf.accept(JCTree.java:2237)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitParens(Attr.java:3944)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCParens.accept(JCTree.java:2034)
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.visitIf(Attr.java:2212)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1573)
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.visitBlock(Attr.java:1440)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1088)
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.visitMethodDef(Attr.java:1230)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:912)
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:5593)
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:1335)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:964)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
at jdk.compiler/com.sun.tools.javac.launcher.Main.compile(Main.java:399)
at jdk.compiler/com.sun.tools.javac.launcher.Main.run(Main.java:202)
at jdk.compiler/com.sun.tools.javac.launcher.Main.main(Main.java:132)
error: compilation failed
record Point(int x, int y) {}
enum Color {RED, GREEN, BLUE}
record ColoredPoint (Point p, Color c) {}
public static void main(String[] args) {
var cp = new ColoredPoint(new Point(3,4), Color.RED);
foo(cp);
}
public static void foo(Object o) {
if (o instanceof ColoredPoint(var(var x, var y), var c)) {
System.out.println(y);
}
}
}
The offending expression is:
o instanceof ColoredPoint(var(var x, var y), var c)
where the first var is erroneously placed.
Stacktrace:
An exception has occurred in the compiler (21-internal). 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 invoke "com.sun.tools.javac.tree.JCTree.accept(com.sun.tools.javac.tree.JCTree$Visitor)" because "tree" is null
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribType(Attr.java:729)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribType(Attr.java:722)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitRecordPattern(Attr.java:4197)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCRecordPattern.accept(JCTree.java:2481)
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.visitRecordPattern(Attr.java:4230)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCRecordPattern.accept(JCTree.java:2481)
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.visitTypeTest(Attr.java:4106)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCInstanceOf.accept(JCTree.java:2237)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:663)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitParens(Attr.java:3944)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCParens.accept(JCTree.java:2034)
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.visitIf(Attr.java:2212)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1573)
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.visitBlock(Attr.java:1440)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1088)
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.visitMethodDef(Attr.java:1230)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:912)
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:5593)
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:1335)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:964)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
at jdk.compiler/com.sun.tools.javac.launcher.Main.compile(Main.java:399)
at jdk.compiler/com.sun.tools.javac.launcher.Main.run(Main.java:202)
at jdk.compiler/com.sun.tools.javac.launcher.Main.main(Main.java:132)
error: compilation failed