]> source.dussan.org Git - aspectj.git/commitdiff
241047: test and fix: when pipelining we have to ask the generic type for its super...
authoraclement <aclement>
Tue, 19 Aug 2008 21:29:19 +0000 (21:29 +0000)
committeraclement <aclement>
Tue, 19 Aug 2008 21:29:19 +0000 (21:29 +0000)
tests/bugs162/pr241047/case2/SomeAspect.java [new file with mode: 0644]
tests/bugs162/pr241047/case2/SomeBaseClass.java [new file with mode: 0644]
tests/bugs162/pr241047/case2/SomeInterface.java [new file with mode: 0644]
tests/bugs162/pr241047/case2/SomeSubClass.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc162/Ajc162Tests.java
tests/src/org/aspectj/systemtest/ajc162/ajc162.xml

diff --git a/tests/bugs162/pr241047/case2/SomeAspect.java b/tests/bugs162/pr241047/case2/SomeAspect.java
new file mode 100644 (file)
index 0000000..2081296
--- /dev/null
@@ -0,0 +1,12 @@
+public aspect SomeAspect {
+ declare parents: SomeBaseClass implements SomeInterface;
+
+ before() : execution(* (SomeInterface+).tag*(..)) {
+  System.out.println("correct advice :-)");
+ }
+
+ before() : execution(* (!SomeInterface+).tag*(..)) {
+  System.out.println("this advice should never run...");
+ }
+}
+
diff --git a/tests/bugs162/pr241047/case2/SomeBaseClass.java b/tests/bugs162/pr241047/case2/SomeBaseClass.java
new file mode 100644 (file)
index 0000000..c8514b2
--- /dev/null
@@ -0,0 +1,12 @@
+public class SomeBaseClass<Type extends Object> {
+
+ public void tag_someBaseMethod() {
+  System.out.println("some base method");
+ }
+
+ public static void main(String[] args) {
+  new SomeBaseClass<Object>().tag_someBaseMethod();
+  new SomeSubClass().tag_someMethod(); // this does not match correctly...
+ }
+}
+
diff --git a/tests/bugs162/pr241047/case2/SomeInterface.java b/tests/bugs162/pr241047/case2/SomeInterface.java
new file mode 100644 (file)
index 0000000..c6750f6
--- /dev/null
@@ -0,0 +1 @@
+public interface SomeInterface {}
diff --git a/tests/bugs162/pr241047/case2/SomeSubClass.java b/tests/bugs162/pr241047/case2/SomeSubClass.java
new file mode 100644 (file)
index 0000000..ac8f761
--- /dev/null
@@ -0,0 +1,8 @@
+public class SomeSubClass extends SomeBaseClass<Integer> {
+
+ // this method is not matched correctly...
+ public void tag_someMethod() {
+  System.out.println("some sub method");
+ }
+}
+
index 5fd23b0277a3194dbca475d57adbe004466374ea..a2abed7e6e83fe1d888186c17c7880b8d3820042 100644 (file)
@@ -20,6 +20,7 @@ public class Ajc162Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
        
        // AspectJ1.6.2 
        public void testGenericDecp_pr241047() { runTest("generic decp"); }
+       public void testGenericDecp_pr241047_2() { runTest("generic decp - 2"); }
        public void testGenericItds_pr242797_1() { runTest("generic itds - 1"); }
        public void testGenericItds_pr242797_2() { runTest("generic itds - 2"); }
        public void testGenericItds_pr242797_3() { runTest("generic itds - 3"); }
index 8d71164b464f58da4517023e0d7e157edd68e939..88abdb027842178e07b6eb8f5b4864cf0dd3f511 100644 (file)
         </run>
     </ajc-test> 
 
+    <ajc-test dir="bugs162/pr241047/case2" title="generic decp - 2">
+        <compile files="SomeAspect.java SomeSubClass.java SomeInterface.java SomeBaseClass.java" options=" -Xlint:ignore -1.5">
+        </compile>
+        <run class="SomeBaseClass">
+          <stdout>
+              <line text="correct advice :-)"/>
+              <line text="some base method"/>
+              <line text="correct advice :-)"/>
+              <line text="some sub method"/>
+          </stdout>
+        </run>
+    </ajc-test> 
+
+
     <ajc-test dir="bugs162/pr242797/case1" title="generic itds - 1">
         <compile files="ClassUtils.java CMEFinder.java Finder.java H2Deployment.java Localized.java LocalizedFinder.java OnetElement.java OnetFinder.java Partitioned.java PartitionedFinder.java" options="-1.5">
         </compile>