[swift-evolution] [Pitch] Refactor Metatypes

Adrian Zubarev adrian.zubarev at devandartist.com
Sun Oct 2 10:40:46 CDT 2016

I’d say that subtype is correct there. As mentioned by some people here subtype feels like it has something to do with classes.

Assume this:

class Base { init() {...} }
class A : Base {}
let subtype: AnyType<Base> = subtype(of: Base.self, named: "A")!
// One day when `.self` magic is gone
let subtype: AnyType<Base> = subtype(of: Base, named: "A")!
let a: Base = subtype.init()
print(type(of: a)) // => A
It’s clear that we’re working with classes here. type(of:named:) seems odd to me and doesn’t fit here at all.

Any more feedback?

Waiting for Brent to reply. I can’t remember what Subprotocol<T> was for. That’s the reason why it looks like this for the moment. ;)

I don’t understand. I renamed Subtype with AnyType everywhere and mentioned it in Alternatives considered section.

I’d like to wait for more feedback, we’re not in rush now.

Adrian Zubarev
Sent with Airmail

Am 2. Oktober 2016 um 16:46:18, Anton Zhilin (antonyzhilin at gmail.com) schrieb:

I’m happy that everyone seems to agree on the new naming, and I also like that  
type function is back.

Some fixes:

In Future directions, replace  
subtype with  
In Future directions, remove overstruck last item
In Alternatives considered, replace the naming and add old naming to alternative options
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20161002/166d72cd/attachment.html>

More information about the swift-evolution mailing list