// JVM_TARGET: 1.8 // WITH_STDLIB // FILE: 1.kt package test enum class Base(val value: String) { OK("OK"), B("FAIL"); } enum class Base2(val value: String) { A("OK2"), B("FAIL2"); } var result = "fail" fun foo(base: Enum<*>) { result = base.name } fun foo(base: Array>) { result = base[0].name } fun cond() = true inline fun , reified Y : Enum> process(a: String) { val z = try { enumValues() } catch (e: Exception) { enumValues() } foo(z) } // FILE: 2.kt import test.* fun box(): String { process("OK") return result }