summaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authoraclement <aclement>2006-07-28 14:05:39 +0000
committeraclement <aclement>2006-07-28 14:05:39 +0000
commitaf9e8ba799feb154ffbd40c190b42f6b01ec3109 (patch)
tree40ec7a0b2bc9734b930b95662c6f5066db9e26d5 /org.aspectj.ajdt.core
parent68c36e3ac9b5fc031a956800158aee15b0d44301 (diff)
downloadaspectj-af9e8ba799feb154ffbd40c190b42f6b01ec3109.tar.gz
aspectj-af9e8ba799feb154ffbd40c190b42f6b01ec3109.zip
pipeline changes: fix for deep nesting aspects
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java
index 024be56a1..0f37c5f2f 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java
@@ -539,13 +539,24 @@ public class AjPipeliningCompilerAdapter extends AbstractCompilerAdapter {
if (declaration.memberTypes!=null) {
TypeDeclaration[] memberTypes = declaration.memberTypes;
for (int j = 0; j < memberTypes.length; j++) { // loop through inner types
- if (isAspect(memberTypes[j])) return true;
+ if (containsAnAspect(memberTypes[j])) return true;
}
}
}
}
return false;
}
+
+ private boolean containsAnAspect(TypeDeclaration tDecl) {
+ if (isAspect(tDecl)) return true;
+ if (tDecl.memberTypes!=null) {
+ TypeDeclaration[] memberTypes = tDecl.memberTypes;
+ for (int j = 0; j < memberTypes.length; j++) { // loop through inner types
+ if (containsAnAspect(memberTypes[j])) return true;
+ }
+ }
+ return false;
+ }
private static final char[] aspectSig = "Lorg/aspectj/lang/annotation/Aspect;".toCharArray();
private boolean isAspect(TypeDeclaration declaration) {