Files
kotlin-fork/compiler/testData/ir/interpreter/enums1.kt
T
Ivan Kylchik 334d518aba Change the way of getting name and ordinal for enum entry in interpreter
For now IrProperty doesn't have corresponding overridden symbol, so
it must be taken from getter.
2021-08-06 13:33:20 +03:00

26 lines
1.1 KiB
Kotlin
Vendored

import kotlin.*
import kotlin.collections.*
@CompileTimeCalculation
enum class EnumClass {
VALUE1, VALUE2
}
const val a = EnumClass.VALUE1.<!EVALUATED: `VALUE1`!>name<!>
const val b = EnumClass.values().<!EVALUATED: `2`!>size<!>
const val c = EnumClass.valueOf("VALUE1").<!EVALUATED: `0`!>ordinal<!>
const val d = EnumClass.valueOf("VALUE3").<!WAS_NOT_EVALUATED: `
Exception java.lang.IllegalArgumentException: No enum constant EnumClass.VALUE3
at Enums1Kt.EnumClass.valueOf(enums1.kt)
at Enums1Kt.<clinit>(enums1.kt:12)`!>ordinal<!>
const val e1 = EnumClass.VALUE1.hashCode().<!EVALUATED: `true`!>let { it is Int && it > 0 && it == EnumClass.VALUE1.hashCode() }<!>
const val e2 = EnumClass.VALUE1.<!EVALUATED: `VALUE1`!>toString()<!>
const val e3 = <!EVALUATED: `true`!>EnumClass.VALUE1 == EnumClass.VALUE1<!>
const val e4 = <!EVALUATED: `false`!>EnumClass.VALUE1 == EnumClass.VALUE2<!>
const val f1 = enumValues<EnumClass>().<!EVALUATED: `2`!>size<!>
const val f2 = enumValueOf<EnumClass>("VALUE1").<!EVALUATED: `VALUE1`!>name<!>
const val j1 = enumValues<EnumClass>().<!EVALUATED: `VALUE1, VALUE2`!>joinToString { it.name }<!>