enum class En : Enum { private constructor() /* primary */ { super/*Enum*/() /* () */ } A = En() B = En() C = En() fun values(): Array /* Synthetic body for ENUM_VALUES */ fun valueOf(value: String): En /* Synthetic body for ENUM_VALUEOF */ val entries: EnumEntries get(): EnumEntries /* Synthetic body for ENUM_ENTRIES */ } fun test() { var r: String = "" val x: Any? = En.A when { x is En -> { // BLOCK { // BLOCK val tmp_0: En = x /*as En */ when { EQEQ(arg0 = tmp_0, arg1 = En.A) -> { // BLOCK r = "when1" } EQEQ(arg0 = tmp_0, arg1 = En.B) -> { // BLOCK } EQEQ(arg0 = tmp_0, arg1 = En.C) -> { // BLOCK } } } } } val y: Any = En.A when { y is En -> { // BLOCK { // BLOCK val tmp_1: En = y /*as En */ when { EQEQ(arg0 = tmp_1, arg1 = En.A) -> { // BLOCK r = "when2" } EQEQ(arg0 = tmp_1, arg1 = En.B) -> { // BLOCK } EQEQ(arg0 = tmp_1, arg1 = En.C) -> { // BLOCK } } } } } }