From 1ee5cebaebb381778cb15806fc5a9f25d7d8bf5b Mon Sep 17 00:00:00 2001 From: aclement Date: Tue, 9 Dec 2008 00:20:23 +0000 Subject: 253109: tests and fix --- .../src/org/aspectj/weaver/ReferenceType.java | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'org.aspectj.matcher/src') 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... -- cgit v1.2.3