From: aclement Date: Tue, 9 Dec 2008 00:20:23 +0000 (+0000) Subject: 253109: tests and fix X-Git-Tag: V1_6_3rc1~35 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1ee5cebaebb381778cb15806fc5a9f25d7d8bf5b;p=aspectj.git 253109: tests and fix --- diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java b/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java index 4ce3562e8..1eb06cc90 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java @@ -216,6 +216,14 @@ public class ReferenceType extends ResolvedType { return isCoerceableFromParameterizedType(other); } + if (this.isParameterizedType() && other.isRawType()) { + return ((ReferenceType) this.getRawType()).isCoerceableFrom(other.getGenericType()); + } + + if (this.isRawType() && other.isParameterizedType()) { + return this.getGenericType().isCoerceableFrom(((ReferenceType) other.getRawType())); + } + if (!this.isInterface() && !other.isInterface()) { return false; } @@ -302,14 +310,17 @@ public class ReferenceType extends ResolvedType { if (ResolvedType.validBoxing.contains(this.getSignature() + other.getSignature())) return true; } - if (this == other) + if (this == other) { return true; - if (this.getSignature().equals(ResolvedType.OBJECT.getSignature())) + } + if (this.getSignature().equals(ResolvedType.OBJECT.getSignature())) { return true; + } if ((this.isRawType() || this.isGenericType()) && other.isParameterizedType()) { - if (isAssignableFrom((ResolvedType) other.getRawType())) + if (isAssignableFrom((ResolvedType) other.getRawType())) { return true; + } } if (this.isRawType() && other.isGenericType()) { if (isAssignableFrom((ResolvedType) other.getRawType())) @@ -319,6 +330,11 @@ public class ReferenceType extends ResolvedType { if (isAssignableFrom(other.getGenericType())) return true; } + // if (this.isParameterizedType() && other.isRawType()) { + // if (((ReferenceType) this.getRawType()).isAssignableFrom(other.getGenericType())) { + // return true; + // } + // } if (this.isParameterizedType()) { // look at wildcards...