Swift
Initialization rules
Why doesn't this code compile? Can you explain it using the two-phase initialization rules?
class Base { let id: Int; init(id: Int) { self.id = id } }
class Child: Base {
let name: String
init(name: String) {
super.init(id: name.count)
self.name = name
}
}