// MODULE: lib // FILE: A.kt // VERSION: 1 val bar = "global val initialization value" class X { val qux = "member val initialization value" } fun foo(x: X) { // DO NOTHING } // FILE: B.kt // VERSION: 2 var bar = "global var initialization value" class X { var qux = "member var initialization value" } fun foo(x: X) { bar = "changed global value" x.qux = "changed member value" } // MODULE: mainLib(lib) // FILE: mainLib.kt fun lib(): String { val x = X() foo(x) return when { bar != "changed global value" -> "fail 1" x.qux != "changed member value" -> "fail 2" else -> "OK" } } // MODULE: main(mainLib) // FILE: main.kt fun box(): String = lib()