50 lines
1009 B
Kotlin
Vendored
50 lines
1009 B
Kotlin
Vendored
// FIR_DISABLE_LAZY_RESOLVE_CHECKS
|
|
// FIR_IDENTICAL
|
|
// WITH_STDLIB
|
|
// SKIP_TXT
|
|
// USE_EXPERIMENTAL: kotlinx.serialization.ExperimentalSerializationApi
|
|
// FILE: test.kt
|
|
|
|
import kotlinx.serialization.*
|
|
import kotlin.reflect.KClass
|
|
|
|
@InheritableSerialInfo
|
|
annotation class I(val value: String)
|
|
|
|
enum class E { A, B }
|
|
|
|
@InheritableSerialInfo
|
|
annotation class I2(val e: E, val k: KClass<*>)
|
|
|
|
@Serializable
|
|
@I("a")
|
|
sealed class Result {
|
|
<!INCONSISTENT_INHERITABLE_SERIALINFO!>@I("b")<!>
|
|
@Serializable class OK(val s: String): Result()
|
|
}
|
|
|
|
@Serializable
|
|
@I("a")
|
|
@I2(E.A, E::class)
|
|
open class A
|
|
|
|
@Serializable
|
|
@I("a")
|
|
@I2(E.A, E::class)
|
|
open class Correct: A()
|
|
|
|
@Serializable
|
|
@I("a")
|
|
<!INCONSISTENT_INHERITABLE_SERIALINFO!>@I2(E.B, E::class)<!>
|
|
open class B: A()
|
|
|
|
@Serializable
|
|
@I("a")
|
|
<!INCONSISTENT_INHERITABLE_SERIALINFO!>@I2(E.A, I::class)<!>
|
|
open class B2: A()
|
|
|
|
@Serializable
|
|
<!INCONSISTENT_INHERITABLE_SERIALINFO!>@I("b")<!>
|
|
<!INCONSISTENT_INHERITABLE_SERIALINFO!>@I2(E.A, E::class)<!>
|
|
open class C: B()
|