Files
kotlin-fork/compiler/testData/codegen/box/inlineClasses/kt52394.kt
T

31 lines
587 B
Kotlin
Vendored

// WITH_REFLECT
// TARGET_BACKEND: JVM
import kotlin.reflect.full.declaredFunctions
annotation class Anno(val value: String)
@JvmInline
value class A(val value: String)
abstract class B {
@Anno(value = "K")
abstract fun f(): A?
}
class C : B() {
override fun f(): A? = A("O")
}
class D : B() {
override fun f(): Nothing? = null
}
fun box(): String {
val o = if ((D() as B).f() == null) (C() as B).f()!!.value else "Fail"
val annotations = B::class.declaredFunctions.single().annotations
val k = (annotations.single() as Anno).value
return o + k
}