aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-09-29 10:01:47 +0000
committeracolyer <acolyer>2005-09-29 10:01:47 +0000
commitc5171f738fcfa0cc947b2be45e00af8b78d7ac7d (patch)
treeca5f59935bf27c543c1119f7358609c1d091e506
parent85a4b0afb2c4b69cb467484d9ed18b21e414a868 (diff)
downloadaspectj-c5171f738fcfa0cc947b2be45e00af8b78d7ac7d.tar.gz
aspectj-c5171f738fcfa0cc947b2be45e00af8b78d7ac7d.zip
perclause resolving
-rw-r--r--tests/java5/ataspectj/ataspectj/aop-perclausetest.xml1
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java10
2 files changed, 10 insertions, 1 deletions
diff --git a/tests/java5/ataspectj/ataspectj/aop-perclausetest.xml b/tests/java5/ataspectj/ataspectj/aop-perclausetest.xml
index 236a6a856..3116c04a8 100644
--- a/tests/java5/ataspectj/ataspectj/aop-perclausetest.xml
+++ b/tests/java5/ataspectj/ataspectj/aop-perclausetest.xml
@@ -6,5 +6,6 @@
<aspect name="ataspectj.PerClauseTestAspects.TestAspectPerTarget"/>
<aspect name="ataspectj.PerClauseTestAspects.TestAspectPerCflow"/>
<aspect name="ataspectj.PerClauseTestAspects.TestAspectPTW"/>
+ <aspect name="ataspectj.PerClauseTestAspects.TestAspectPerThis"/>
</aspects>
</aspectj>
diff --git a/weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java b/weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java
index 98d9d9632..87fcbf22e 100644
--- a/weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java
+++ b/weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java
@@ -483,6 +483,14 @@ public class AtAjAttributes {
// FIXME asc see related comment way about about the version...
struct.ajAttributes.add(new AjAttribute.WeaverVersionInfo());
struct.ajAttributes.add(new AjAttribute.Aspect(perClause));
+ FormalBinding[] bindings = new org.aspectj.weaver.patterns.FormalBinding[0];
+ final IScope binding;
+ binding = new BindingScope(
+ struct.enclosingType,
+ struct.context,
+ bindings
+ );
+ perClause.resolve(binding);
return true;
}
}
@@ -599,7 +607,7 @@ public class AtAjAttributes {
} else {
pc = parsePointcut(beforeAdvice.getValue().stringifyValue(), struct, false);
if (pc == null) return false;//parse error
- pc.resolve(binding);
+ pc = pc.resolve(binding);
}
setIgnoreUnboundBindingNames(pc, bindings);