[FE] Make whens on expect sealed classes and enums not exhaustive
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// ISSUE: KT-20306
|
||||
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
enum class Base {
|
||||
A, B
|
||||
}
|
||||
|
||||
fun testCommon(base: Base) {
|
||||
val x = when (base) { // must be Ok
|
||||
Base.A -> 1
|
||||
Base.B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm(m1-common)
|
||||
// FILE: main.kt
|
||||
|
||||
fun testPlatform(base: Base) {
|
||||
val x = when (base) { // must be OK
|
||||
Base.A -> 1
|
||||
Base.B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = "OK"
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// ISSUE: KT-44474
|
||||
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
sealed class Base()
|
||||
|
||||
class A : Base()
|
||||
object B : Base()
|
||||
|
||||
fun testCommon(base: Base) {
|
||||
val x = when (base) { // must be Ok
|
||||
is A -> 1
|
||||
B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm(m1-common)
|
||||
// FILE: main.kt
|
||||
|
||||
fun testPlatform(base: Base) {
|
||||
val x = when (base) { // must be OK
|
||||
is A -> 1
|
||||
B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = "OK"
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// ISSUE: KT-44474
|
||||
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
sealed interface Base
|
||||
|
||||
interface A : Base
|
||||
object B : Base
|
||||
|
||||
fun testCommon(base: Base) {
|
||||
val x = when (base) { // must be Ok
|
||||
is A -> 1
|
||||
B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm(m1-common)
|
||||
// FILE: main.kt
|
||||
|
||||
fun testPlatform(base: Base) {
|
||||
val x = when (base) { // must be OK
|
||||
is A -> 1
|
||||
B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = "OK"
|
||||
Reference in New Issue
Block a user