aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2003-08-05 00:22:05 +0000
committerjhugunin <jhugunin>2003-08-05 00:22:05 +0000
commite85783d87e6d499e9ef3591b6801631566ed8edc (patch)
treea3b390d837a3d06b79c1c73ea3856119655f86bc /weaver
parent29457c3d6d0b4cd7cca1d2867e6bd80a56a24722 (diff)
downloadaspectj-e85783d87e6d499e9ef3591b6801631566ed8edc.tar.gz
aspectj-e85783d87e6d499e9ef3591b6801631566ed8edc.zip
fix for Bugzilla Bug 40805
call pointcut with interface type fails if method declared on interface
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/ResolvedTypeX.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/weaver/src/org/aspectj/weaver/ResolvedTypeX.java b/weaver/src/org/aspectj/weaver/ResolvedTypeX.java
index 12bab5521..a9b6fa654 100644
--- a/weaver/src/org/aspectj/weaver/ResolvedTypeX.java
+++ b/weaver/src/org/aspectj/weaver/ResolvedTypeX.java
@@ -901,12 +901,22 @@ public abstract class ResolvedTypeX extends TypeX {
/** return null if not found */
public ResolvedMember lookupMemberNoSupers(Member member) {
+ ResolvedMember ret;
if (member.getKind() == Member.FIELD) {
- return lookupMember(member, getDeclaredFields());
+ ret = lookupMember(member, getDeclaredFields());
} else {
// assert member.getKind() == Member.METHOD || member.getKind() == Member.CONSTRUCTOR
- return lookupMember(member, getDeclaredMethods());
+ ret = lookupMember(member, getDeclaredMethods());
}
+ if (ret == null && interTypeMungers != null) {
+ for (Iterator i = interTypeMungers.iterator(); i.hasNext();) {
+ ConcreteTypeMunger tm = (ConcreteTypeMunger) i.next();
+ if (matches(tm.getSignature(), member)) {
+ return tm.getSignature();
+ }
+ }
+ }
+ return ret;
}
protected List interTypeMungers = new ArrayList(0);