blob: ad75f9e83199985753efbcff0e42438cc65a6792 [file]
// FIR_IDENTICAL
// WITH_STDLIB
// SKIP_TXT
// FILE: annotation.kt
package kotlinx.serialization
import kotlin.annotation.*
/*
Until the annotation is added to the serialization runtime,
we have to create an annotation with that name in the project itself
*/
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class KeepGeneratedSerializer
// FILE: main.kt
import kotlinx.serialization.*
@Serializable
class C(val values: IntArray) // OK
@Serializable
class B(val values: Array<String>) // OK
@Serializable
class A<T>(val values: <!GENERIC_ARRAY_ELEMENT_NOT_SUPPORTED!>Array<T><!>)
@Serializer(forClass = AKept::class)
class AKeptSerializer(val serializer: KSerializer<*>)
@Serializable(AKeptSerializer::class)
@KeepGeneratedSerializer
class AKept<T>(val values: <!GENERIC_ARRAY_ELEMENT_NOT_SUPPORTED!>Array<T><!>)