summaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoraclement <aclement>2007-02-07 09:13:13 +0000
committeraclement <aclement>2007-02-07 09:13:13 +0000
commitbce642eed89a9f3bfd21f232eaa5359fa3d81214 (patch)
tree3e11b8ad09f6cf4bd2119cfd161b01d0105d9907 /weaver
parent87e59db578390c77aabab01d2e5d19b3514cda96 (diff)
downloadaspectj-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.java6
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));