blob: 7785f5f10a67b1c68cecb8447b6157c67c162317 [file]
// LANGUAGE: +FullValueClasses
// WITH_STDLIB
// ISSUE: KT-84904
// MODULE: lib
// FILE: lib.kt
val initializationLog = mutableListOf<String>()
abstract value class AbstractPairBase(first: Int, second: Int) {
init {
initializationLog += "base($first,$second)"
}
abstract fun score(): Int
}
// MODULE: main(lib)
// FILE: main.kt
value class PairScore(val first: Int, val second: Int) : AbstractPairBase(first, second) {
init {
initializationLog += "derived($first,$second)"
}
override fun score(): Int = first * 10 + second
}
fun box(): String {
initializationLog.clear()
val value: AbstractPairBase = PairScore(4, 2)
if (initializationLog != listOf("base(4,2)", "derived(4,2)")) {
return "FAIL1"
}
if (value.score() != 42) return "FAIL2"
return "OK"
}