> On Dec 12, 2017, at 14:15, Douglas Gregor via swift-dev <swift-dev@swift.org> 
> wrote:
> 
> 
> 
>> On Dec 10, 2017, at 4:47 PM, Brent Royal-Gordon <br...@architechies.com 
>> <mailto:br...@architechies.com>> wrote:
>> 
>>> On Dec 5, 2017, at 2:28 PM, Douglas Gregor via swift-dev 
>>> <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:
>>> 
>>> To perform that mapping from a mangled type in a conditional requirement to 
>>> type metadata, we effectively need an operation to take a mangled type name 
>>> and turn it into a type metadata pointer. This is something we could 
>>> surface in the Swift standard library/runtime as, e.g.,
>>> 
>>> func type(named: String) -> Any.Type?
>>> 
>>> to take a mangled type name and try to get the type metadata for it. From 
>>> there, one can query protocol conformances that (say) allow one to 
>>> construct instances of the arbitrarily-named type. Think of it as 
>>> NSClassFromString for any type in the Swift language, including 
>>> specializations of generic types.
>> 
>> 
>> It's worth noting here that the standard library already provides a limited 
>> `_typeByName(_:)` function for Corelibs Foundation to use. That function 
>> will presumably become part of the ABI unless we design a public version in 
>> Swift 5.
> 
> 
> Woah. That’s kinda awful… it parses “Foo.Bar” as a class name and looks for 
> class Bar in module Foo.

Needed to implement NSCoding on Linux. They did limit it to "Foo.Bar" at least, 
deliberately excluding anything more complicated.

Jordan

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to