IR KT-50258 rewrite enum-based 'when' more carefully

This commit is contained in:
Dmitry Petrov
2021-12-21 06:06:45 +00:00
committed by Space
parent e17f121b23
commit 8905586cbb
16 changed files with 308 additions and 28 deletions
@@ -0,0 +1,21 @@
enum class ABCD {
A, B, C, D
}
fun test(x: ABCD, y: ABCD, ok: String): String =
when (x) {
ABCD.A, ABCD.B ->
when (y) {
ABCD.A, ABCD.B -> ok
ABCD.C, ABCD.D -> y.toString()
}
ABCD.C, ABCD.D ->
x.toString()
}
fun box(): String =
test(ABCD.B, ABCD.A, "O") + test(ABCD.A, ABCD.B, "K")
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 2 (TABLE|LOOKUP)SWITCH