code: public Type skipTypeVars(Type site, boolean capture) {
          while (site.hasTag(TYPEVAR)) {
              site = site.getUpperBound();
          }
          return capture ? capture(site) : site;
      }
docs: Recursively skip type-variables until a class/array type is found; capture conversion is then
  (optionally) applied to the resulting type. This is useful for i.e. computing a site that is
  suitable for a method lookup.