diff options
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java index dc9b4f4af..5e7f4a88d 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java @@ -1471,8 +1471,12 @@ public class AjState implements CompilerConfigurationChangeFlags, TypeDelegateRe if (!rType.isMissing()) { try { ClassFileReader reader = new ClassFileReader(thisTime.getBytes(), null); + boolean isAspect = false; + if (rType instanceof ReferenceType && ((ReferenceType) rType).getDelegate() != null) { + isAspect = ((ReferenceType) rType).isAspect(); + } this.resolvedTypeStructuresFromLastBuild.put(thisTime.getClassName(), new CompactTypeStructureRepresentation( - reader)); + reader, isAspect)); } catch (ClassFormatException cfe) { throw new BCException("Unexpected problem processing class", cfe); } @@ -1486,8 +1490,12 @@ public class AjState implements CompilerConfigurationChangeFlags, TypeDelegateRe if (!newResolvedType.isMissing()) { try { ClassFileReader reader = new ClassFileReader(thisTime.getBytes(), null); - this.resolvedTypeStructuresFromLastBuild.put(thisTime.getClassName(), - new CompactTypeStructureRepresentation(reader)); + boolean isAspect = false; + if (newResolvedType instanceof ReferenceType && ((ReferenceType) newResolvedType).getDelegate() != null) { + isAspect = ((ReferenceType) newResolvedType).isAspect(); + } + this.resolvedTypeStructuresFromLastBuild.put(thisTime.getClassName(), new CompactTypeStructureRepresentation( + reader, isAspect)); } catch (ClassFormatException cfe) { throw new BCException("Unexpected problem processing class", cfe); } |