// MODULE: lib // FILE: A.kt // VERSION: 1 open class X(x: String, y: String, open val z: String) { val w = x+y } // FILE: B.kt // VERSION: 2 open class X(val x: String, var y: String, open var z: String) { val w = x+y } // MODULE: mainLib(lib) // FILE: mainLib.kt val x = X("first", "second", "third") class Y(a: String, b: String, c: String): X(a, b, c) { val x: String = "fourth" val y: String = "fifth" override val z: String = "sixth" val superz: String = super.z } val y = Y("seventh", "eighth", "ninth") fun lib(): String { return when { x.w != "firstsecond" -> "fail 1" x.z != "third" -> "fail 2" y.x != "fourth" -> "fail 3" y.y != "fifth" -> "fail 4" y.z != "sixth" -> "fail 5" y.superz != "ninth" -> "fail 6" else -> "OK" } } // MODULE: main(mainLib) // FILE: main.kt fun box(): String = lib()