> On Jan 17, 2017, at 22:30, Braeden Profile via swift-evolution 
> <[email protected]> wrote:
> 
> Hello Swift Community!
> 
> I know that I’ve seen this mentioned before, but what with Enhanced 
> Existentials being brought up, I think this is worth mentioning now.  What is 
> the plan regarding letting existentials conform to their protocols?  
> Currently, in Swift 3, it is impossible to write code like this:
> protocol Updatable
>       { func update() }
> 
> struct UpdatePool<T: Updatable>
>       { /* ... */ }
> 
> let heterogenousPool = UpdatePool<Updatable>()
> Error on the last line:  “Using ‘Updatable’ as a concrete type conforming to 
> protocol ‘Updatable’ is not supported.”
> 
> 
> Although my most common use case of this behavior has actually been solved 
> (using ‘AnyObject’ as a concrete type conforming to ‘AnyObject’), I wonder 
> why this can’t be extended to any protocol existential (a field which is 
> about to explode, if we succeed in Enhancing them).
> 
> What do you guys think?

+1, but I think there's a compiler limitation preventing it at the moment.

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

Reply via email to