docs: public static <T> List<T> copyOf(Collection<T> source) {
          Preconditions.checkNotNull(source);
          if (source instanceof ImmutableList<?>) {
              return (ImmutableList<T>) source;
          }
          if (source.isEmpty()) {
              return Collections.emptyList();
          }
          return ofInternal(source.toArray());
      }