Files
kotlin-fork/js/js.translator/testData/box/initialize/complexPropertyInitializer.kt
T
2018-09-12 09:49:25 +03:00

22 lines
657 B
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1285
package foo
fun f() {}
class A(selector: Boolean, val y: Int) {
val x = if (selector) { f(); y } else 999
val z = if (selector) { f(); x + 1 } else 999
}
class B(selector: Boolean, val y: Int, val x: Int = if (selector) { f(); y } else { 999 })
fun box(): String {
val a = A(true, 23)
if (a.x != 23) return "fail: wrong evaluation order for property initializer (1): ${a.x}"
if (a.z != 24) return "fail: wrong evaluation order for property initializer (2): ${a.z}"
val b = B(true, 23)
if (b.x != 23) return "fail: wrong evaluation order for default constructor arguments"
return "OK"
}