15
15
*/
16
16
package org .eclipse .jdt .groovy .core .tests .basic ;
17
17
18
+ import org .junit .Ignore ;
18
19
import org .junit .Test ;
19
20
20
21
public final class InnerClassTests extends GroovyCompilerTestSuite {
@@ -213,7 +214,7 @@ public void testInnerClass2() {
213
214
}
214
215
215
216
@ Test
216
- public void testInnerClass2a () {
217
+ public void testInnerClass3 () {
217
218
//@formatter:off
218
219
String [] sources = {
219
220
"Outer.groovy" ,
@@ -234,7 +235,7 @@ public void testInnerClass2a() {
234
235
}
235
236
236
237
@ Test
237
- public void testInnerClass3 () {
238
+ public void testInnerClass4 () {
238
239
//@formatter:off
239
240
String [] sources = {
240
241
"WithInnerClass.groovy" ,
@@ -253,8 +254,28 @@ public void testInnerClass3() {
253
254
runNegativeTest (sources , "" );
254
255
}
255
256
257
+ @ Test // GROOVY-4287
258
+ public void testInnerClass5 () {
259
+ //@formatter:off
260
+ String [] sources = {
261
+ "Script.groovy" ,
262
+ "import static p.Outer.Inner\n " +
263
+ "new Inner()\n " ,
264
+
265
+ "p/Outer.groovy" ,
266
+ "package p\n " +
267
+ "class Outer {\n " +
268
+ " static class Inner {\n " +
269
+ " }\n " +
270
+ "}\n " ,
271
+ };
272
+ //@formatter:on
273
+
274
+ runConformTest (sources );
275
+ }
276
+
256
277
@ Test // https://github.com/groovy/groovy-eclipse/issues/708
257
- public void testInnerClass4 () {
278
+ public void testInnerClass6 () {
258
279
//@formatter:off
259
280
String [] sources = {
260
281
"Script.groovy" ,
@@ -281,7 +302,51 @@ public void testInnerClass4() {
281
302
}
282
303
283
304
@ Test
284
- public void testInnerClass5 () {
305
+ public void testInnerClass7 () {
306
+ //@formatter:off
307
+ String [] sources = {
308
+ "Script.groovy" ,
309
+ "class Outer {\n " +
310
+ " @groovy.transform.TupleConstructor(defaults=false)\n " +
311
+ " class Inner {\n " +
312
+ " int p\n " +
313
+ " }\n " +
314
+ " static m(int n) {\n " +
315
+ " new Inner(new Outer(), n)\n " +
316
+ " }\n " +
317
+ "}\n " +
318
+ "print Outer.m(4).p\n " +
319
+ "print new Outer.Inner(new Outer(), 2).p\n " ,
320
+ };
321
+ //@formatter:on
322
+
323
+ runConformTest (sources , "42" );
324
+ }
325
+
326
+ @ Ignore @ Test // GROOVY-8947
327
+ public void testInnerClass8 () {
328
+ //@formatter:off
329
+ String [] sources = {
330
+ "Script.groovy" ,
331
+ "class Outer {\n " +
332
+ " @groovy.transform.TupleConstructor(defaults=false)\n " +
333
+ " class Inner {\n " +
334
+ " int p\n " +
335
+ " }\n " +
336
+ " static m(int n) {\n " +
337
+ " new Outer().(new Inner(n))\n " + // TODO: no parens
338
+ " }\n " +
339
+ "}\n " +
340
+ "print Outer.m(4).p\n " +
341
+ "print new Outer().(new Outer.Inner(2)).p\n " , // TODO: no parens, no qualifier
342
+ };
343
+ //@formatter:on
344
+
345
+ runConformTest (sources , "42" );
346
+ }
347
+
348
+ @ Test
349
+ public void testInnerClass9 () {
285
350
//@formatter:off
286
351
String [] sources = {
287
352
"Script.groovy" ,
@@ -1595,6 +1660,25 @@ public void testAnonymousInnerClass32() {
1595
1660
runConformTest (sources );
1596
1661
}
1597
1662
1663
+ @ Test // GROOVY-6977
1664
+ public void testAnonymousInnerClass33 () {
1665
+ //@formatter:off
1666
+ String [] sources = {
1667
+ "Script.groovy" ,
1668
+ "class C {\n " +
1669
+ " def <T> List<T> foo() {\n " +
1670
+ " new ArrayList<T>() {}\n " +
1671
+ " }\n " +
1672
+ "}\n " +
1673
+ "def longList = new C().<Long>foo()\n " +
1674
+ "assert longList != null\n " +
1675
+ "assert longList.empty\n " ,
1676
+ };
1677
+ //@formatter:on
1678
+
1679
+ runConformTest (sources );
1680
+ }
1681
+
1598
1682
@ Test
1599
1683
public void testMixedModeInnerProperties_GRE597 () {
1600
1684
//@formatter:off
0 commit comments