You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Jeffrey Morlan (JIRA)" <ji...@apache.org> on 2018/06/05 18:45:00 UTC

[jira] [Commented] (NETBEANS-906) nb-javac throws AssertionError compiling valid Java code involving inner classes

    [ https://issues.apache.org/jira/browse/NETBEANS-906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16502285#comment-16502285 ] 

Jeffrey Morlan commented on NETBEANS-906:
-----------------------------------------

Appears to be related to "tree.args = tree.args.prepend(makeNullCheck(tree.encl));"

In JDK 8, this line of code is in Attr.visitAnonymousClassdefinition.

In JDK 10, it was moved to TransTypes.visitNewClass:
https://bugs.openjdk.java.net/browse/JDK-8044853
http://hg.openjdk.java.net/jdk10/master/rev/22d665f53a4a

In nb-java-x, it's in both places and tree.args is getting prepended twice.

> nb-javac throws AssertionError compiling valid Java code involving inner classes
> --------------------------------------------------------------------------------
>
>                 Key: NETBEANS-906
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-906
>             Project: NetBeans
>          Issue Type: Bug
>          Components: java - Compiler
>    Affects Versions: 9.0
>         Environment: OpenJDK 1.8.0_171 on Ubuntu
>            Reporter: Jeffrey Morlan
>            Priority: Major
>
> NetBeans 9.0 RC1 with nb-javac plugin fails to compile code like this:
> public class Bug {
>     class A {}
>     static void b(Bug c) \{ c.new A(){}; }
> }
> It throws the following exception:
> java.lang.AssertionError
> 	at com.sun.tools.javac.util.Assert.error(Assert.java:155)
> 	at com.sun.tools.javac.util.Assert.check(Assert.java:46)
> 	at com.sun.tools.javac.comp.TransTypes.translateArgs(TransTypes.java:211)
> 	at com.sun.tools.javac.comp.TransTypes.visitNewClass(TransTypes.java:723)
> 	at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1695)
> 	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
> 	at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:504)
> 	at com.sun.tools.javac.comp.TransTypes.visitExec(TransTypes.java:655)
> 	at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1458)
> 	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
> 	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
> 	at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:167)
> 	at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1026)
> 	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
> 	at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:504)
> 	at com.sun.tools.javac.comp.TransTypes.visitMethodDef(TransTypes.java:539)
> 	at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:872)
> 	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
> 	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
> 	at com.sun.tools.javac.tree.TreeTranslator.visitClassDef(TreeTranslator.java:139)
> 	at com.sun.tools.javac.comp.TransTypes.translateClass(TransTypes.java:971)
> 	at com.sun.tools.javac.comp.TransTypes.visitClassDef(TransTypes.java:525)
> 	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:778)
> 	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
> 	at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:504)
> 	at com.sun.tools.javac.comp.TransTypes.translateTopLevelClass(TransTypes.java:995)
> 	at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1653)
> 	at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1520)
> 	at com.sun.tools.javac.api.JavacTaskImpl$2.process(JavacTaskImpl.java:567)
> 	at com.sun.tools.javac.api.JavacTaskImpl$Filter.run(JavacTaskImpl.java:644)
> 	at com.sun.tools.javac.api.JavacTaskImpl.generate(JavacTaskImpl.java:570)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists