From 2188dc0b5aec516e501f586fc069b439cbbc3818 Mon Sep 17 00:00:00 2001 From: aclement Date: Fri, 30 May 2008 17:26:41 +0000 Subject: 231396: reworked wildcard handling --- weaver/src/org/aspectj/weaver/patterns/DeclareSoft.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'weaver/src') diff --git a/weaver/src/org/aspectj/weaver/patterns/DeclareSoft.java b/weaver/src/org/aspectj/weaver/patterns/DeclareSoft.java index ed6a78375..c8a3bfad7 100644 --- a/weaver/src/org/aspectj/weaver/patterns/DeclareSoft.java +++ b/weaver/src/org/aspectj/weaver/patterns/DeclareSoft.java @@ -20,6 +20,7 @@ import java.util.Map; import org.aspectj.bridge.IMessage; import org.aspectj.weaver.ISourceContext; import org.aspectj.weaver.ResolvedType; +import org.aspectj.weaver.TypeVariableReferenceType; import org.aspectj.weaver.UnresolvedType; import org.aspectj.weaver.VersionedDataInputStream; import org.aspectj.weaver.WeaverMessages; @@ -102,8 +103,9 @@ public class DeclareSoft extends Declare { ResolvedType excType = exception.getExactType().resolve(scope.getWorld()); if (!excType.isMissing()) { if (excType.isTypeVariableReference()) { + TypeVariableReferenceType typeVariableRT = (TypeVariableReferenceType) excType; // a declare soft in a generic abstract aspect, we need to check the upper bound - excType = excType.getUpperBound().resolve(scope.getWorld()); + excType = typeVariableRT.getUpperBound().resolve(scope.getWorld()); } if (!scope.getWorld().getCoreType(UnresolvedType.THROWABLE).isAssignableFrom(excType)) { scope.getWorld().showMessage(IMessage.ERROR, -- cgit v1.2.3