[swift-evolution] [Pitch] Extend Any.Type to allow construction of bound generic types

Joanna Carter joanna at carterconsulting.org.uk
Sun Apr 17 09:13:17 CDT 2016

I often find myself needing to construct an instance of a bound generic type at runtime, in much the same manner as I would a "standard" type.


As for a standard type…

let aType = Int.Type

let anInt = aType.init(0)

I also want to be able to use the same mechanism for a generic type…

struct MyStruct<T: Equatable /*, etc */>
  var value: T?

let paramType = // type from streaming or reflection compliant with Equatable

let structType = MyStruct<paramType>.self

let f = structType.init()

At present, the following compiler error is raised…

'paramType' is not a type

I am  the only one to require this behaviour? If not, do we want a proposal? If so, could you let me know your views on its worthiness?


Joanna Carter
Carter Consulting

More information about the swift-evolution mailing list