code: <D extends ChronoLocalDate> D ensureChronoLocalDate(Temporal temporal) {
          @SuppressWarnings("unchecked")
          D other = (D) temporal;
          if (this.equals(other.getChronology()) == false) {
              throw new ClassCastException("Chrono mismatch, expected: " + getId() + ", actual: " + other.getChronology().getId());
          }
          return other;
      }
docs: Casts the {@code Temporal} to {@code ChronoLocalDate} with the same chronology.
  
  @param temporal  a date-time to cast, not null
  @return the date-time checked and cast to {@code ChronoLocalDate}, not null
  @throws ClassCastException if the date-time cannot be cast to ChronoLocalDate
  or the chronology is not equal this Chrono