> On Mar 13, 2017, at 8:38 AM, Vincent Esche via swift-evolution 
> <[email protected]> wrote:
> 
> Source compatibility
> 
> Making use of "extending protocols to conform to protocols":
> 
> extension Hashable: HashVisitable 
> {
>     
> func hash<H: Hasher>(_ hasher: inout
>  H) {
>         
> self.hashValue.hash(&
> hasher)
>     }
> }

We're unlikely to add this feature soon. It seems reasonable to me to instead 
have `HashVisitable` refine `Hashable` and provide a default implementation of 
`hashValue` using a default hasher. I think we still want `Hashable` to be the 
currency protocol most APIs work with for performance in unspecialized code, 
since we could inline the visitation and hasher implementation together inside 
the specialized `hashValue` witness.

-Joe
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to