code: private static <T> FluentIterable<T> concatNoDefensiveCopy(
        final Iterable<? extends T>... inputs) {
      for (Iterable<? extends T> input : inputs) {
        checkNotNull(input);
      }
      return new FluentIterable<T>() {
        @Override
        public Iterator<T> iterator() {
          return Iterators.concat(
              /* lazily generate the iterators on each input only as needed */
              new AbstractIndexedListIterator<Iterator<? extends T>>(inputs.length) {
                @Override
                public Iterator<? extends T> get(int i) {
                  return inputs[i].iterator();
                }
              });
        }
      };
    }
docs: Concatenates a varargs array of iterables without making a defensive copy of the array.