diff options
author | aclement <aclement> | 2007-02-07 09:13:13 +0000 |
---|---|---|
committer | aclement <aclement> | 2007-02-07 09:13:13 +0000 |
commit | bce642eed89a9f3bfd21f232eaa5359fa3d81214 (patch) | |
tree | 3e11b8ad09f6cf4bd2119cfd161b01d0105d9907 /weaver | |
parent | 87e59db578390c77aabab01d2e5d19b3514cda96 (diff) | |
download | aspectj-bce642eed89a9f3bfd21f232eaa5359fa3d81214.tar.gz aspectj-bce642eed89a9f3bfd21f232eaa5359fa3d81214.zip |
test and fix for 171952: method overriding with ITD using generic return values
Diffstat (limited to 'weaver')
-rw-r--r-- | weaver/src/org/aspectj/weaver/ReferenceType.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/ReferenceType.java b/weaver/src/org/aspectj/weaver/ReferenceType.java index e93db655a..31313cad8 100644 --- a/weaver/src/org/aspectj/weaver/ReferenceType.java +++ b/weaver/src/org/aspectj/weaver/ReferenceType.java @@ -314,6 +314,9 @@ public class ReferenceType extends ResolvedType { if (myParameters.length == theirParameters.length) { for (int i = 0; i < myParameters.length; i++) { if (myParameters[i] == theirParameters[i]) continue; + if (myParameters[i].isAssignableFrom(theirParameters[i],allowMissing)) { + continue; + } if (!myParameters[i].isGenericWildcard()) { parametersAssignable = false; break; @@ -340,7 +343,8 @@ public class ReferenceType extends ResolvedType { if (other.isTypeVariableReference()) { TypeVariableReferenceType otherType = (TypeVariableReferenceType) other; if (this instanceof TypeVariableReference) { - return ((TypeVariableReference)this).getTypeVariable()==otherType.getTypeVariable(); + return ((TypeVariableReference)this).getTypeVariable().canBeBoundTo(otherType.getTypeVariable().getFirstBound().resolve(world));// pr171952 +// return ((TypeVariableReference)this).getTypeVariable()==otherType.getTypeVariable(); } else { // FIXME asc should this say canBeBoundTo?? return this.isAssignableFrom(otherType.getTypeVariable().getFirstBound().resolve(world)); |