File tree Expand file tree Collapse file tree
base-test/org.eclipse.jdt.groovy.core.tests.compiler/src/org/eclipse/jdt/groovy/core/tests/basic
org.codehaus.groovy25/src/org/codehaus/groovy/antlr
org.codehaus.groovy30/src/org
apache/groovy/parser/antlr4
org.codehaus.groovy40/src/org
apache/groovy/parser/antlr4 Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1568,6 +1568,33 @@ public void testAnonymousInnerClass31() {
15681568 runConformTest (sources , "1:B;2:B;3:B;" );
15691569 }
15701570
1571+ @ Test // https://github.com/groovy/groovy-eclipse/issues/1268
1572+ public void testAnonymousInnerClass32 () {
1573+ //@formatter:off
1574+ String [] sources = {
1575+ "Script.groovy" ,
1576+ "class C {\n " +
1577+ " class D {\n " +
1578+ " }\n " +
1579+ " def obj = new Object() {\n " +
1580+ " @Override\n " +
1581+ " String toString() {\n " +
1582+ " return new Object() {\n " +
1583+ " @Override\n " +
1584+ " String toString() {\n " +
1585+ " new D()\n " +
1586+ " }\n " +
1587+ " }\n " +
1588+ " }\n " +
1589+ " }\n " +
1590+ "}\n " +
1591+ "new C().obj\n " ,
1592+ };
1593+ //@formatter:on
1594+
1595+ runConformTest (sources );
1596+ }
1597+
15711598 @ Test
15721599 public void testMixedModeInnerProperties_GRE597 () {
15731600 //@formatter:off
Original file line number Diff line number Diff line change @@ -802,13 +802,17 @@ protected Expression anonymousInnerClassDef(AST node) {
802802 ((InnerClassNode ) classNode ).setAnonymous (true );
803803 classNode .setEnclosingMethod (methodNode );
804804 configureAST (classNode , node );
805-
805+ // GRECLIPSE add
806+ output .addClass (classNode );
807+ // GRECLIPSE end
806808 assertNodeType (OBJBLOCK , node );
807809 objectBlock (node );
808810
809811 AnonymousInnerClassCarrier ret = new AnonymousInnerClassCarrier ();
810812 ret .innerClass = classNode ;
813+ /* GRECLIPSE edit
811814 output.addClass(classNode);
815+ */
812816 classNode = oldNode ;
813817 return ret ;
814818 }
Original file line number Diff line number Diff line change @@ -3677,14 +3677,16 @@ public InnerClassNode visitAnonymousInnerClassDeclaration(AnonymousInnerClassDec
36773677 anonymousInnerClass .setAnonymous (true );
36783678 anonymousInnerClass .putNodeMetaData (CLASS_NAME , innerClassName );
36793679 configureAST (anonymousInnerClass , ctx );
3680-
3680+ // GRECLIPSE add
3681+ classNodeList .add (anonymousInnerClass );
3682+ // GRECLIPSE end
36813683 classNodeStack .push (anonymousInnerClass );
36823684 ctx .classBody ().putNodeMetaData (CLASS_DECLARATION_CLASS_NODE , anonymousInnerClass );
36833685 this .visitClassBody (ctx .classBody ());
36843686 classNodeStack .pop ();
3685-
3687+ /* GRECLIPSE edit
36863688 classNodeList.add(anonymousInnerClass);
3687-
3689+ */
36883690 return anonymousInnerClass ;
36893691 }
36903692
Original file line number Diff line number Diff line change @@ -889,13 +889,17 @@ protected Expression anonymousInnerClassDef(AST node) {
889889 ((InnerClassNode ) classNode ).setAnonymous (true );
890890 classNode .setEnclosingMethod (methodNode );
891891 configureAST (classNode , node );
892-
892+ // GRECLIPSE add
893+ output .addClass (classNode );
894+ // GRECLIPSE end
893895 assertNodeType (OBJBLOCK , node );
894896 objectBlock (node );
895897
896898 AnonymousInnerClassCarrier ret = new AnonymousInnerClassCarrier ();
897899 ret .innerClass = classNode ;
900+ /* GRECLIPSE edit
898901 output.addClass(classNode);
902+ */
899903 classNode = oldNode ;
900904 return ret ;
901905 }
Original file line number Diff line number Diff line change @@ -3533,14 +3533,16 @@ public InnerClassNode visitAnonymousInnerClassDeclaration(final AnonymousInnerCl
35333533 anonymousInnerClass .setAnonymous (true );
35343534 anonymousInnerClass .putNodeMetaData (CLASS_NAME , innerClassName );
35353535 configureAST (anonymousInnerClass , ctx );
3536-
3536+ // GRECLIPSE add
3537+ classNodeList .add (anonymousInnerClass );
3538+ // GRECLIPSE end
35373539 classNodeStack .push (anonymousInnerClass );
35383540 ctx .classBody ().putNodeMetaData (CLASS_DECLARATION_CLASS_NODE , anonymousInnerClass );
35393541 this .visitClassBody (ctx .classBody ());
35403542 classNodeStack .pop ();
3541-
3543+ /* GRECLIPSE edit
35423544 classNodeList.add(anonymousInnerClass);
3543-
3545+ */
35443546 return anonymousInnerClass ;
35453547 }
35463548
Original file line number Diff line number Diff line change @@ -889,13 +889,17 @@ protected Expression anonymousInnerClassDef(AST node) {
889889 ((InnerClassNode ) classNode ).setAnonymous (true );
890890 classNode .setEnclosingMethod (methodNode );
891891 configureAST (classNode , node );
892-
892+ // GRECLIPSE add
893+ output .addClass (classNode );
894+ // GRECLIPSE end
893895 assertNodeType (OBJBLOCK , node );
894896 objectBlock (node );
895897
896898 AnonymousInnerClassCarrier ret = new AnonymousInnerClassCarrier ();
897899 ret .innerClass = classNode ;
900+ /* GRECLIPSE edit
898901 output.addClass(classNode);
902+ */
899903 classNode = oldNode ;
900904 return ret ;
901905 }
You can’t perform that action at this time.
0 commit comments