summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java
index e0a709cca..f54f6921d 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java
@@ -51,7 +51,7 @@ public class CompactTypeStructureRepresentation implements IBinaryType {
IBinaryNestedType[] memberTypes;
IBinaryAnnotation[] annotations;
- public CompactTypeStructureRepresentation(ClassFileReader cfr) {
+ public CompactTypeStructureRepresentation(ClassFileReader cfr, boolean isAspect) {
this.enclosingTypeName = cfr.getEnclosingTypeName();
this.isLocal = cfr.isLocal();
@@ -69,7 +69,11 @@ public class CompactTypeStructureRepresentation implements IBinaryType {
if (binMethods == null) {
binMethods = NoMethod;
}
- this.memberTypes = cfr.getMemberTypes(true);
+ // If we are an aspect we (for now) need to grab even the malformed inner type info as it
+ // may be there because it refers to an ITD'd innertype. This needs to be improved - perhaps
+ // using a real attribute against which memberTypes can be compared to see which are just
+ // references and which were real declarations
+ this.memberTypes = cfr.getMemberTypes(isAspect);
this.annotations = cfr.getAnnotations();
this.sourceName = cfr.getSourceName();
this.className = cfr.getName(); // slashes...