41 lines
871 B
Kotlin
Vendored
41 lines
871 B
Kotlin
Vendored
// 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"
|
|
}
|