// actual open class A { actual open fun String.c(a: Int) {} } open class B : A() { override fun String.c(a: Int) {} } open class D : B() { override fun String.c(a: Int) {} } fun test(a: Int, b: String) { with(A()) { b.c(a) } }