docs: public static boolean needsSafeVarargs(TypeMirror elementType) {
      return elementType.accept(new SimpleTypeVisitor8<Boolean, Void>() {
        @Override
        public Boolean visitDeclared(DeclaredType t, Void p) {
          // Set<?>... does not need @SafeVarargs; Set<Integer>... or Set<? extends Number> does.
          for (TypeMirror typeArgument : t.getTypeArguments()) {
            if (!isPlainWildcard(typeArgument)) {
              return true;
            }
          }
          return false;
        }
  
        @Override
        public Boolean visitTypeVariable(TypeVariable t, Void p) {
          return true;
        }
  
        @Override
        protected Boolean defaultAction(TypeMirror e, Void p) {
          return false;
        }
  
        @Override
        public Boolean visitUnknown(TypeMirror t, Void p) {
          return false;
        }
      }, null);
    }