Files
kotlin/compiler/testData/codegen/bytecodeText/when/qualifiedConstValsInsideWhen.kt
Ting-Yuan Huang c1d721a15f when: emit lookupswitch/tableswitch if possible
A lookupswitch or tableswitch can be used if all conditions are equality
checks to constants. To be more specific, it can be done if:
  1. All conditions are CALL 'EQEQ(Any?, Any?)': Boolean
  2. All types of variables involved in comparison are in the same group
     of Char/Byte/Short/Int, String or enum.
  3. All arg0 refer to the same value.
  4. All arg1 are IrConst<*>.

Change-Id: Ifd7cb618395f6c5cc64601018b446f0bb7f5891c
2019-03-06 13:33:55 +01:00

20 lines
328 B
Kotlin
Vendored

object Constants {
const val A = 30
const val B = 40
}
class ClassConstants {
companion object {
const val C = 50
}
}
fun foo(state: Int) {
when (state) {
Constants.A -> return
Constants.B -> return
ClassConstants.C -> return
else -> return
}
}
// 1 LOOKUPSWITCH