code: static Type newArrayType(Type componentType) {
      if (componentType instanceof WildcardType) {
        WildcardType wildcard = (WildcardType) componentType;
        Type[] lowerBounds = wildcard.getLowerBounds();
        checkArgument(lowerBounds.length <= 1, "Wildcard cannot have more than one lower bounds.");
        if (lowerBounds.length == 1) {
          return supertypeOf(newArrayType(lowerBounds[0]));
        } else {
          Type[] upperBounds = wildcard.getUpperBounds();
          checkArgument(upperBounds.length == 1, "Wildcard should have only one upper bound.");
          return subtypeOf(newArrayType(upperBounds[0]));
        }
      }
      return JavaVersion.CURRENT.newArrayType(componentType);
    }
docs: Returns the array type of {@code componentType}.