diff options
author | aclement <aclement> | 2008-05-30 17:24:25 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-05-30 17:24:25 +0000 |
commit | 5e6e5fa2c329093c3b162cf8b09ece46981a6b04 (patch) | |
tree | c660faa3af01deb05c61278809e28aa4ab71a818 | |
parent | afa3695c19566f0fcf12992926e358a091fdb82b (diff) | |
download | aspectj-5e6e5fa2c329093c3b162cf8b09ece46981a6b04.tar.gz aspectj-5e6e5fa2c329093c3b162cf8b09ece46981a6b04.zip |
231396: reworked wildcard handling
-rw-r--r-- | weaver/src/org/aspectj/weaver/TypeFactory.java | 27 |
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(";")) { |