code: public boolean resultSubtype(Type t, Type s, Warner warner) {
          List<Type> tvars = t.getTypeArguments();
          List<Type> svars = s.getTypeArguments();
          Type tres = t.getReturnType();
          Type sres = subst(s.getReturnType(), svars, tvars);
          return covariantReturnType(tres, sres, warner);
      }
docs: Does t have a result that is a subtype of the result type of s,
  suitable for covariant returns?  It is assumed that both types
  are (possibly polymorphic) method types.  Monomorphic method
  types are handled in the obvious way.  Polymorphic method types
  require renaming all type variables of one to corresponding
  type variables in the other, where correspondence is by
  position in the type parameter list.