Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Makes
start
andend
on Interval usedef
instead ofval
, and revisesInterval
implementations to uselazy val
. The goal is to defer evaluation of things likeUnknownInterval
, which would otherwise cause anything that references them to throw an exception at construction time. Note that this required small changes in the test suite, because if neitherstart
norend
is called, no exception will be produced.I originally started down the path we had discussed for deferring this evaluation by making all the
Interval
operators intoInterval => Interval
s, but that ended up not really working out. For example, ifThisRepeatingInterval
is anInterval => Interval
andTwoDigitYear
is anInterval => Interval
, then it's not clear how to pass theTwoDigitYear
as theInterval
argument toThisRepeatingInterval
in a expression like "January of 89".