diff options
author | jhugunin <jhugunin> | 2003-08-28 21:44:55 +0000 |
---|---|---|
committer | jhugunin <jhugunin> | 2003-08-28 21:44:55 +0000 |
commit | 5a07dcee3a3f520e4b5cadc67000673e2d0ca0b7 (patch) | |
tree | 771065369cab0955da5791a8648ede9c52216da7 /org.aspectj.ajdt.core | |
parent | d8b86743663c19fd545d8dea89290dccda7a5ed1 (diff) | |
download | aspectj-5a07dcee3a3f520e4b5cadc67000673e2d0ca0b7.tar.gz aspectj-5a07dcee3a3f520e4b5cadc67000673e2d0ca0b7.zip |
fix and test for Bugzilla Bug 41359
percflow aspects compiled from jars share one instance for all entry points
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java index 935b6c3f0..e0967d667 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java @@ -658,12 +658,14 @@ public class AspectDeclaration extends MemberTypeDeclaration { private PerClause.Kind lookupPerClauseKind(ReferenceBinding binding) { - if (binding instanceof SourceTypeBinding && !(binding instanceof BinaryTypeBinding)) { + PerClause perClause; + if (binding instanceof BinaryTypeBinding) { + ResolvedTypeX superTypeX = factory.fromEclipse(binding); + perClause = superTypeX.getPerClause(); + } else if (binding instanceof SourceTypeBinding ) { SourceTypeBinding sourceSc = (SourceTypeBinding)binding; if (sourceSc.scope.referenceContext instanceof AspectDeclaration) { - PerClause perClause = ((AspectDeclaration)sourceSc.scope.referenceContext).perClause; - if (perClause == null) return lookupPerClauseKind(binding.superclass()); - else return perClause.getKind(); + perClause = ((AspectDeclaration)sourceSc.scope.referenceContext).perClause; } else { return null; } @@ -671,7 +673,12 @@ public class AspectDeclaration extends MemberTypeDeclaration { //XXX need to handle this too return null; } - } + if (perClause == null) { + return lookupPerClauseKind(binding.superclass()); + } else { + return perClause.getKind(); + } + } private void buildPerClause(ClassScope scope) { |