diff options
author | acolyer <acolyer> | 2005-08-05 08:59:15 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-08-05 08:59:15 +0000 |
commit | c22c80074c9ef8876d758692815b9c100e51f7ed (patch) | |
tree | 66cda7880fb8de0ef0deea116a78c348c03ae14d /weaver | |
parent | 900a3e81d5b09c55e4044451f311f0566c025ec6 (diff) | |
download | aspectj-c22c80074c9ef8876d758692815b9c100e51f7ed.tar.gz aspectj-c22c80074c9ef8876d758692815b9c100e51f7ed.zip |
tests and fix for call pointcut matching with various generic and parameterized types
Diffstat (limited to 'weaver')
-rw-r--r-- | weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java b/weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java index 1acebd584..91cee14a6 100644 --- a/weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java +++ b/weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java @@ -267,7 +267,7 @@ public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, Anno } public boolean hasAnnotation(UnresolvedType ofType) { - // The ctors don't allow annotations to be specified ... yet - but + // The ctors don't allow annotations to be specified ... yet - but // that doesn't mean it is an error to call this method. // Normally the weaver will be working with subtypes of // this type - BcelField/BcelMethod @@ -388,7 +388,7 @@ public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, Anno for (int i = 0; i < typeVariables.length; i++) { UnresolvedType array_element = typeVariables[i]; typeVariables[i] = typeVariables[i].resolve(world); - } + } } if (parameterTypes!=null && parameterTypes.length>0) { for (int i = 0; i < parameterTypes.length; i++) { @@ -396,7 +396,7 @@ public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, Anno parameterTypes[i] = parameterTypes[i].resolve(world); } } - + returnType = returnType.resolve(world);return this; } @@ -601,9 +601,8 @@ public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, Anno private ResolvedMember myErasure = null; private boolean calculatedMyErasure = false; - - - /** + + /** * For ITDs, we use the default factory methods to build a resolved member, then alter a couple of characteristics * using this method - this is safe. */ @@ -675,7 +674,12 @@ public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, Anno StringBuffer sig = new StringBuffer(); UnresolvedType[] myParameterTypes = getParameterTypes(); for (int i = 0; i < myParameterTypes.length; i++) { - sig.append(myParameterTypes[i].getSignature()); + UnresolvedType thisParameter = myParameterTypes[i]; + if (thisParameter.isTypeVariableReference()) { + sig.append(thisParameter.getUpperBound().getSignature()); + } else { + sig.append(thisParameter.getSignature()); + } } myParameterSignatureErasure = sig.toString(); return myParameterSignatureErasure; |