Files
kotlin/compiler/testData/binaryCompatibility/klibEvolution/addingSealedClassMember.kt
2021-01-26 03:42:15 +03:00

48 lines
644 B
Kotlin
Vendored

// 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()