[swift-evolution] Will these two features be included in Swift 3?

Davide De Franceschi defrenz98 at hotmail.com
Mon Dec 7 06:34:40 CST 2015


I thought constraining an extension to a single type (#1) was already in 2.2?
I've seen it in a SPM example and also someone confirmed to me that it compiled

It went like
extension Array where Element == Double { // add stuff }

> On 7 Dec 2015, at 12:14, Krzysztof Siejkowski via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Concerning extension constraining, it’s already doable with:
> 
> ```
> protocol DoubleProtocol {}
> 
> extension Double : DoubleProtocol {}
> 
> extension Array where Element : DoubleProtocol {
>     func onlyForDoubles() -> String {
>             return "hello doubles!"
>     }
> }
> 
> [1.2].onlyForDoubles() // „hello doubles!”
> ["a"].onlyForDoubles() // error: type of expression is ambiguous without more context
> ```
> 
> However, I personally like the idea of making a syntactic sugar for that case.
> 
> All the best,
> Krzysztof
> 
> 
> On 7 December 2015 at 13:01:11, Krzysztof Siejkowski (krzysztof at siejkowski.net <mailto:krzysztof at siejkowski.net>) wrote:
> 
>> Concerning generic typealiases, the topic is already being discussed in „Generic `typealias`s” thread: https://lists.swift.org/pipermail/swift-evolution/2015-December/000132.html <https://lists.swift.org/pipermail/swift-evolution/2015-December/000132.html>. The core Swift team approves:
>> 
>> > Yes, this is
>> definitely something that I (at least) would like to see. Patches
>> welcome :-)
>> > Chris (Lattner)
>> 
>> All the best,
>> Krzysztof
>> 
>> On 7 December 2015 at 12:41:05, Tuur Anton via swift-evolution (swift-evolution at swift.org <mailto:swift-evolution at swift.org>) wrote:
>> 
>>> Can you please add these features in Swift 3?
>>> 
>>> 1. The ability to do this:
>>> extension Array<Double> {
>>>     //extend arrays of doubles
>>> }
>>> 
>>> 2. Generic typealiases:
>>> struct Foo<T,V> {
>>>     let t: T
>>>     let v: V
>>> }
>>> typealias IntFoo<V> = Foo<Int,V> //Error in Swift 2.1
>>>  _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>  _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151207/fb53a69e/attachment.html>


More information about the swift-evolution mailing list