> On Jan 29, 2017, at 1:03 PM, Matt Whiteside via swift-evolution 
> <[email protected]> wrote:
> 
> In Swift 3.1, I was happy to see that we can now extend types with concrete 
> constraints.  I think one other feature which fits nicely with this new 
> capability would be extending typealiases, like this:
> 
> typealias Vector = Array<Float>
> 
> extension Vector { 
>    ...
> }
> 
> Which currently doesn't compile due to:  "Constrained extension must be 
> declared on the unspecialized generic type 'Array' with constraints specified 
> by a 'where’ clause”
> 
> What is other people’s interest level?  How possible would it be to add this?

I think this particular case would be pretty easy to add, but there is a more 
general case with generic typealiases that requires some thought:

typealias OptionalArray<T> = Optional<Array<T>>

extension OptionalArray {
  …
}

Without generic typealiases, you might imagine this could be written as 
something like

extension <T> Optional<Array<T>> {
  …
}

I think this is called out in the generics manifesto as a potential future 
feature. I’m not sure how much work it would take to add it but I imagine it’s 
not entirely trivial.

Slava

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

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

Reply via email to