| // IGNORE_BACKEND: JVM_IR |
| // TODO KT-36845 Generate enum-based TABLESWITCH/LOOKUPSWITCH on a value with smart cast to enum in JVM_IR |
| |
| class EncapsulatedEnum<T : Enum<T>>(val value: T) |
| |
| enum class MyEnum(val value: String) { |
| VALUE_A("OK"), |
| VALUE_B("fail"), |
| } |
| |
| private fun crash(encapsulated: EncapsulatedEnum<*>) { |
| val myEnum = encapsulated.value |
| if (myEnum !is MyEnum) { |
| return |
| } |
| |
| when (myEnum) { |
| MyEnum.VALUE_A -> res = myEnum.value |
| MyEnum.VALUE_B -> res = myEnum.value |
| } |
| } |
| |
| var res = "fail" |
| |
| fun box(): String { |
| crash(EncapsulatedEnum(MyEnum.VALUE_A)) |
| return res |
| } |
| |
| // 1 TABLESWITCH |