blob: fa6923a17c14b9aaab718b53c2ca30208819d2a9 [file]
// TARGET_BACKEND: JVM
// CHECK_BYTECODE_LISTING
// WITH_STDLIB
@file:OptIn(ExperimentalVersionOverloading::class)
open class A(
val a: Int = 1,
@IntroducedAt("1") val b: String = "A1",
@IntroducedAt("2") val c: Float = 3f,
)
class B : A {
constructor(a: Int, @IntroducedAt("1") b: String = "B1") : super(a, b)
constructor(@IntroducedAt("1") b: String = "B2") : super(2, b)
constructor(b: Boolean) : super(3)
}
class C (
a : Int,
@IntroducedAt("1") b: String = "C1",
) : A(a, b) {
constructor(@IntroducedAt("1") b: String = "C2") : this(2, b)
constructor(b: Boolean) : this(3)
}
fun box(): String {
val a1 = A()
val a2 = A(2)
val a3 = A(2, "MOO")
if (a1.b != "A1") return "FAIL-A1"
if (a2.b != "A1") return "FAIL-A2"
if (a3.b != "MOO") return "FAIL-A3"
val b1 = B()
val b2 = B(2)
val b3 = B(2, "MOO")
val b4 = B("MOO")
val b5 = B(true)
if (b1.b != "B2") return "FAIL-B1"
if (b2.b != "B1") return "FAIL-B2"
if (b3.b != "MOO") return "FAIL-B3"
if (b4.b != "MOO") return "FAIL-B4"
if (b5.b != "A1") return "FAIL-B5"
val c1 = C()
val c2 = C(2)
val c3 = C(2, "MOO")
val c4 = C("MOO")
val c5 = C(true)
if (c1.b != "C2") return "FAIL-C1"
if (c2.b != "C1") return "FAIL-C2"
if (c3.b != "MOO") return "FAIL-C3"
if (c4.b != "MOO") return "FAIL-C4"
if (c5.b != "C1") return "FAIL-C5"
return "OK"
}