On Mon, 26 Jun 2023 18:28:47 GMT, Naoto Sato <na...@openjdk.org> wrote:

>> Remove a redundant comparison in java.time `OffsetDateTime.compareTo()`. 
>> If the `compareInstant` utility method returns 0 (equal), it compares the 
>> `LocalDateTime`.
>> However, `compareInstant` has already done that comparison; if it found 
>> equal, the `compareTo` method unnecessarily does it again.
>> The code is refactored in `compareInstant` to do the comparison of 
>> `LocalDateTime` exactly once, if it is needed.
>> 
>> This case is covered by existing tests in 
>> test/jdk/java/time/tck/java/time/TCKOffsetDateTime.java
>
> src/java.base/share/classes/java/time/OffsetDateTime.java line 173:
> 
>> 171:      * to distinguish them. This step is needed to make the ordering
>> 172:      * consistent with {@code equals()}.
>> 173:      *
> 
> This method is also called from the public `timeLineOrder()` method. Could 
> this change cause a different order?

Your are right; I missed that subtlety. With that in mind I don't think the 
performance impact is sufficient to duplicate more code.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14618#discussion_r1242723719

Reply via email to