summaryrefslogtreecommitdiffstats
path: root/org.aspectj.matcher
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2016-02-18 12:08:06 -0800
committerAndy Clement <aclement@pivotal.io>2016-02-18 12:08:06 -0800
commitf4c8433cb046e343b8491d04f0a10bd150924507 (patch)
treeaa31290831862215cea09543c92b6d2a9fc67ab7 /org.aspectj.matcher
parenta17b28a1a9a0756cfc2181bf2b095650e186425a (diff)
downloadaspectj-f4c8433cb046e343b8491d04f0a10bd150924507.tar.gz
aspectj-f4c8433cb046e343b8491d04f0a10bd150924507.zip
Fix 433351: Declare parents fails on interfaces on the inpath depending on directory structure
Diffstat (limited to 'org.aspectj.matcher')
-rw-r--r--org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java3
-rw-r--r--org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java10
2 files changed, 11 insertions, 2 deletions
diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java b/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java
index 9791b8083..65fdf3a95 100644
--- a/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java
+++ b/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java
@@ -1161,6 +1161,7 @@ public class ReferenceType extends ResolvedType {
annotations = null;
annotationTypes = null;
newSuperclass = null;
+ bits = 0; // clears the hierarchy complete tag (amongst other things)
newInterfaces = null;
typeVariables = null;
parameterizedInterfaces.clear();
@@ -1168,7 +1169,7 @@ public class ReferenceType extends ResolvedType {
if (getDelegate() != null) {
delegate.ensureConsistent();
}
- if (isRawType()) {
+ if (isParameterizedOrRawType()) {
ReferenceType genericType = getGenericType();
if (genericType != null) {
genericType.ensureConsistent();
diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java b/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java
index c053f5119..5985e4b6d 100644
--- a/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java
+++ b/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java
@@ -50,7 +50,7 @@ public abstract class ResolvedType extends UnresolvedType implements AnnotatedEl
protected World world;
- private int bits;
+ protected int bits;
private static int AnnotationBitsInitialized = 0x0001;
private static int AnnotationMarkedInherited = 0x0002;
@@ -2803,10 +2803,18 @@ public abstract class ResolvedType extends UnresolvedType implements AnnotatedEl
}
public void tagAsTypeHierarchyComplete() {
+ if (isParameterizedOrRawType()) {
+ ReferenceType genericType = this.getGenericType();
+ genericType.tagAsTypeHierarchyComplete();
+ return;
+ }
bits |= TypeHierarchyCompleteBit;
}
public boolean isTypeHierarchyComplete() {
+ if (isParameterizedOrRawType()) {
+ return this.getGenericType().isTypeHierarchyComplete();
+ }
return (bits & TypeHierarchyCompleteBit) != 0;
}