// MODULE: lib // FILE: A.kt // VERSION: 1 val bar get() = "original global value of val" var muc = "initialized global value of var with field" get() = field set(value) { field = "original global value of var with field" } var toc get() = "original global value of var without field" set(value) { } class X() { val qux get() = "original member value of val" var nis = "initialized member value of var with field" get() = field set(value) { field = "original member value of var with field" } var roo = "initialized member value of var without field" get() = "original member value of var without field" } // FILE: B.kt // VERSION: 2 val bar = "changed global value" var muc = "changed global value" var toc = "changed global value" class X() { val qux = "changed member value" var nis = "changed member value" var roo = "changed member value" } // MODULE: mainLib(lib) // FILE: mainLib.kt fun lib(): String { val x = X() muc = "first" toc = "second" x.nis = "third" x.roo = "fourth" return when { bar != "changed global value" -> "fail 1" muc != "first" -> "fail 2" toc != "second" -> "fail 3" x.qux != "changed member value" -> "fail 4" x.nis != "third" -> "fail 5" x.roo != "fourth" -> "fail 6" else -> "OK" } } // MODULE: main(mainLib) // FILE: main.kt fun box(): String = lib()