Browse Source

test and fix for 171952: method overriding with ITD using generic return values

tags/Root_extensions
aclement 17 years ago
parent
commit
bce642eed8
1 changed files with 5 additions and 1 deletions
  1. 5
    1
      weaver/src/org/aspectj/weaver/ReferenceType.java

+ 5
- 1
weaver/src/org/aspectj/weaver/ReferenceType.java View File

@@ -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));

Loading…
Cancel
Save