blob: 5a723b78d315f48c4576f87fb0a9c8a1970a0a7d [file]
// LANGUAGE: +FullValueClasses
// WITH_STDLIB
val log = mutableListOf<Any>()
abstract value class Base {
abstract val i: Int
init {
log.add("Base.init:i=$i")
}
}
value class Derived(override val i: Int, val f: Float) : Base() {
init {
log.add("Derived.init:i=$i,f=$f")
}
}
fun box(): String {
log.clear()
val d = Derived(42, 3.14f)
require(d.i == 42) { "d.i=${d.i}" }
require(d.f == 3.14f) { "d.f=${d.f}" }
val expected = listOf("Base.init:i=42", "Derived.init:i=42,f=3.14")
require(log == expected) { "Expected:\n$expected\nGot:\n$log" }
return "OK"
}