blob: 9b9f50f97854bee6dddd635987613d818913e304 [file]
// LANGUAGE: +MultiPlatformProjects
// ISSUE: KT-87506
// CHECK_BYTECODE_LISTING
// MODULE: common
expect open class A {
open fun foo(a: String = "a", b: String = "b"): String
}
// MODULE: platform()()(common)
actual open class A {
actual open fun foo(a: String, b: String): String = a + b
}
@OptIn(ExperimentalVersionOverloading::class)
class B : A() {
override fun foo(a: String, @IntroducedAt("1") b: String): String = a + b
}
fun box(): String {
val b = B()
val foo1 = B::class.java.getMethod("foo", String::class.java, String::class.java)
val foo2 = B::class.java.getMethod("foo", String::class.java)
val r1 = foo1.invoke(b, "O", "K") as String
val r2 = foo2.invoke(b, "O") as String
return when {
r1 == "OK" && r2 == "Ob" -> "OK"
else -> "Fail. r1: $r1; r2:$r2"
}
}