]> source.dussan.org Git - aspectj.git/commitdiff
pr110788: testcases
authoraclement <aclement>
Wed, 28 Sep 2005 09:49:10 +0000 (09:49 +0000)
committeraclement <aclement>
Wed, 28 Sep 2005 09:49:10 +0000 (09:49 +0000)
tests/bugs150/pr110788/Case1.java [new file with mode: 0644]
tests/bugs150/pr110788/Case2.java [new file with mode: 0644]
tests/bugs150/pr110788/Case3.java [new file with mode: 0644]
tests/bugs150/pr110788/Case4.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
tests/src/org/aspectj/systemtest/ajc150/ajc150.xml

diff --git a/tests/bugs150/pr110788/Case1.java b/tests/bugs150/pr110788/Case1.java
new file mode 100644 (file)
index 0000000..f5a55d2
--- /dev/null
@@ -0,0 +1,11 @@
+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>; // Can't do it, C implement A<String>
+}
diff --git a/tests/bugs150/pr110788/Case2.java b/tests/bugs150/pr110788/Case2.java
new file mode 100644 (file)
index 0000000..d995509
--- /dev/null
@@ -0,0 +1,9 @@
+interface A<T> {}
+
+class C implements A<String> {}
+
+class D extends C {}
+
+aspect X {
+  declare parents: D implements A<Number>; // Can't do it, C implements A<String>
+}
diff --git a/tests/bugs150/pr110788/Case3.java b/tests/bugs150/pr110788/Case3.java
new file mode 100644 (file)
index 0000000..726ca11
--- /dev/null
@@ -0,0 +1,11 @@
+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<String>; // Can do it, parameterizations are compatible
+}
diff --git a/tests/bugs150/pr110788/Case4.java b/tests/bugs150/pr110788/Case4.java
new file mode 100644 (file)
index 0000000..726ca11
--- /dev/null
@@ -0,0 +1,11 @@
+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<String>; // Can do it, parameterizations are compatible
+}
index af953f9538b49c358ac3133f6d39afd8e0fb0f99..be876b1d7c6e2a8bfaaca1af07a818c8bd9174ec 100644 (file)
@@ -25,9 +25,6 @@ import org.aspectj.asm.AsmManager;
 import org.aspectj.testing.XMLBasedAjcTestCase;
 import org.aspectj.util.LangUtil;
 
-/**
- * These are tests that will run on Java 1.4 and use the old harness format for test specification.
- */
 public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
          
   public static Test suite() {
@@ -37,6 +34,11 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
   protected File getSpecFile() {
     return new File("../tests/src/org/aspectj/systemtest/ajc150/ajc150.xml");
   }
+  
+  public void testBadDecp_pr110788_1() { runTest("bad generic decp - 1");}
+  public void testBadDecp_pr110788_2() { runTest("bad generic decp - 2");}
+  public void testBadDecp_pr110788_3() { runTest("bad generic decp - 3");}
+  public void testBadDecp_pr110788_4() { runTest("bad generic decp - 4");}
 
   public void test_typeProcessingOrderWhenDeclareParents() {
        runTest("Order of types passed to compiler determines weaving behavior");
@@ -172,10 +174,9 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
          runTest("overriding/polymorphism error on interface method introduction");
   }
 
-  /**
-   * IfPointcut.findResidueInternal() was modified to make this test complete in a short amount
-   * of time - if you see it hanging, someone has messed with the optimization.
-   */
+  
+   // IfPointcut.findResidueInternal() was modified to make this test complete in a short amount
+   // of time - if you see it hanging, someone has messed with the optimization.
   public void testIfEvaluationExplosion_pr94086() {
          runTest("Exploding compile time with if() statements in pointcut");
   }
index 38f74bea4a4eb8b5b5f3a10dfe124062044711ae..cfd5acd18ca51652b599a16b871ade2da9769034 100644 (file)
      <compile files="pr109728.java" options="-1.5"/>
    </ajc-test>
    
+   <ajc-test dir="bugs150/pr110788" title="bad generic decp - 1">
+     <compile files="Case1.java" options="-1.5">
+       <message kind="error" line="10" text="Cannot declare parent B&lt;java.lang.Number&gt; onto type C since it already has A&lt;java.lang.String&gt; in its hierarchy"/>
+     </compile>
+   </ajc-test>
+   
+   <ajc-test dir="bugs150/pr110788" title="bad generic decp - 2">
+     <compile files="Case2.java" options="-1.5">
+       <message kind="error" line="8" text="Cannot declare parent A&lt;java.lang.Number&gt; onto type C since it already has A&lt;java.lang.String&gt; in its hierarchy"/>
+     </compile>
+   </ajc-test>
+   
+   <ajc-test dir="bugs150/pr110788" title="bad generic decp - 3">
+     <compile files="Case3.java" options="-1.5"/>
+   </ajc-test>
+
+   <ajc-test dir="bugs150/pr110788" title="bad generic decp - 4">
+     <compile files="Case4.java" options="-1.5"/>
+   </ajc-test>
 </suite>
\ No newline at end of file