Type ownerType = parameterizedType.getOwnerType();
if (ownerType != null) {
toString(ownerType, appendable, classFormatter);
appendable.append('.');
toString(parameterizedType.getRawType(), appendable, classFormatter);
appendable.append('<');
boolean separator = false;
appendable.append(", ");
toString(arg, appendable, classFormatter);
separator = true;
if (!Object.class.equals(firstBound)) {
appendable.append(" extends ");
toString(firstBound, appendable, classFormatter);
toString(lowerBounds[0], appendable, classFormatter);
} else {
Type[] upperBounds = wildcardType.getUpperBounds();
toString(upperBounds[0], appendable, classFormatter);
} else {
toString(((GenericArrayType) actualType).getGenericComponentType(), appendable, classFormatter);
appendable.append("[]");
} else {