From 5e6e5fa2c329093c3b162cf8b09ece46981a6b04 Mon Sep 17 00:00:00 2001 From: aclement Date: Fri, 30 May 2008 17:24:25 +0000 Subject: [PATCH] 231396: reworked wildcard handling --- .../src/org/aspectj/weaver/TypeFactory.java | 27 ++++++------------- 1 file 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(";")) { -- 2.39.5