I took some time to overview the whole idea in general, and I must say (surprisingly) that I don't support it myself.
* Metatypes are still in the language; it turned out that they *must* remain in the language * The new primary `Type<T>` struct duplicates semantics and interface of metatypes * But it cannot get extensive native support, so it uses `init?(casting:)` instead of `as` cast, `is(_:)` method instead of `is`, etc * `Type<T>` does not add new possibilities right now, although the proposal promises to add reflection to `Type<T>` in the future * `Mirror` already does reflection. It wraps `Any.Type` statically, which is a simpler and more suitable model for reflection I started thinking in a completely different direction: * Rename metatypes `T.Type` to `Type<T>` * Rename `T.self` to `T` * Allow `Type<Type<T>>` * **Extend `Mirror`** for Swift 4 What do you think?
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution