code: public List<Type> freshTypeVariables(List<Type> types) {
              ListBuffer<Type> result = new ListBuffer<>();
              for (Type t : types) {
                  if (t.hasTag(WILDCARD)) {
                      t = t.unannotatedType();
                      Type bound = ((WildcardType)t).getExtendsBound();
                      if (bound == null)
                          bound = syms.objectType;
                      result.append(new CapturedType(capturedName,
                                                     syms.noSymbol,
                                                     bound,
                                                     syms.botType,
                                                     (WildcardType)t));
                  } else {
                      result.append(t);
                  }
              }
              return result.toList();
          }
docs: where