From 3decd2febd39af216545ad334fee060be06609fb Mon Sep 17 00:00:00 2001 From: aclement Date: Mon, 2 May 2011 18:39:17 +0000 Subject: [PATCH] 344326 --- .../core/builder/CompactTypeStructureRepresentation.java | 8 ++++++-- 1 file 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... -- 2.39.5