@SuppressWarnings("all")
	public static boolean isValidDesc(@Nullable String desc) {
		if (desc == null)
			return false;
		if (desc.length() == 0)
			return false;
		char first = desc.charAt(0);
		if (first == '(') {
			try {
				Type methodType = Type.getMethodType(desc);
				methodType.getArgumentTypes();
				methodType.getReturnType();
				return true;
			} catch (Throwable t) {
				return false;
			}
		} else if (first == 'L' || first == '[') {
			try {
				Type type = Type.getType(desc);
				if (type.getSort() == Type.OBJECT && !desc.endsWith(";"))
					return false;
				else if (type.getSort() == Type.ARRAY && type.getElementType() == null)
					return false;
				return true;
			} catch (Throwable t) {
				return false;
			}
		}
		return false;
	}
ASM likes to throw {@link IllegalArgumentException} in cases where it can't parse type descriptors.
This lets us check beforehand if its valid.

@param desc
		Descriptor to check.

@return {@code true} when its parsable.
recaf-core/src/main/java/software/coley/recaf/util/Types.java