diff options
-rw-r--r-- | tests/bugs1811/509235/parameterizedWithInner/Code.java | 20 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc1811/Ajc1811Tests.java | 66 |
2 files changed, 53 insertions, 33 deletions
diff --git a/tests/bugs1811/509235/parameterizedWithInner/Code.java b/tests/bugs1811/509235/parameterizedWithInner/Code.java new file mode 100644 index 000000000..182a01d88 --- /dev/null +++ b/tests/bugs1811/509235/parameterizedWithInner/Code.java @@ -0,0 +1,20 @@ +public class Code { + public static void main(String []argv) { + } +} + +class Outer<T> { + class Inner { + T t; + Inner(T t) { + this.t =t ; + } + } + + public Inner m() {return null;} + public Outer<String>.Inner m2() { + Outer<String> os = new Outer<String>(); + return os.new Inner("foo"); + } + public Outer<?>.Inner m3() {return null;} +} diff --git a/tests/src/org/aspectj/systemtest/ajc1811/Ajc1811Tests.java b/tests/src/org/aspectj/systemtest/ajc1811/Ajc1811Tests.java index 0c6663692..f354bd9e4 100644 --- a/tests/src/org/aspectj/systemtest/ajc1811/Ajc1811Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc1811/Ajc1811Tests.java @@ -29,40 +29,40 @@ import junit.framework.Test; */ public class Ajc1811Tests extends org.aspectj.testing.XMLBasedAjcTestCase { -// public void testParameterizedWithInner() throws Exception { -// runTest("parameterized with inner"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "Outer"); -// assertNotNull(jc); -// BcelWorld world = new BcelWorld(ajc.getSandboxDirectory().toString()); -// -// ResolvedType outerType = world.resolve(UnresolvedType.forName("Outer")); -// ResolvedMember m = findMethod(outerType,"m"); -// -// UnresolvedType type = m.getReturnType(); -// assertEquals("LOuter$Inner;",type.getSignature()); -// -// type = m.getGenericReturnType(); -// assertEquals("LOuter$Inner;",type.getSignature()); -// -// ResolvedType resolvedType = world.resolve(type); -// ResolvedType outerResolvedType = resolvedType.getOuterClass(); -// assertEquals("LOuter;",outerResolvedType.getSignature()); -// -// ResolvedMember m2 = findMethod(outerType,"m2"); -// type = m2.getReturnType(); -// assertEquals("LOuter$Inner;",type.getSignature()); -// -// type = m2.getGenericReturnType(); -// assertEquals("LOuter$Inner;",type.getSignature()); -// -// // public Inner m() { ... } -// Method m = findMethod(jc,"m"); -// System.out.println(m); -// System.out.println(">"+m.getReturnType()); + public void testParameterizedWithInner() throws Exception { + runTest("parameterized with inner"); + JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "Outer"); + assertNotNull(jc); + BcelWorld world = new BcelWorld(ajc.getSandboxDirectory().toString()); + + ResolvedType outerType = world.resolve(UnresolvedType.forName("Outer")); + ResolvedMember m = findMethod(outerType,"m"); + + UnresolvedType type = m.getReturnType(); + assertEquals("LOuter$Inner;",type.getSignature()); + + type = m.getGenericReturnType(); + assertEquals("LOuter$Inner;",type.getSignature()); + + ResolvedType resolvedType = world.resolve(type); + ResolvedType outerResolvedType = resolvedType.getOuterClass(); + assertEquals("LOuter;",outerResolvedType.getSignature()); + + ResolvedMember m2 = findMethod(outerType,"m2"); + type = m2.getReturnType(); + assertEquals("LOuter$Inner;",type.getSignature()); + + type = m2.getGenericReturnType(); + assertEquals("LOuter$Inner;",type.getSignature()); + + // public Inner m() { ... } + Method m3 = findMethod(jc,"m"); + System.out.println(m3); + System.out.println(">"+m3.getReturnType()); // assertNotNull(returnType); -// -// // public Outer<String>.Inner m2() { ... } -// } + + // public Outer<String>.Inner m2() { ... } + } // // public void testMultiArgs_509235() { // runTest("multiargs"); |