docs: public static void upto(Temporal from, Temporal to, TemporalUnit unit, Closure closure) {
          if (isUptoEligible(from, to)) {
              for (Temporal i = from; isUptoEligible(i, to); i = i.plus(1, unit)) {
                  closure.call(i);
              }
          } else {
              throw new GroovyRuntimeException("The argument (" + to +
                      ") to upto() cannot be earlier than the value (" + from + ") it's called on.");
          }
      }