// MODULE: lib // FILE: A.kt // VERSION: 1 open class X { private fun foo() = "private fun in superclass" private val bar = "private val in superclass" private class Z { fun qux() = "fun in a provate inner class in superclass" } fun bar() = "${foo()} $bar ${Z()}" } // FILE: B.kt // VERSION: 2 open class X { fun bar() = "no private references after change" } // MODULE: mainLib(lib) // FILE: mainLib.kt class Y: X() fun lib(): String = when { X().bar() != "no private references after change" -> "fail 1" Y().bar() != "no private references after change" -> "fail 2" else -> "OK" } // MODULE: main(mainLib) // FILE: main.kt fun box(): String = lib()