aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoraclement <aclement>2005-04-19 12:17:51 +0000
committeraclement <aclement>2005-04-19 12:17:51 +0000
commite5c3b3a9f777ea7a1f795ae583b3755248863511 (patch)
treef7019a111ab1c5826d580ba44f699d2cbcfa9b3d /weaver
parentaaa79b1e48ca9409446a51ebd649360433d95563 (diff)
downloadaspectj-e5c3b3a9f777ea7a1f795ae583b3755248863511.tar.gz
aspectj-e5c3b3a9f777ea7a1f795ae583b3755248863511.zip
from branch: dealing with the binding of formals
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/Pointcut.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/Pointcut.java b/weaver/src/org/aspectj/weaver/patterns/Pointcut.java
index d6950a4c4..cc5e86762 100644
--- a/weaver/src/org/aspectj/weaver/patterns/Pointcut.java
+++ b/weaver/src/org/aspectj/weaver/patterns/Pointcut.java
@@ -86,7 +86,13 @@ public abstract class Pointcut extends PatternNode implements PointcutExpression
super(name, key);
}
}
-
+
+ /**
+ * ATAJ the name of the formal for which we don't want any warning when unbound since
+ * we consider them as implicitly bound. f.e. JoinPoint for @AJ advices
+ */
+ public String[] m_ignoreUnboundBindingForNames = new String[0];
+
public static final State SYMBOLIC = new State("symbolic", 0);
public static final State RESOLVED = new State("resolved", 1);
public static final State CONCRETE = new State("concrete", 2);
@@ -229,7 +235,10 @@ public abstract class Pointcut extends PatternNode implements PointcutExpression
* Only used by test cases
*/
public final Pointcut concretize(ResolvedTypeX inAspect, int arity) {
- return concretize(inAspect, IntMap.idMap(arity));
+ Pointcut ret = concretize(inAspect, IntMap.idMap(arity));
+ // copy the unbound ignore list
+ ret.m_ignoreUnboundBindingForNames = m_ignoreUnboundBindingForNames;
+ return ret;
}
@@ -255,6 +264,8 @@ public abstract class Pointcut extends PatternNode implements PointcutExpression
Pointcut ret = this.concretize1(inAspect, bindings);
if (shouldCopyLocationForConcretize()) ret.copyLocationFrom(this);
ret.state = CONCRETE;
+ // copy the unbound ignore list
+ ret.m_ignoreUnboundBindingForNames = m_ignoreUnboundBindingForNames;
return ret;
}