[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