22 lines
657 B
Kotlin
Vendored
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"
|
|
} |