[swift-evolution] Should we rename "class" when referring to protocol conformance?
Adrian Zubarev
adrian.zubarev at devandartist.com
Tue May 3 13:12:30 CDT 2016
I’d love to see Swift go in this direction with protocols:
+-------+
| Any |
+---+---+
|
+-------------+-------------+
| |
+------+-------+ +-----+----+
| AnyReference | | AnyValue |
+------+-------+ +-----+----+
| |
+--------+---------+ ....................................
| AnyObject (ObjC) | : Optionally Swift could also have :
+------------------+ : | :
: +-------+--------+ :
: | | :
: +----+----+ +-----+-----+ :
: | AnyEnum | | AnyStruct | :
: +----+----+ +-----+-----+ :
....................................
--
Adrian Zubarev
Sent with Airmail
Am 3. Mai 2016 bei 18:42:15, Adrian Zubarev via swift-evolution (swift-evolution at swift.org) schrieb:
+1 Yes please, get rid of the `class` keyword from protocols already and replace it with better implicit protocols.
I posted the idea two weeks ago, but no one answered to it: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160418/015568.html
Replacing `class` with something like `protocol AnyReference` is the first step to add a few more implicit protocols like `AnyValue` to Swift. We could build value or reference type specific libraries and overload correctly.
--
Adrian Zubarev
Am 2. Mai 2016 um 15:55:15, David Sweeris via swift-evolution (swift-evolution at swift.org) schrieb:
I was just thinking that:
protocol Foo : reference {}
might be more to the point than:
protocol Foo : class {}
I know that it’s currently a moot point because classes are the only* reference-semantics type of type in Swift, but it’s conceivable that there might some day be others. Anyway, I’m not saying it’s a big deal or anything, I’m just trying to think of any source-breaking changes we might want to make before Swift 3 drops, and this seems like an easy one.
- Dave Sweeris
* I’m not actually sure this is true. I have a very vague recollection about some protocols getting reference semantics in certain circumstances, but the memory is so hazy I’m not sure I trust it. Also I can’t remember if the “indirect” keyword in enums affects the semantics.
_______________________________________________
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/20160503/52114793/attachment.html>
More information about the swift-evolution
mailing list