orangy
class X {
val x: String
val y: String
init { // (1)
x = "one" // ok, initialisation
println(y) // error, y uninitialised
z = 1 // error, cannot initialise before declaration
}
val t = 127 // (2)
val z: Int
init { // (3)
y = "two"
z = 10 // ok, if previous bogus z init is removed
}
}
Execution order is (1), (2) and then (3)