RFR: 8268469: Update java.time to use switch expressions [v3]
Patrick Concannon
pconcannon at openjdk.java.net
Wed Jun 16 10:57:28 UTC 2021
On Wed, 9 Jun 2021 16:31:10 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
>> Patrick Concannon has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>>
>> - 8268469: Removed excessive spacing; corrected misplaced comments
>> - Merge remote-tracking branch 'origin/master' into JDK-8268469
>> - Merge remote-tracking branch 'origin/master' into JDK-8268469
>> - 8268469: Update java.time to use switch expressions
>
> src/java.base/share/classes/java/time/Month.java line 491:
>
>> 489: case OCTOBER -> 274 + leap;
>> 490: case NOVEMBER -> 305 + leap;
>> 491: default -> 335 + leap;
>
> It would be better to keep `DECEMBER` here for clarity - even if only in a comment - e.g:
>
>
> case NOVEMBER -> 305 + leap;
> // otherwise (DECEMBER)
> default -> 335 + leap;
Hi Daniel. Thanks for your suggestion. Comment added. Please see commit 2ae4a57
> src/java.base/share/classes/java/time/chrono/ThaiBuddhistDate.java line 334:
>
>> 332:
>> 333: default -> with(isoDate.with(field, newValue));
>> 334: };
>
> My preference would be to keep the imbricated switch structure: it is not obvious whether this change is correct. Have you verified that `getChronology().range(chronoField).checkValidIntValue(newValue, chronoField);` is a no op when chronoField == ERA?
I've reverted these changes as requested. Please see commit 2ae4a57
> src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java line 4992:
>
>> 4990: }
>> 4991: default -> throw new IllegalStateException("unreachable");
>> 4992: };
>
> Not sure I like the new version more than the old, as it seems to lead to more duplication.
> Maybe the 'Y' case should be tested before entering the switch - then the switch could be used to assign
> `var field = switch (chr) {...};`
Reverted these changes as requested. Please see commit 2ae4a57
-------------
PR: https://git.openjdk.java.net/jdk/pull/4433
More information about the core-libs-dev
mailing list