54216ec8

ical-recurrence: test that a date-valued RecurrenceDateTimes does not fail unfixably

Unlike DTEND, the value type of RDATE is not constrained to that of
DTSTART: RFC 5545 section 3.8.5.2 allows DATE and PERIOD as well as the
default DATE-TIME.

Combined with a DTEND, a date-valued RDATE reaches computeNewEnd with a
DateTimeStartDate as the new start and a DateTimeStartDateTime as the
original one, which is an unfixable StartStartMismatch.  That error is
documented in ICal.Recurrence.Class as an internal error that should not
happen, yet it is reachable from ordinary parsed input and it halts
recurrence for the whole calendar.

Reading the added instance as an all-day one is what its value type
says.  Coercing it to a time on that day would be defensible too;
failing the whole calendar is not.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 1m22s 0s 0s 1m23s 1m22s
Eval 1m23s 11s 11s 1m35s 0s
Build 1m34s 19s 12s 1m47s 0s
Suite 1m22s 32s 24s 1m47s 1m22s

Timeline

0s1m30s1m40s