// MODULE: lib // FILE: A.kt open class A { val prop: String constructor(x1: String, x2: String = "abc") { prop = "$x1#$x2" } constructor(x1: Long) { prop = "$x1" } } // MODULE: main(lib) // FILE: B.kt class B1() : A("123") { constructor(x1: Int): this() {} } class B2 : A { constructor(x1: String): super(x1) {} constructor(): this("empty") {} constructor(x1: Int): super(x1.toLong()) {} } fun box(): String { val b1 = B1() if (b1.prop != "123#abc") return "fail1: ${b1.prop}" val b2 = B1(456) if (b2.prop != "123#abc") return "fail2: ${b2.prop}" val b3 = B2("cde") if (b3.prop != "cde#abc") return "fail3: ${b3.prop}" val b4 = B2() if (b4.prop != "empty#abc") return "fail4: ${b4.prop}" val b5 = B2(789) if (b5.prop != "789") return "fail5: ${b5.prop}" return "OK" }