diff options
author | aclement <aclement> | 2004-02-26 09:56:40 +0000 |
---|---|---|
committer | aclement <aclement> | 2004-02-26 09:56:40 +0000 |
commit | a8c17de491cf0c062c50e7a7488d5074c3f30673 (patch) | |
tree | c2d0749597f07f7c42c457b49ef3a8f7f107651b /weaver/src | |
parent | 9a29a973f55a157c54b18bcf554a090bb8ef19e3 (diff) | |
download | aspectj-a8c17de491cf0c062c50e7a7488d5074c3f30673.tar.gz aspectj-a8c17de491cf0c062c50e7a7488d5074c3f30673.zip |
Fix for preventing the use of if/target/this/args/cflow/cflowbelow in DeclareSofts.
Diffstat (limited to 'weaver/src')
5 files changed, 9 insertions, 14 deletions
diff --git a/weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java b/weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java index 4a359d69a..f8db5c29a 100644 --- a/weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java +++ b/weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.aspectj.weaver.bcel.BcelTypeMunger; import org.aspectj.weaver.patterns.DeclareParents; /** diff --git a/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java b/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java index 7c6410623..86c55b920 100644 --- a/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java @@ -20,7 +20,6 @@ import java.io.IOException; import org.aspectj.bridge.IMessage; import org.aspectj.util.FuzzyBoolean; import org.aspectj.weaver.BetaException; -import org.aspectj.weaver.Checker; import org.aspectj.weaver.ISourceContext; import org.aspectj.weaver.IntMap; import org.aspectj.weaver.ResolvedTypeX; @@ -89,8 +88,8 @@ public class ArgsPointcut extends NameBindingPointcut { public Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings) { - if (bindings.getEnclosingAdvice() instanceof Checker) { - // Enforce rule about which designators are supported in deow + if (isDeclare(bindings.getEnclosingAdvice())) { + // Enforce rule about which designators are supported in declare inAspect.getWorld().showMessage(IMessage.ERROR, "args() pointcut designator cannot be used in declare statement", bindings.getEnclosingAdvice().getSourceLocation(), null); diff --git a/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java b/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java index e7d5ac8b9..ef6dc5d80 100644 --- a/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java @@ -25,7 +25,6 @@ import org.aspectj.bridge.IMessage; import org.aspectj.util.FileUtil; import org.aspectj.util.FuzzyBoolean; import org.aspectj.weaver.Advice; -import org.aspectj.weaver.Checker; import org.aspectj.weaver.CrosscuttingMembers; import org.aspectj.weaver.ISourceContext; import org.aspectj.weaver.IntMap; @@ -123,8 +122,8 @@ public class CflowPointcut extends Pointcut { public Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings) { - if (bindings.getEnclosingAdvice() instanceof Checker) { - // Enforce rule about which designators are supported in deow + if (isDeclare(bindings.getEnclosingAdvice())) { + // Enforce rule about which designators are supported in declare inAspect.getWorld().showMessage(IMessage.ERROR, "cflow"+(isBelow?"below":"")+"() pointcut designator cannot be used in declare statement", bindings.getEnclosingAdvice().getSourceLocation(), null); diff --git a/weaver/src/org/aspectj/weaver/patterns/IfPointcut.java b/weaver/src/org/aspectj/weaver/patterns/IfPointcut.java index 6cb181329..baf55d85b 100644 --- a/weaver/src/org/aspectj/weaver/patterns/IfPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/IfPointcut.java @@ -22,7 +22,6 @@ import java.util.List; import org.aspectj.bridge.IMessage; import org.aspectj.util.FuzzyBoolean; import org.aspectj.weaver.Advice; -import org.aspectj.weaver.Checker; import org.aspectj.weaver.ISourceContext; import org.aspectj.weaver.IntMap; import org.aspectj.weaver.ResolvedMember; @@ -30,10 +29,10 @@ import org.aspectj.weaver.ResolvedPointcutDefinition; import org.aspectj.weaver.ResolvedTypeX; import org.aspectj.weaver.Shadow; import org.aspectj.weaver.ShadowMunger; -import org.aspectj.weaver.ast.*; import org.aspectj.weaver.ast.Expr; import org.aspectj.weaver.ast.Literal; import org.aspectj.weaver.ast.Test; +import org.aspectj.weaver.ast.Var; public class IfPointcut extends Pointcut { @@ -148,8 +147,8 @@ public class IfPointcut extends Pointcut { public Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings) { //System.err.println("concretize: " + this + " already: " + partiallyConcretized); - if (bindings.getEnclosingAdvice() instanceof Checker) { - // Enforce rule about which designators are supported in deow + if (isDeclare(bindings.getEnclosingAdvice())) { + // Enforce rule about which designators are supported in declare inAspect.getWorld().showMessage(IMessage.ERROR, "if() pointcut designator cannot be used in declare statement", bindings.getEnclosingAdvice().getSourceLocation(), diff --git a/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java b/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java index 814370f15..daca6f922 100644 --- a/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java @@ -19,7 +19,6 @@ import java.io.IOException; import org.aspectj.bridge.IMessage; import org.aspectj.util.FuzzyBoolean; -import org.aspectj.weaver.Checker; import org.aspectj.weaver.ISourceContext; import org.aspectj.weaver.IntMap; import org.aspectj.weaver.ResolvedTypeX; @@ -117,8 +116,8 @@ public class ThisOrTargetPointcut extends NameBindingPointcut { } public Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings) { - if (bindings.getEnclosingAdvice() instanceof Checker) { - // Enforce rule about which designators are supported in deow + if (isDeclare(bindings.getEnclosingAdvice())) { + // Enforce rule about which designators are supported in declare inAspect.getWorld().showMessage(IMessage.ERROR, (isThis?"this":"target")+"() pointcut designator cannot be used in declare statement", bindings.getEnclosingAdvice().getSourceLocation(), null); |