[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