From 752a7b4b45d02495ca1610d1a941d4feafc80bae Mon Sep 17 00:00:00 2001 From: acolyer Date: Tue, 6 Sep 2005 11:00:26 +0000 Subject: fix for pr108818, changed the signature of concretize and concretize1 to pass in the actual declaring type of the member owning the pointcut reference. --- weaver/src/org/aspectj/weaver/patterns/AndPointcut.java | 6 +++--- .../org/aspectj/weaver/patterns/AnnotationPointcut.java | 2 +- .../aspectj/weaver/patterns/ArgsAnnotationPointcut.java | 2 +- weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java | 2 +- weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java | 4 ++-- .../aspectj/weaver/patterns/ConcreteCflowPointcut.java | 2 +- weaver/src/org/aspectj/weaver/patterns/Declare.java | 12 ++++++++++++ .../aspectj/weaver/patterns/DeclareErrorOrWarning.java | 1 + .../src/org/aspectj/weaver/patterns/HandlerPointcut.java | 2 +- weaver/src/org/aspectj/weaver/patterns/IfPointcut.java | 8 +++++--- .../src/org/aspectj/weaver/patterns/KindedPointcut.java | 2 +- weaver/src/org/aspectj/weaver/patterns/NotPointcut.java | 4 ++-- weaver/src/org/aspectj/weaver/patterns/OrPointcut.java | 6 +++--- weaver/src/org/aspectj/weaver/patterns/PerCflow.java | 2 +- weaver/src/org/aspectj/weaver/patterns/PerClause.java | 2 +- weaver/src/org/aspectj/weaver/patterns/PerObject.java | 2 +- weaver/src/org/aspectj/weaver/patterns/Pointcut.java | 15 ++++++++------- .../weaver/patterns/ThisOrTargetAnnotationPointcut.java | 2 +- .../org/aspectj/weaver/patterns/ThisOrTargetPointcut.java | 2 +- .../aspectj/weaver/patterns/WithinAnnotationPointcut.java | 2 +- .../weaver/patterns/WithinCodeAnnotationPointcut.java | 2 +- .../src/org/aspectj/weaver/patterns/WithinPointcut.java | 2 +- .../org/aspectj/weaver/patterns/WithincodePointcut.java | 2 +- .../org/aspectj/weaver/bcel/PatternWeaveTestCase.java | 2 +- weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java | 2 +- .../org/aspectj/weaver/patterns/PointcutTestCase.java | 2 +- .../org/aspectj/weaver/patterns/WithinTestCase.java | 2 +- 27 files changed, 55 insertions(+), 39 deletions(-) (limited to 'weaver') diff --git a/weaver/src/org/aspectj/weaver/patterns/AndPointcut.java b/weaver/src/org/aspectj/weaver/patterns/AndPointcut.java index ed74f33c8..3277d981f 100644 --- a/weaver/src/org/aspectj/weaver/patterns/AndPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/AndPointcut.java @@ -136,9 +136,9 @@ public class AndPointcut extends Pointcut { return Test.makeAnd(left.findResidue(shadow, state), right.findResidue(shadow, state)); } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { - AndPointcut ret = new AndPointcut(left.concretize(inAspect, bindings), - right.concretize(inAspect, bindings)); + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { + AndPointcut ret = new AndPointcut(left.concretize(inAspect, declaringType, bindings), + right.concretize(inAspect, declaringType, bindings)); ret.copyLocationFrom(this); return ret; } diff --git a/weaver/src/org/aspectj/weaver/patterns/AnnotationPointcut.java b/weaver/src/org/aspectj/weaver/patterns/AnnotationPointcut.java index 8abc60a15..3a6dcfcf0 100644 --- a/weaver/src/org/aspectj/weaver/patterns/AnnotationPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/AnnotationPointcut.java @@ -174,7 +174,7 @@ public class AnnotationPointcut extends NameBindingPointcut { /* (non-Javadoc) * @see org.aspectj.weaver.patterns.Pointcut#concretize1(org.aspectj.weaver.ResolvedType, org.aspectj.weaver.IntMap) */ - protected Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + protected Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { ExactAnnotationTypePattern newType = (ExactAnnotationTypePattern) annotationTypePattern.remapAdviceFormals(bindings); Pointcut ret = new AnnotationPointcut(newType, bindings.getEnclosingAdvice()); ret.copyLocationFrom(this); diff --git a/weaver/src/org/aspectj/weaver/patterns/ArgsAnnotationPointcut.java b/weaver/src/org/aspectj/weaver/patterns/ArgsAnnotationPointcut.java index c3e59a953..7dc86e166 100644 --- a/weaver/src/org/aspectj/weaver/patterns/ArgsAnnotationPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/ArgsAnnotationPointcut.java @@ -99,7 +99,7 @@ public class ArgsAnnotationPointcut extends NameBindingPointcut { /* (non-Javadoc) * @see org.aspectj.weaver.patterns.Pointcut#concretize1(org.aspectj.weaver.ResolvedType, org.aspectj.weaver.IntMap) */ - protected Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + protected Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { if (isDeclare(bindings.getEnclosingAdvice())) { // Enforce rule about which designators are supported in declare inAspect.getWorld().showMessage(IMessage.ERROR, diff --git a/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java b/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java index 33bcb26fc..e66dd4452 100644 --- a/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java @@ -255,7 +255,7 @@ public class ArgsPointcut extends NameBindingPointcut { } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { if (isDeclare(bindings.getEnclosingAdvice())) { // Enforce rule about which designators are supported in declare inAspect.getWorld().showMessage(IMessage.ERROR, diff --git a/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java b/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java index c1edb4b68..6cd1f7e3f 100644 --- a/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java @@ -173,7 +173,7 @@ public class CflowPointcut extends Pointcut { throw new RuntimeException("unimplemented"); } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { // Enforce rule about which designators are supported in declare if (isDeclare(bindings.getEnclosingAdvice())) { @@ -206,7 +206,7 @@ public class CflowPointcut extends Pointcut { entryBindings.pushEnclosingDefinition(CFLOW_MARKER); // This block concretizes the pointcut within the cflow pointcut try { - concreteEntry = entry.concretize(inAspect, entryBindings); + concreteEntry = entry.concretize(inAspect, declaringType, entryBindings); } finally { entryBindings.popEnclosingDefinitition(); } diff --git a/weaver/src/org/aspectj/weaver/patterns/ConcreteCflowPointcut.java b/weaver/src/org/aspectj/weaver/patterns/ConcreteCflowPointcut.java index 88a6c5860..2c6fc51ba 100644 --- a/weaver/src/org/aspectj/weaver/patterns/ConcreteCflowPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/ConcreteCflowPointcut.java @@ -141,7 +141,7 @@ public class ConcreteCflowPointcut extends Pointcut { MemberImpl.method(UnresolvedType.forName(NameMangler.CFLOW_COUNTER_TYPE), 0, "isValid", "()Z"); - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { throw new RuntimeException("unimplemented"); } diff --git a/weaver/src/org/aspectj/weaver/patterns/Declare.java b/weaver/src/org/aspectj/weaver/patterns/Declare.java index 4a23753af..2b35ea7a1 100644 --- a/weaver/src/org/aspectj/weaver/patterns/Declare.java +++ b/weaver/src/org/aspectj/weaver/patterns/Declare.java @@ -17,6 +17,7 @@ import java.io.IOException; import java.util.Map; import org.aspectj.weaver.ISourceContext; +import org.aspectj.weaver.ResolvedType; import org.aspectj.weaver.VersionedDataInputStream; public abstract class Declare extends PatternNode { @@ -25,6 +26,9 @@ public abstract class Declare extends PatternNode { public static final byte SOFT = 3; public static final byte DOMINATES = 4; public static final byte ANNOTATION = 5; + + // set when reading declare from aspect + private ResolvedType declaringType; public static Declare read(VersionedDataInputStream s, ISourceContext context) throws IOException { byte kind = s.readByte(); @@ -71,4 +75,12 @@ public abstract class Declare extends PatternNode { * want to easily differentiate between the declare methods. */ public abstract String getNameSuffix(); + + public void setDeclaringType(ResolvedType aType) { + this.declaringType = aType; + } + + public ResolvedType getDeclaringType() { + return declaringType; + } } diff --git a/weaver/src/org/aspectj/weaver/patterns/DeclareErrorOrWarning.java b/weaver/src/org/aspectj/weaver/patterns/DeclareErrorOrWarning.java index 46dc89339..6ae99c818 100644 --- a/weaver/src/org/aspectj/weaver/patterns/DeclareErrorOrWarning.java +++ b/weaver/src/org/aspectj/weaver/patterns/DeclareErrorOrWarning.java @@ -18,6 +18,7 @@ import java.io.IOException; import java.util.Map; import org.aspectj.weaver.ISourceContext; +import org.aspectj.weaver.ResolvedType; import org.aspectj.weaver.VersionedDataInputStream; public class DeclareErrorOrWarning extends Declare { diff --git a/weaver/src/org/aspectj/weaver/patterns/HandlerPointcut.java b/weaver/src/org/aspectj/weaver/patterns/HandlerPointcut.java index 027bef5a0..dbd0d5761 100644 --- a/weaver/src/org/aspectj/weaver/patterns/HandlerPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/HandlerPointcut.java @@ -168,7 +168,7 @@ public class HandlerPointcut extends Pointcut { return match(shadow).alwaysTrue() ? Literal.TRUE : Literal.FALSE; } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { Pointcut ret = new HandlerPointcut(exceptionType); ret.copyLocationFrom(this); return ret; diff --git a/weaver/src/org/aspectj/weaver/patterns/IfPointcut.java b/weaver/src/org/aspectj/weaver/patterns/IfPointcut.java index 6d174d101..5efff72a8 100644 --- a/weaver/src/org/aspectj/weaver/patterns/IfPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/IfPointcut.java @@ -268,7 +268,7 @@ public class IfPointcut extends Pointcut { } private IfPointcut partiallyConcretized = null; - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { //System.err.println("concretize: " + this + " already: " + partiallyConcretized); if (isDeclare(bindings.getEnclosingAdvice())) { @@ -349,7 +349,7 @@ public class IfPointcut extends Pointcut { } else { ret.baseArgsCount = 0; } - ret.residueSource = advice.getPointcut().concretize(inAspect, ret.baseArgsCount, advice); + ret.residueSource = advice.getPointcut().concretize(inAspect, inAspect, ret.baseArgsCount, advice); } else { ResolvedPointcutDefinition def = bindings.peekEnclosingDefinitition(); if (def == CflowPointcut.CFLOW_MARKER) { @@ -379,7 +379,7 @@ public class IfPointcut extends Pointcut { IntMap newBindings = IntMap.idMap(ret.baseArgsCount); newBindings.copyContext(bindings); - ret.residueSource = def.getPointcut().concretize(inAspect, newBindings); + ret.residueSource = def.getPointcut().concretize(inAspect, declaringType, newBindings); } return ret; @@ -444,6 +444,7 @@ public class IfPointcut extends Pointcut { public Pointcut concretize1( ResolvedType inAspect, + ResolvedType declaringType, IntMap bindings) { if (isDeclare(bindings.getEnclosingAdvice())) { // Enforce rule about which designators are supported in declare @@ -515,6 +516,7 @@ public class IfPointcut extends Pointcut { public Pointcut concretize1( ResolvedType inAspect, + ResolvedType declaringType, IntMap bindings) { if (isDeclare(bindings.getEnclosingAdvice())) { // Enforce rule about which designators are supported in declare diff --git a/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java b/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java index f56218d84..cc19d438e 100644 --- a/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java @@ -397,7 +397,7 @@ public class KindedPointcut extends Pointcut { return match(shadow).alwaysTrue() ? Literal.TRUE : Literal.FALSE; } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { Pointcut ret = new KindedPointcut(kind, signature, bindings.getEnclosingAdvice()); ret.copyLocationFrom(this); return ret; diff --git a/weaver/src/org/aspectj/weaver/patterns/NotPointcut.java b/weaver/src/org/aspectj/weaver/patterns/NotPointcut.java index 4c727bd9c..8a1dc5539 100644 --- a/weaver/src/org/aspectj/weaver/patterns/NotPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/NotPointcut.java @@ -132,8 +132,8 @@ public class NotPointcut extends Pointcut { return Test.makeNot(body.findResidue(shadow, state)); } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { - Pointcut ret = new NotPointcut(body.concretize(inAspect, bindings)); + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { + Pointcut ret = new NotPointcut(body.concretize(inAspect, declaringType, bindings)); ret.copyLocationFrom(this); return ret; } diff --git a/weaver/src/org/aspectj/weaver/patterns/OrPointcut.java b/weaver/src/org/aspectj/weaver/patterns/OrPointcut.java index ad3eec289..5ec0962c3 100644 --- a/weaver/src/org/aspectj/weaver/patterns/OrPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/OrPointcut.java @@ -138,9 +138,9 @@ public class OrPointcut extends Pointcut { return Test.makeOr(left.findResidue(shadow, state), right.findResidue(shadow, state)); } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { - Pointcut ret = new OrPointcut(left.concretize(inAspect, bindings), - right.concretize(inAspect, bindings)); + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { + Pointcut ret = new OrPointcut(left.concretize(inAspect, declaringType, bindings), + right.concretize(inAspect, declaringType, bindings)); ret.copyLocationFrom(this); return ret; } diff --git a/weaver/src/org/aspectj/weaver/patterns/PerCflow.java b/weaver/src/org/aspectj/weaver/patterns/PerCflow.java index 0c723baed..7afddbc8a 100644 --- a/weaver/src/org/aspectj/weaver/patterns/PerCflow.java +++ b/weaver/src/org/aspectj/weaver/patterns/PerCflow.java @@ -97,7 +97,7 @@ public class PerCflow extends PerClause { CrosscuttingMembers xcut = inAspect.crosscuttingMembers; Collection previousCflowEntries = xcut.getCflowEntries(); - Pointcut concreteEntry = entry.concretize(inAspect, 0, null); //IntMap.EMPTY); + Pointcut concreteEntry = entry.concretize(inAspect, inAspect, 0, null); //IntMap.EMPTY); List innerCflowEntries = new ArrayList(xcut.getCflowEntries()); innerCflowEntries.removeAll(previousCflowEntries); diff --git a/weaver/src/org/aspectj/weaver/patterns/PerClause.java b/weaver/src/org/aspectj/weaver/patterns/PerClause.java index 2675c5751..bd3f7f801 100644 --- a/weaver/src/org/aspectj/weaver/patterns/PerClause.java +++ b/weaver/src/org/aspectj/weaver/patterns/PerClause.java @@ -33,7 +33,7 @@ public abstract class PerClause extends Pointcut { throw new BCException("unknown kind: " + kind); } - public final Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public final Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { throw new RuntimeException("unimplemented: wrong concretize"); } diff --git a/weaver/src/org/aspectj/weaver/patterns/PerObject.java b/weaver/src/org/aspectj/weaver/patterns/PerObject.java index 6b405cb2d..bb3bbbf63 100644 --- a/weaver/src/org/aspectj/weaver/patterns/PerObject.java +++ b/weaver/src/org/aspectj/weaver/patterns/PerObject.java @@ -106,7 +106,7 @@ public class PerObject extends PerClause { World world = inAspect.getWorld(); - Pointcut concreteEntry = entry.concretize(inAspect, 0, null); + Pointcut concreteEntry = entry.concretize(inAspect, inAspect, 0, null); //concreteEntry = new AndPointcut(this, concreteEntry); //concreteEntry.state = Pointcut.CONCRETE; inAspect.crosscuttingMembers.addConcreteShadowMunger( diff --git a/weaver/src/org/aspectj/weaver/patterns/Pointcut.java b/weaver/src/org/aspectj/weaver/patterns/Pointcut.java index d752c98ae..9b0a8a79a 100644 --- a/weaver/src/org/aspectj/weaver/patterns/Pointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/Pointcut.java @@ -253,8 +253,8 @@ public abstract class Pointcut extends PatternNode implements PointcutExpression * Returns a new pointcut * Only used by test cases */ - public final Pointcut concretize(ResolvedType inAspect, int arity) { - Pointcut ret = concretize(inAspect, IntMap.idMap(arity)); + public final Pointcut concretize(ResolvedType inAspect, ResolvedType declaringType, int arity) { + Pointcut ret = concretize(inAspect, declaringType, IntMap.idMap(arity)); // copy the unbound ignore list ret.m_ignoreUnboundBindingForNames = m_ignoreUnboundBindingForNames; return ret; @@ -262,12 +262,12 @@ public abstract class Pointcut extends PatternNode implements PointcutExpression //XXX this is the signature we're moving to - public final Pointcut concretize(ResolvedType inAspect, int arity, ShadowMunger advice) { + public final Pointcut concretize(ResolvedType inAspect, ResolvedType declaringType, int arity, ShadowMunger advice) { //if (state == CONCRETE) return this; //??? IntMap map = IntMap.idMap(arity); map.setEnclosingAdvice(advice); map.setConcreteAspect(inAspect); - return concretize(inAspect, map); + return concretize(inAspect, declaringType, map); } public boolean isDeclare(ShadowMunger munger) { @@ -278,9 +278,9 @@ public abstract class Pointcut extends PatternNode implements PointcutExpression } - public final Pointcut concretize(ResolvedType inAspect, IntMap bindings) { + public final Pointcut concretize(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { //!!! add this test -- assertState(RESOLVED); - Pointcut ret = this.concretize1(inAspect, bindings); + Pointcut ret = this.concretize1(inAspect, declaringType, bindings); if (shouldCopyLocationForConcretize()) ret.copyLocationFrom(this); ret.state = CONCRETE; // copy the unbound ignore list @@ -306,7 +306,7 @@ public abstract class Pointcut extends PatternNode implements PointcutExpression * assumed in many places. * XXX fix implementors to handle state */ - protected abstract Pointcut concretize1(ResolvedType inAspect, IntMap bindings); + protected abstract Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings); //XXX implementors need to handle state @@ -425,6 +425,7 @@ public abstract class Pointcut extends PatternNode implements PointcutExpression public Pointcut concretize1( ResolvedType inAspect, + ResolvedType declaringType, IntMap bindings) { return makeMatchesNothing(state); } diff --git a/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetAnnotationPointcut.java b/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetAnnotationPointcut.java index a9326a113..784c42674 100644 --- a/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetAnnotationPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetAnnotationPointcut.java @@ -138,7 +138,7 @@ public class ThisOrTargetAnnotationPointcut extends NameBindingPointcut { /* (non-Javadoc) * @see org.aspectj.weaver.patterns.Pointcut#concretize1(org.aspectj.weaver.ResolvedType, org.aspectj.weaver.IntMap) */ - protected Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + protected Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { if (isDeclare(bindings.getEnclosingAdvice())) { // Enforce rule about which designators are supported in declare if (!alreadyWarnedAboutDEoW) { diff --git a/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java b/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java index 6c8c821e7..71f6c8a91 100644 --- a/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java @@ -226,7 +226,7 @@ public class ThisOrTargetPointcut extends NameBindingPointcut { return exposeStateForVar(var, type, state, shadow.getIWorld()); } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { if (isDeclare(bindings.getEnclosingAdvice())) { // Enforce rule about which designators are supported in declare inAspect.getWorld().showMessage(IMessage.ERROR, diff --git a/weaver/src/org/aspectj/weaver/patterns/WithinAnnotationPointcut.java b/weaver/src/org/aspectj/weaver/patterns/WithinAnnotationPointcut.java index e55d6d635..4f83d5512 100644 --- a/weaver/src/org/aspectj/weaver/patterns/WithinAnnotationPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/WithinAnnotationPointcut.java @@ -112,7 +112,7 @@ public class WithinAnnotationPointcut extends NameBindingPointcut { /* (non-Javadoc) * @see org.aspectj.weaver.patterns.Pointcut#concretize1(org.aspectj.weaver.ResolvedType, org.aspectj.weaver.IntMap) */ - protected Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + protected Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { ExactAnnotationTypePattern newType = (ExactAnnotationTypePattern) annotationTypePattern.remapAdviceFormals(bindings); Pointcut ret = new WithinAnnotationPointcut(newType, bindings.getEnclosingAdvice()); ret.copyLocationFrom(this); diff --git a/weaver/src/org/aspectj/weaver/patterns/WithinCodeAnnotationPointcut.java b/weaver/src/org/aspectj/weaver/patterns/WithinCodeAnnotationPointcut.java index a4f1601f2..08220f71b 100644 --- a/weaver/src/org/aspectj/weaver/patterns/WithinCodeAnnotationPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/WithinCodeAnnotationPointcut.java @@ -123,7 +123,7 @@ public class WithinCodeAnnotationPointcut extends NameBindingPointcut { /* (non-Javadoc) * @see org.aspectj.weaver.patterns.Pointcut#concretize1(org.aspectj.weaver.ResolvedType, org.aspectj.weaver.IntMap) */ - protected Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + protected Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { ExactAnnotationTypePattern newType = (ExactAnnotationTypePattern) annotationTypePattern.remapAdviceFormals(bindings); Pointcut ret = new WithinCodeAnnotationPointcut(newType, bindings.getEnclosingAdvice()); ret.copyLocationFrom(this); diff --git a/weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java b/weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java index ba0fe8d98..698da839a 100644 --- a/weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java @@ -182,7 +182,7 @@ public class WithinPointcut extends Pointcut { } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { Pointcut ret = new WithinPointcut(typePattern); ret.copyLocationFrom(this); return ret; diff --git a/weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java b/weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java index 7c134a220..9cbd5941a 100644 --- a/weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java @@ -156,7 +156,7 @@ public class WithincodePointcut extends Pointcut { } - public Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + public Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { Pointcut ret = new WithincodePointcut(signature); ret.copyLocationFrom(this); return ret; diff --git a/weaver/testsrc/org/aspectj/weaver/bcel/PatternWeaveTestCase.java b/weaver/testsrc/org/aspectj/weaver/bcel/PatternWeaveTestCase.java index 7a2a6f0e6..5509c32b0 100644 --- a/weaver/testsrc/org/aspectj/weaver/bcel/PatternWeaveTestCase.java +++ b/weaver/testsrc/org/aspectj/weaver/bcel/PatternWeaveTestCase.java @@ -80,7 +80,7 @@ public class PatternWeaveTestCase extends WeaveTestCase { { Pointcut sp = Pointcut.fromString(pointcutSource); Pointcut rp = sp.resolve(new SimpleScope(world, FormalBinding.NONE)); - Pointcut cp = rp.concretize(ResolvedType.MISSING, 0); + Pointcut cp = rp.concretize(ResolvedType.MISSING, ResolvedType.MISSING, 0); final List l = new ArrayList(); BcelAdvice p = new BcelAdvice(null, cp, null, 0, -1, -1, null, null) { diff --git a/weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java b/weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java index 5a78845cc..c3a84b977 100644 --- a/weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java +++ b/weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java @@ -267,7 +267,7 @@ public abstract class WeaveTestCase extends TestCase { public Pointcut makeConcretePointcut(String s) { - return makeResolvedPointcut(s).concretize(null, 0); + return makeResolvedPointcut(s).concretize(null, null, 0); } public Pointcut makeResolvedPointcut(String s) { diff --git a/weaver/testsrc/org/aspectj/weaver/patterns/PointcutTestCase.java b/weaver/testsrc/org/aspectj/weaver/patterns/PointcutTestCase.java index 37c0266c1..3a4477f9c 100644 --- a/weaver/testsrc/org/aspectj/weaver/patterns/PointcutTestCase.java +++ b/weaver/testsrc/org/aspectj/weaver/patterns/PointcutTestCase.java @@ -57,7 +57,7 @@ public class PointcutTestCase extends TestCase { protected void resolveBindingsFromRTTI() {} - protected Pointcut concretize1(ResolvedType inAspect, IntMap bindings) { + protected Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings) { return null; } diff --git a/weaver/testsrc/org/aspectj/weaver/patterns/WithinTestCase.java b/weaver/testsrc/org/aspectj/weaver/patterns/WithinTestCase.java index b0a0fb259..92283c5e6 100644 --- a/weaver/testsrc/org/aspectj/weaver/patterns/WithinTestCase.java +++ b/weaver/testsrc/org/aspectj/weaver/patterns/WithinTestCase.java @@ -100,7 +100,7 @@ public class WithinTestCase extends TestCase { pointcut0.resolveBindings(scope, bindingTable); Pointcut pointcut1 = pointcut0; - return pointcut1.concretize1(null, new IntMap()); + return pointcut1.concretize1(null, null, new IntMap()); } -- cgit v1.2.3