diff options
author | aclement <aclement> | 2008-05-30 17:26:41 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-05-30 17:26:41 +0000 |
commit | 2188dc0b5aec516e501f586fc069b439cbbc3818 (patch) | |
tree | ef9063d6dc7eba21392d02ab672bba9c7b34646a /weaver/src | |
parent | f98072a2cea60676a89ec865179cc073e0965d78 (diff) | |
download | aspectj-2188dc0b5aec516e501f586fc069b439cbbc3818.tar.gz aspectj-2188dc0b5aec516e501f586fc069b439cbbc3818.zip |
231396: reworked wildcard handling
Diffstat (limited to 'weaver/src')
-rw-r--r-- | weaver/src/org/aspectj/weaver/patterns/DeclareSoft.java | 4 |
1 files changed, 3 insertions, 1 deletions
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, |