File tree 6 files changed +52
-9
lines changed
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
base-test/org.eclipse.jdt.groovy.core.tests.compiler/src/org/eclipse/jdt/groovy/core/tests/basic
6 files changed +52
-9
lines changed Original file line number Diff line number Diff line change @@ -1568,6 +1568,33 @@ public void testAnonymousInnerClass31() {
1568
1568
runConformTest (sources , "1:B;2:B;3:B;" );
1569
1569
}
1570
1570
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
+
1571
1598
@ Test
1572
1599
public void testMixedModeInnerProperties_GRE597 () {
1573
1600
//@formatter:off
Original file line number Diff line number Diff line change @@ -802,13 +802,17 @@ protected Expression anonymousInnerClassDef(AST node) {
802
802
((InnerClassNode ) classNode ).setAnonymous (true );
803
803
classNode .setEnclosingMethod (methodNode );
804
804
configureAST (classNode , node );
805
-
805
+ // GRECLIPSE add
806
+ output .addClass (classNode );
807
+ // GRECLIPSE end
806
808
assertNodeType (OBJBLOCK , node );
807
809
objectBlock (node );
808
810
809
811
AnonymousInnerClassCarrier ret = new AnonymousInnerClassCarrier ();
810
812
ret .innerClass = classNode ;
813
+ /* GRECLIPSE edit
811
814
output.addClass(classNode);
815
+ */
812
816
classNode = oldNode ;
813
817
return ret ;
814
818
}
Original file line number Diff line number Diff line change @@ -3677,14 +3677,16 @@ public InnerClassNode visitAnonymousInnerClassDeclaration(AnonymousInnerClassDec
3677
3677
anonymousInnerClass .setAnonymous (true );
3678
3678
anonymousInnerClass .putNodeMetaData (CLASS_NAME , innerClassName );
3679
3679
configureAST (anonymousInnerClass , ctx );
3680
-
3680
+ // GRECLIPSE add
3681
+ classNodeList .add (anonymousInnerClass );
3682
+ // GRECLIPSE end
3681
3683
classNodeStack .push (anonymousInnerClass );
3682
3684
ctx .classBody ().putNodeMetaData (CLASS_DECLARATION_CLASS_NODE , anonymousInnerClass );
3683
3685
this .visitClassBody (ctx .classBody ());
3684
3686
classNodeStack .pop ();
3685
-
3687
+ /* GRECLIPSE edit
3686
3688
classNodeList.add(anonymousInnerClass);
3687
-
3689
+ */
3688
3690
return anonymousInnerClass ;
3689
3691
}
3690
3692
Original file line number Diff line number Diff line change @@ -889,13 +889,17 @@ protected Expression anonymousInnerClassDef(AST node) {
889
889
((InnerClassNode ) classNode ).setAnonymous (true );
890
890
classNode .setEnclosingMethod (methodNode );
891
891
configureAST (classNode , node );
892
-
892
+ // GRECLIPSE add
893
+ output .addClass (classNode );
894
+ // GRECLIPSE end
893
895
assertNodeType (OBJBLOCK , node );
894
896
objectBlock (node );
895
897
896
898
AnonymousInnerClassCarrier ret = new AnonymousInnerClassCarrier ();
897
899
ret .innerClass = classNode ;
900
+ /* GRECLIPSE edit
898
901
output.addClass(classNode);
902
+ */
899
903
classNode = oldNode ;
900
904
return ret ;
901
905
}
Original file line number Diff line number Diff line change @@ -3533,14 +3533,16 @@ public InnerClassNode visitAnonymousInnerClassDeclaration(final AnonymousInnerCl
3533
3533
anonymousInnerClass .setAnonymous (true );
3534
3534
anonymousInnerClass .putNodeMetaData (CLASS_NAME , innerClassName );
3535
3535
configureAST (anonymousInnerClass , ctx );
3536
-
3536
+ // GRECLIPSE add
3537
+ classNodeList .add (anonymousInnerClass );
3538
+ // GRECLIPSE end
3537
3539
classNodeStack .push (anonymousInnerClass );
3538
3540
ctx .classBody ().putNodeMetaData (CLASS_DECLARATION_CLASS_NODE , anonymousInnerClass );
3539
3541
this .visitClassBody (ctx .classBody ());
3540
3542
classNodeStack .pop ();
3541
-
3543
+ /* GRECLIPSE edit
3542
3544
classNodeList.add(anonymousInnerClass);
3543
-
3545
+ */
3544
3546
return anonymousInnerClass ;
3545
3547
}
3546
3548
Original file line number Diff line number Diff line change @@ -889,13 +889,17 @@ protected Expression anonymousInnerClassDef(AST node) {
889
889
((InnerClassNode ) classNode ).setAnonymous (true );
890
890
classNode .setEnclosingMethod (methodNode );
891
891
configureAST (classNode , node );
892
-
892
+ // GRECLIPSE add
893
+ output .addClass (classNode );
894
+ // GRECLIPSE end
893
895
assertNodeType (OBJBLOCK , node );
894
896
objectBlock (node );
895
897
896
898
AnonymousInnerClassCarrier ret = new AnonymousInnerClassCarrier ();
897
899
ret .innerClass = classNode ;
900
+ /* GRECLIPSE edit
898
901
output.addClass(classNode);
902
+ */
899
903
classNode = oldNode ;
900
904
return ret ;
901
905
}
You can’t perform that action at this time.
0 commit comments