> On 22. Nov 2017, at 07:51, Douglas Gregor via swift-evolution
> <swift-evolution@swift.org> wrote:
>
> Hi all,
>
> We’re having a bit of a debate <https://github.com/apple/swift/pull/12910>
> over the question of whether SE-0143 “Conditional Conformances”
> <https://github.com/apple/swift-evolution/blob/master/proposals/0143-conditional-conformances.md>
> actually proposes any standard library changes at all, or whether they
> should all be brought up separately. So, I’ll pitch the pieces that I’d love
> to put into 4.1 to see if they’re as obvious as I think they should be :)
>
> Proposal: make Optional, Array, ArraySlice, ContiguousArray, and Dictionary
> conform to Equatable when their type parameters are Equatable (and Set always
> conform to Equatable). Specifically, add to the standard library:
>
> extension Optional: Equatable where Wrapped: Equatable { /*== already
> exists */ }
> extension Array: Equatable where Element: Equatable { /*== already
> exists */ }
> extension ArraySlice: Equatable where Element: Equatable { /*== already
> exists */ }
> extension ContiguousArray: Equatable where Element: Equatable { /*==
> already exists */ }
> extension Dictionary: Equatable where Value: Equatable { /*== already
> exists */ }
> extension Set: Equatable { /*== already exists */ }
>
> Motivation: we need these for ==/!= to properly compose. It’s a
> highly-requested feature and an obvious “first use” of conditional
> conformances for the standard library that is unlikely to break any code.
>
> Implementation: https://github.com/apple/swift/pull/13046
> <https://github.com/apple/swift/pull/13046>
>
> Thoughts?
>
>
> - Doug
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
I think they’re supposed to be brought up separately. There are actually a few
areas of the standard library that have become outdated as we accepted new
language features without corresponding proposals about using them. For
example, we have top-level SetIndex and DictionaryIndex typealiases and
SetIterator and DictionaryIterator types; dinosaurs from the era before nested
generics.
As for this proposal? +1. Obviously.
- Karl
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution