summaryrefslogtreecommitdiffstats
path: root/weaver/src
diff options
context:
space:
mode:
authoraclement <aclement>2008-05-30 17:26:41 +0000
committeraclement <aclement>2008-05-30 17:26:41 +0000
commit2188dc0b5aec516e501f586fc069b439cbbc3818 (patch)
treeef9063d6dc7eba21392d02ab672bba9c7b34646a /weaver/src
parentf98072a2cea60676a89ec865179cc073e0965d78 (diff)
downloadaspectj-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.java4
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,