On Thu, 3 Nov 2022 00:49:52 GMT, Stuart Marks <sma...@openjdk.org> wrote:

>> @stuart-marks What are examples of cases where it wouldn't be reasonable: 
>> https://github.com/openjdk/jdk/pull/7387/files#diff-2b261a88d9ed30893d24186a36ef500d284d82e8f345591fc6c44ed5ae15da4fR161
>>  ?
>
> I had to uncomment that line to figure out what broke. :-) Turns out 
> `TreeSet.reversed().reversed()` doesn't return the original TreeSet. This is 
> because `descendingSet().descendingSet()` doesn't unwrap, and neither does 
> TreeMap's `descendingMap().descendingMap()`. I don't know what this wasn't 
> done in the first place. Nonetheless, since unwrapping isn't done in the 
> underlying implementation, it doesn't seem reasonable for the specification 
> to require it be done. Furthermore this enables `reversed()` to be 
> implemented as a default method that simply delegates to the respective 
> `descending*()` method.

Also, `unmodifiableSequencedCollection(c).reversed().reversed()` does not 
return the original `unmodifiableSequencedCollection(c)`. And we probably 
cannot even specify that `x.reversed().reversed().equals(x)`, due to lack of 
`equals()` specification for all collections (in particular, Deques)...

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

PR Review Comment: https://git.openjdk.org/jdk/pull/7387#discussion_r1148106570

Reply via email to