// MODULE: base // FILE: A.kt // VERSION: 1 open class X // FILE: B.kt // VERSION: 2 open class X { open fun foo(): String = "new member" } // MODULE: child(base) // FILE: C.kt class Y: X() // MODULE: lib(child) // FILE: D.kt // VERSION: 1 fun qux(): String = "no foo() exists in ${Y()}" // FILE: E.kt // VERSION: 2 fun qux(): String = Y().foo() // MODULE: mainLib(lib) // FILE: mainLib.kt fun lib(): String = when { qux() != "new member" -> "fail 1" else -> "OK" } // MODULE: main(mainLib) // FILE: main.kt fun box(): String = lib()