summaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-09-06 13:08:19 +0000
committeracolyer <acolyer>2005-09-06 13:08:19 +0000
commit71771abbb2d2bac4cd832323c08d9dcad81db2a0 (patch)
tree4c40bb41dfcd35076a97015549a95eb6382841b1 /weaver
parent8459fc93a9f455b2669ed2a758b10bdc6cd3903a (diff)
downloadaspectj-71771abbb2d2bac4cd832323c08d9dcad81db2a0.tar.gz
aspectj-71771abbb2d2bac4cd832323c08d9dcad81db2a0.zip
tests and fix for pr108816, args with binding with .. at join point with synthetic arguments
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java b/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java
index e66dd4452..0dcc59630 100644
--- a/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java
+++ b/weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java
@@ -350,7 +350,8 @@ public class ArgsPointcut extends NameBindingPointcut {
}
protected Test findResidueInternal(Shadow shadow, ExposedState state) {
- if (arguments.matches(getArgumentsToMatchAgainst(shadow), TypePattern.DYNAMIC).alwaysFalse()) {
+ ResolvedType[] argsToMatch = getArgumentsToMatchAgainst(shadow);
+ if (arguments.matches(argsToMatch, TypePattern.DYNAMIC).alwaysFalse()) {
return Literal.FALSE;
}
int ellipsisCount = arguments.ellipsisCount;
@@ -358,7 +359,7 @@ public class ArgsPointcut extends NameBindingPointcut {
return findResidueNoEllipsis(shadow, state, arguments.getTypePatterns());
} else if (ellipsisCount == 1) {
TypePattern[] patternsWithEllipsis = arguments.getTypePatterns();
- TypePattern[] patternsWithoutEllipsis = new TypePattern[shadow.getArgCount()];
+ TypePattern[] patternsWithoutEllipsis = new TypePattern[argsToMatch.length];
int lenWithEllipsis = patternsWithEllipsis.length;
int lenWithoutEllipsis = patternsWithoutEllipsis.length;
// l1+1 >= l0