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

Joe Groff jgroff at apple.com
Mon Dec 7 13:05:38 CST 2015


> On Dec 7, 2015, at 4:34 AM, Davide De Franceschi via swift-evolution <swift-evolution at swift.org> wrote:
> 
> 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 }

This ought to work, but doesn't because of a bug we didn't get around to fixing.

-Joe

>> On 7 Dec 2015, at 12:14, Krzysztof Siejkowski via swift-evolution <swift-evolution at swift.org <mailto: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>
> 
>  _______________________________________________
> 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/74baafb8/attachment.html>


More information about the swift-evolution mailing list