public class Animal { public init() {} } func main() { // OK _ = Animal() // OK _ = Animal.init() // OK _ = Animal.self.init() // error: Constructing an object of class type 'Animal' with a metatype value must use a 'required' initializer _ = (Animal.self as Animal.Type).init() }