]> source.dussan.org Git - aspectj.git/commitdiff
235829: test and fix: generic sigs and inner classes
authoraclement <aclement>
Thu, 5 Jun 2008 20:46:00 +0000 (20:46 +0000)
committeraclement <aclement>
Thu, 5 Jun 2008 20:46:00 +0000 (20:46 +0000)
tests/bugs161/pr235829/Main.java [new file with mode: 0644]
tests/bugs161/pr235829/a/Adapter.java [new file with mode: 0644]
tests/bugs161/pr235829/a/b/Adapter.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc161/Ajc161Tests.java
tests/src/org/aspectj/systemtest/ajc161/ajc161.xml

diff --git a/tests/bugs161/pr235829/Main.java b/tests/bugs161/pr235829/Main.java
new file mode 100644 (file)
index 0000000..6072ec5
--- /dev/null
@@ -0,0 +1,13 @@
+import java.lang.reflect.Type;
+
+public class Main {
+       
+       public static void main(String[]argv) throws Exception {
+               Class c = Class.forName("a.b.Adapter$1");
+               Type[] ts = c.getGenericInterfaces();
+               for (int i = 0; i < ts.length; i++) {
+                       Type type = ts[i];
+                       System.out.println(ts[i]);
+               }
+       }
+}
\ No newline at end of file
diff --git a/tests/bugs161/pr235829/a/Adapter.java b/tests/bugs161/pr235829/a/Adapter.java
new file mode 100644 (file)
index 0000000..53dd91e
--- /dev/null
@@ -0,0 +1,7 @@
+package a;
+
+public interface Adapter<T> {
+  interface Setter<V> {}
+
+  public <V> Setter<V> makeSetter();
+}
diff --git a/tests/bugs161/pr235829/a/b/Adapter.java b/tests/bugs161/pr235829/a/b/Adapter.java
new file mode 100644 (file)
index 0000000..69d0d79
--- /dev/null
@@ -0,0 +1,9 @@
+package a.b;
+
+public class Adapter<T> implements a.Adapter<T> {
+
+  public <V> Adapter.Setter<V> makeSetter() {
+    return new Adapter.Setter<V>() {};
+  }
+
+}
index 7aebc4b7b5028bc17c60b3dadb0d932bdfa6879c..c138dc1b4a97d0a3d8ac52ba921c85b0ccdbfd4b 100644 (file)
@@ -23,6 +23,7 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
 public class Ajc161Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
        
        // AspectJ1.6.1
+       public void testCrazyGenericsInnerTypes_pr235829() { runTest("crazy generics and inner types");}
        public void testAnnotationExposureGenerics_pr235597() { runTest("annotation exposure and generics");}
     public void testIncorrectRelationship_pr235204() {
         runTest("incorrect call relationship");
index 7c87c3f240c49e28aa4b8ef7c6ee4710df1a2519..792560cffd74928547aaf5bfd982c26c311112a3 100644 (file)
@@ -3,6 +3,12 @@
 <!-- AspectJ v1.6.1 Tests -->
 <suite>
 
+       <ajc-test dir="bugs161/pr235829" title="crazy generics and inner types">
+       <compile files="Main.java a/Adapter.java a/b/Adapter.java" options="-1.5"/>
+       <run class="Main"/>
+    </ajc-test>
+    
+
     <ajc-test dir="bugs161/pr235597" title="annotation exposure and generics">
         <compile files="AnnotationTest1.java SomeAnnotation.java SomeAspect.java" options="-1.5"/>
         <run class="AnnotationTest1">