res.append("V");
res.append(NULL_TYPE_SIGNATURE);
	public static char[] unboundedSignature(char[] signature) {		if (signature == null || signature.length < 2)			return signature;				// XXX the signature somehow contains double '+'		StringBuffer sig= new StringBuffer();		sig.append(signature);		do {			int pos= sig.indexOf("++"); //$NON-NLS-1$			if (pos == -1)				break;			sig.deleteCharAt(pos);		} while (true);		signature= sig.toString().toCharArray();				int pos= 0;		// skip type declaration		if (signature[pos] == Signature.C_GENERIC_START) {			pos= Util.scanIdentifier(signature, pos + 1);			if (signature[pos + 1] != Signature.C_COLON)				throw new IllegalArgumentException(String.valueOf(signature));			pos= Util.scanTypeArgumentSignature(signature, pos + 2) + 1;			if (signature[pos] != Signature.C_GENERIC_END)				throw new IllegalArgumentException(String.valueOf(signature));			pos++;		}				if (signature[pos] != Signature.C_PARAM_START)			throw new IllegalArgumentException(String.valueOf(signature));		pos++;				StringBuffer res= new StringBuffer("("); //$NON-NLS-1$		boolean isReturnType= false;		while (pos < signature.length) {			char ch= signature[pos];			switch (ch) {				case Signature.C_STAR:					pos++;					res.append(OBJECT_SIGNATURE);					break;				case Signature.C_SUPER:					int end= Util.scanTypeSignature(signature, pos + 1);					if (isReturnType)						res.append(OBJECT_SIGNATURE); // return type is at least Object					else						res.append(signature, pos + 1, end - pos);					pos= end + 1;					break;				case Signature.C_EXTENDS:					end= Util.scanTypeSignature(signature, pos + 1);					if (isReturnType)						res.append(signature, pos + 1, end - pos);					else//						res.append(OBJECT_SIGNATURE); // XXX wrong - should be the null type!						res.append("V"); // no lower bound! return void type for now //$NON-NLS-1$					pos= end + 1;					break;				case Signature.C_PARAM_END:					pos++;					res.append(Signature.C_PARAM_END);					isReturnType= true;					break;				default:					end= Util.scanTypeSignature(signature, pos);					res.append(signature, pos, end - pos + 1);					pos= end + 1;					break;			}		}				return res.toString().toCharArray();	}