aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2008-05-30 17:24:25 +0000
committeraclement <aclement>2008-05-30 17:24:25 +0000
commit5e6e5fa2c329093c3b162cf8b09ece46981a6b04 (patch)
treec660faa3af01deb05c61278809e28aa4ab71a818
parentafa3695c19566f0fcf12992926e358a091fdb82b (diff)
downloadaspectj-5e6e5fa2c329093c3b162cf8b09ece46981a6b04.tar.gz
aspectj-5e6e5fa2c329093c3b162cf8b09ece46981a6b04.zip
231396: reworked wildcard handling
-rw-r--r--weaver/src/org/aspectj/weaver/TypeFactory.java27
1 files changed, 8 insertions, 19 deletions
diff --git a/weaver/src/org/aspectj/weaver/TypeFactory.java b/weaver/src/org/aspectj/weaver/TypeFactory.java
index 9db8e3489..b314d4001 100644
--- a/weaver/src/org/aspectj/weaver/TypeFactory.java
+++ b/weaver/src/org/aspectj/weaver/TypeFactory.java
@@ -14,8 +14,6 @@ package org.aspectj.weaver;
import java.util.ArrayList;
import java.util.List;
-import org.aspectj.weaver.UnresolvedType.TypeKind;
-
/**
* @author colyer
*
@@ -135,27 +133,18 @@ public class TypeFactory {
return new UnresolvedType(signature,signatureErasure,typeParams);
}
// can't replace above with convertSigToType - leads to stackoverflow
- } else if (signature.equals("?")){
- UnresolvedType ret = UnresolvedType.SOMETHING;
- ret.typeKind = TypeKind.WILDCARD;
- return ret;
+ } else if (signature.equals("?") || signature.equals("*")) {
+ return WildcardedUnresolvedType.QUESTIONMARK;
} else if(firstChar=='+') {
// ? extends ...
- UnresolvedType ret = new UnresolvedType(signature);
- ret.typeKind = TypeKind.WILDCARD;
-
-// UnresolvedType bound1 = UnresolvedType.forSignature(signature.substring(1));
-// UnresolvedType bound2 = convertSigToType(signature.substring(1));
- ret.setUpperBound(convertSigToType(signature.substring(1)));
- return ret;
+ UnresolvedType upperBound = convertSigToType(signature.substring(1));
+ WildcardedUnresolvedType wildcardedUT = new WildcardedUnresolvedType(signature, upperBound, null);
+ return wildcardedUT;
} else if (firstChar=='-') {
// ? super ...
-// UnresolvedType bound = UnresolvedType.forSignature(signature.substring(1));
-// UnresolvedType bound2 = convertSigToType(signature.substring(1));
- UnresolvedType ret = new UnresolvedType(signature);
- ret.typeKind = TypeKind.WILDCARD;
- ret.setLowerBound(convertSigToType(signature.substring(1)));
- return ret;
+ UnresolvedType lowerBound = convertSigToType(signature.substring(1));
+ WildcardedUnresolvedType wildcardedUT = new WildcardedUnresolvedType(signature, null, lowerBound);
+ return wildcardedUT;
} else if (firstChar=='T') {
String typeVariableName = signature.substring(1);
if (typeVariableName.endsWith(";")) {