aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Clement <aclement@gopivotal.com>2014-06-19 09:24:38 -0700
committerAndy Clement <aclement@gopivotal.com>2014-06-19 09:24:38 -0700
commit3c2b8b77881c721b5c274db939a30bcb3130a401 (patch)
treeddd332c3c2203338f91cc3e81b52ce5dbae6e6b2
parentc4f9f951c35f7b7645696ffded594e2dded07476 (diff)
downloadaspectj-3c2b8b77881c721b5c274db939a30bcb3130a401.tar.gz
aspectj-3c2b8b77881c721b5c274db939a30bcb3130a401.zip
433351: first fix. inpath weaving of decp on generic interface
-rw-r--r--org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java6
-rw-r--r--tests/bugs181/433351/Extender.aj10
-rw-r--r--tests/bugs181/433351/InterfaceProj1.java7
-rw-r--r--tests/bugs181/433351/InterfaceProj2.java7
-rw-r--r--tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java4
-rw-r--r--tests/src/org/aspectj/systemtest/ajc181/ajc181.xml7
6 files changed, 41 insertions, 0 deletions
diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java b/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java
index d97497faf..538bd940f 100644
--- a/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java
+++ b/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java
@@ -1163,6 +1163,12 @@ public class ReferenceType extends ResolvedType {
if (getDelegate() != null) {
delegate.ensureConsistent();
}
+ if (isRawType()) {
+ ReferenceType genericType = getGenericType();
+ if (genericType != null) {
+ genericType.ensureConsistent();
+ }
+ }
}
@Override
diff --git a/tests/bugs181/433351/Extender.aj b/tests/bugs181/433351/Extender.aj
new file mode 100644
index 000000000..433275660
--- /dev/null
+++ b/tests/bugs181/433351/Extender.aj
@@ -0,0 +1,10 @@
+package test.extender;
+import test.*;
+
+public aspect Extender {
+
+ declare parents: InterfaceProj1 extends InterfaceProj2;
+
+// declare parents: test.ClassProj1 extends ClassProj2;
+
+}
diff --git a/tests/bugs181/433351/InterfaceProj1.java b/tests/bugs181/433351/InterfaceProj1.java
new file mode 100644
index 000000000..7d90bef54
--- /dev/null
+++ b/tests/bugs181/433351/InterfaceProj1.java
@@ -0,0 +1,7 @@
+package test;
+
+public interface InterfaceProj1<T> {
+
+ public abstract int aMethod();
+
+}
diff --git a/tests/bugs181/433351/InterfaceProj2.java b/tests/bugs181/433351/InterfaceProj2.java
new file mode 100644
index 000000000..b6846f54c
--- /dev/null
+++ b/tests/bugs181/433351/InterfaceProj2.java
@@ -0,0 +1,7 @@
+package test.extender;
+
+public interface InterfaceProj2<T> {
+
+ public abstract int bMethod();
+
+} \ No newline at end of file
diff --git a/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java b/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java
index 57ed6b6df..24c07b03f 100644
--- a/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java
@@ -22,6 +22,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
*/
public class Ajc181Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+ public void testJarWeaving_433351() {
+ runTest("jar weaving");
+ }
+
public void testParameterNamesAttribute_436531() {
runTest("parameter names attribute");
}
diff --git a/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml b/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml
index 1a8b1acfc..314aaf712 100644
--- a/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml
+++ b/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml
@@ -2,6 +2,13 @@
<suite>
+ <ajc-test dir="bugs181/433351" title="jar weaving">
+ <compile options="-1.5" files="InterfaceProj1.java" outjar="code.jar"/>
+ <compile options="-1.5 -showWeaveInfo" inpath="code.jar" files="Extender.aj InterfaceProj2.java">
+ <message kind="weave" text="Extending interface set for type 'test.InterfaceProj1' (InterfaceProj1.java) to include 'test.extender.InterfaceProj2' (Extender.aj)"/>
+ </compile>
+ </ajc-test>
+
<ajc-test dir="bugs181/436531" title="parameter names attribute">
<compile options="-1.8" files="Azpect.java" inpath="code.jar"/>
</ajc-test>