| // MODULE: lib |
| // FILE: A.kt |
| // VERSION: 1 |
| |
| fun X.foo(param: String) = "foo before change $param" |
| fun bar(param: String) = "bar before change $param" |
| |
| class X() { |
| fun qux(param: String) = "qux before change $param" |
| fun muc(param: String) = "muc before change $param" |
| } |
| |
| // FILE: B.kt |
| // VERSION: 2 |
| |
| infix fun X.foo(param: String) = "foo after change to infix $param" |
| tailrec fun bar(param: String) = "bar after change to tailrec $param" |
| |
| class X() { |
| infix fun qux(param: String) = "qux after change to infix $param" |
| tailrec fun muc(param: String) = "muc after change to tailrec $param" |
| } |
| |
| |
| // MODULE: mainLib(lib) |
| // FILE: mainLib.kt |
| fun lib(): String = when { |
| X().foo("yes") != "foo after change to infix yes" -> "fail 1" |
| bar("indeed") != "bar after change to tailrec indeed" -> "fail 2" |
| X().qux("naturally") != "qux after change to infix naturally" -> "fail 3" |
| X().muc("of course") != "muc after change to tailrec of course" -> "fail 4" |
| else -> "OK" |
| } |
| |
| // MODULE: main(mainLib) |
| // FILE: main.kt |
| fun box(): String = lib() |
| |