code: static String typeParametersString(DocEnv env, Symbol sym, boolean full) {
          if (env.legacyDoclet || sym.type.getTypeArguments().isEmpty()) {
              return "";
          }
          StringBuilder s = new StringBuilder();
          for (Type t : sym.type.getTypeArguments()) {
              s.append(s.length() == 0 ? "<" : ", ");
              s.append(TypeVariableImpl.typeVarToString(env, (TypeVar)t, full));
          }
          s.append(">");
          return s.toString();
      }
docs: Return the formal type parameters of a class or method as an
  angle-bracketed string.  Each parameter is a type variable with
  optional bounds.  Class names are qualified if "full" is true.
  Return "" if there are no type parameters or we're hiding generics.