Avatar
swiftbot BOT 8/2/2018 9:33 AM
Author icon
tarunon
protocol AnimalProtocol {} extension AnimalProtocol { init(_with obj: Self) { self = obj } mutating func replace(with obj: Self) { self = obj } } class AnimalBase : AnimalProtocol { convenience init(with obj: AnimalBase) { self.init(_with: obj) } init() {} } class Cat: AnimalBase {} class Dog: AnimalBase {} var cat: Cat = Cat() print(type(of: cat)) cat.replace(with: Cat(with: Dog())) print(type(of: cat))
Version:
swift-4.1.1-RELEASE
Output:
Cat Dog
Error: