> 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