]> source.dussan.org Git - aspectj.git/commitdiff
test and fix for 165631: Dont allow multiple parameterizations in a hierarchy
authoraclement <aclement>
Wed, 29 Nov 2006 15:46:52 +0000 (15:46 +0000)
committeraclement <aclement>
Wed, 29 Nov 2006 15:46:52 +0000 (15:46 +0000)
tests/bugs160/pr165631/Bug.java [new file with mode: 0644]
tests/bugs160/pr165631/Bug2.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc160/Ajc160Tests.java
tests/src/org/aspectj/systemtest/ajc160/ajc160.xml

diff --git a/tests/bugs160/pr165631/Bug.java b/tests/bugs160/pr165631/Bug.java
new file mode 100644 (file)
index 0000000..e1ceb22
--- /dev/null
@@ -0,0 +1,13 @@
+interface A<T> {}
+
+interface B<T> extends A<T> {}
+
+class C implements A<String> {
+}
+
+class D extends C {
+}
+
+aspect X {
+  declare parents: D implements B<Number>;
+}
diff --git a/tests/bugs160/pr165631/Bug2.java b/tests/bugs160/pr165631/Bug2.java
new file mode 100644 (file)
index 0000000..0754042
--- /dev/null
@@ -0,0 +1,15 @@
+interface A<T> {}
+
+interface B<T> extends A<T> {}
+
+class C implements A<String> {}
+
+interface A1 {}
+
+class D extends C implements A1 {
+}
+
+aspect X {
+        declare parents: D implements B<Number>;
+}
+
index d3c343b118ee82b4b158e1ca14d6faf220c40d68..660d31544124f2cc8be6f7a8e7c6533e747f4ca4 100644 (file)
@@ -23,6 +23,7 @@ public class Ajc160Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
        
   public void testGenericFieldNPE_pr165885() { runTest("generic field npe");}
   public void testIncorrectOptimizationOfIstore_pr166084() { runTest("incorrect optimization of istore"); }
+  public void testDualParameterizationsNotAllowed_pr165631() { runTest("dual parameterizations not allowed"); }
  
   /////////////////////////////////////////
   public static Test suite() {
index a89a809492975c1ea134a5f4fd2166035d028e28..1b157acaf5571f8587ac0106abcad22e95b7c699 100644 (file)
       <compile files="X.java" inpath="simple.jar"/>
          <run class="Simple"/>
     </ajc-test>
+       
+    <ajc-test dir="bugs160/pr165631" title="dual parameterizations not allowed">
+      <!-- two variations of the same situation, should fail in the same way -->
+      <compile files="Bug.java" options="-1.5">
+        <message kind="error" line="12" text="Cannot declare parent B"/>
+      </compile>
+      <compile files="Bug2.java" options="-1.5">
+        <message kind="error" line="13" text="Cannot declare parent B"/>
+      </compile>
+    </ajc-test>
     
     
  <!-- second section - need a 1.6 vm -->