code: public static <T> Iterable<T> eachWithIndex(Iterable<T> self, @ClosureParams(value=FromString.class, options="T,Integer") Closure closure) {
          eachWithIndex(self.iterator(), closure);
          return self;
      }
docs: Iterates through an iterable type,
  passing each item and the item's index (a counter starting at
  zero) to the given closure.
  
  @param self    an Iterable
  @param closure a Closure to operate on each item
  @return the self Iterable
  @since 2.3.0