blob: 79f55ba36651da2f1dd26785e1f675807e46dc19 [file]
// ISSUE: KT-61978
// WITH_REFLECT
// WITH_STDLIB
// IGNORE_INLINER: IR
// java.lang.UnsupportedOperationException
// (this function has a reified type parameter and thus can only be inlined at compilation time, not called directly)
// at Klass.<init>(DelegationByFunctionWithEnumUpperBound.kt:23)
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
enum class Enumeration { OK }
inline fun <reified T: Enum<T>> delegate() = object: ReadWriteProperty<Any?, T?> {
override fun getValue(thisRef: Any?, property: KProperty<*>): T? = Enumeration.OK as T?
override fun setValue(thisRef: Any?, property: KProperty<*>, value: T?) {}
}
class Klass {
var enumeration: Enumeration? by delegate()
}
fun box(): String {
return Klass().enumeration.toString()
}