code: private WildcardType makeSuperWildcard(Type bound, TypeVar formal) {
          if (bound.hasTag(BOT)) {
              return new WildcardType(syms.objectType,
                                      BoundKind.UNBOUND,
                                      syms.boundClass,
                                      formal);
          } else {
              return new WildcardType(bound,
                                      BoundKind.SUPER,
                                      syms.boundClass,
                                      formal);
          }
      }
docs: Create a wildcard with the given lower (super) bound; create an
  unbounded wildcard if bound is bottom (type of {@code null}).
  
  @param bound the lower bound
  @param formal the formal type parameter that will be
  substituted by the wildcard