blob: 29b87a9af7087f46b29658ed6701bbee5982c8b9 [file] [log] [blame]
// MODULE: lib
// FILE: 1.kt
import kotlin.reflect.*
annotation class Anno(
val k: KClass<*>,
val e: C.NestedEnum,
val a: C.NestedAnno,
)
annotation class AnnoWithDefault(val k: KClass<*> = Nested0::class) {
class Nested0
}
class C {
class Nested1
enum class NestedEnum { E }
annotation class NestedAnno(val k: KClass<*>) {
class Nested2
}
}
interface I {
@Anno(
C.Nested1::class,
C.NestedEnum.E,
C.NestedAnno(C.NestedAnno.Nested2::class),
)
@AnnoWithDefault
fun foo(): String = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
class D : I {
fun box(): String = foo()
}
fun box(): String = D().box()