Don't transform irBranch if tableswitch can't be generated
#KT-34466 Fixed
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
|
||||
enum class E {
|
||||
A, B, C, D;
|
||||
}
|
||||
|
||||
val abc = setOf(E.A, E.B, E.C)
|
||||
|
||||
fun bar(): E = E.A
|
||||
|
||||
fun foo(e: E): String {
|
||||
val c = when (e) {
|
||||
E.B -> "B"
|
||||
in abc -> "OK"
|
||||
else -> "else"
|
||||
}
|
||||
return c
|
||||
}
|
||||
|
||||
fun box() = foo(bar())
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// 0 WhenMappings
|
||||
// 0 TABLESWITCH
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
enum class E {
|
||||
A, B;
|
||||
}
|
||||
|
||||
fun bar(): E = E.A
|
||||
|
||||
fun foo(e: E): String {
|
||||
val c = when (e) {
|
||||
E.B -> "B"
|
||||
bar() -> "OK"
|
||||
else -> "else"
|
||||
}
|
||||
return c
|
||||
}
|
||||
|
||||
fun box() = foo(bar())
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// 0 WhenMappings
|
||||
// 0 TABLESWITCH
|
||||
@@ -17,3 +17,7 @@ fun test(e: E?) = when (e) {
|
||||
fun box(): String {
|
||||
return test(null)
|
||||
}
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 TABLESWITCH
|
||||
|
||||
Reference in New Issue
Block a user