[swift-evolution] Will these two features be included in Swift 3?
Krzysztof Siejkowski
krzysztof at siejkowski.net
Mon Dec 7 06:56:47 CST 2015
Oh, it could be so, I’m just not aware of it. I’ve tried Swift version 2.2-dev (LLVM 46be9ff861, Clang 4deb154edc, Swift 778f82939c) with
extension Array where Element == Double {
func foo() -> String {
return "hello doubles!"
}
}
and got
repl.swift:1:31: error: same-type requirement makes generic parameter 'Element' non-generic
extension Array where Element == Double {
^
Could you please point to docs / example / reference?
All the best,
Krzysztof
On 7 December 2015 at 13:34:51, 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 }
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) 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. 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) 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
https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution at swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution at swift.org
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/f5f15c55/attachment.html>
More information about the swift-evolution
mailing list