// JVM_ABI_K1_K2_DIFF: K2 serializes annotation parameter default values (KT-59526).

// 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()
