| // MODULE: lib | |
| // FILE: A.kt | |
| // VERSION: 1 | |
| sealed class X(val name: String ="X") | |
| class Y: X("Y") | |
| class Z: X("Z") | |
| fun last(): X = Z() | |
| // FILE: B.kt | |
| // VERSION: 2 | |
| sealed class X(val name: String ="X") | |
| class Y: X("Y") | |
| class Z: X("Z") | |
| class W: X("W") | |
| fun last(): X = W() | |
| // MODULE: mainLib(lib) | |
| // FILE: mainLib.kt | |
| fun lib(): String { | |
| val x = last() | |
| return when(x) { | |
| is Y -> "fail 1" | |
| is Z -> "fail 2" | |
| else -> { | |
| if (x.name == "W") | |
| "OK" | |
| else | |
| "fail 3" | |
| } | |
| } | |
| } | |
| // MODULE: main(mainLib) | |
| // FILE: main.kt | |
| fun box(): String = lib() | |