481becb342
To provide the correct designation and locks strategy ^KT-56550 ^KT-58083 Fixed
19 lines
479 B
Kotlin
19 lines
479 B
Kotlin
fun ex<caret>pression(expression: IrConst<*>) {
|
|
when (val kind = expression.kind) {
|
|
is Kind.Null -> kind.valueOf(expression)
|
|
else -> {}
|
|
}
|
|
}
|
|
|
|
sealed class Kind<T>(val asString: String) {
|
|
@Suppress("UNCHECKED_CAST")
|
|
fun valueOf(aConst: IrConst<*>) = (aConst as IrConst<T>).value
|
|
object Null : Kind<Nothing?>("Null")
|
|
override fun toString() = asString
|
|
}
|
|
|
|
abstract class IrConst<T> {
|
|
abstract var kind: Kind<T>
|
|
abstract var value: T
|
|
}
|