Expand type aliases in K2 when checking if serializable class' properties

have serializers.

#KT-56594 Fixed
#KT-56480 Fixed
This commit is contained in:
Leonid Startsev
2023-03-13 16:02:37 +01:00
committed by Space Team
parent 63e27a9713
commit 5cf1c01273
5 changed files with 71 additions and 2 deletions
@@ -0,0 +1,23 @@
// FIR_IDENTICAL
// FIR_DISABLE_LAZY_RESOLVE_CHECKS
// WITH_STDLIB
// SKIP_TXT
import kotlinx.serialization.*
typealias MyString = String
typealias MyLong = Long
@Serializable
class Box<T>(val t: T)
typealias MyBox<T> = Box<T>
@Serializable
class Foo(
val s: MyString,
val l: MyLong,
val b: Box<MyLong>,
val bb: MyBox<Long>,
val bbb: MyBox<MyLong>
)
@@ -0,0 +1,22 @@
// FIR_IDENTICAL
// FIR_DISABLE_LAZY_RESOLVE_CHECKS
// WITH_STDLIB
// SKIP_TXT
import kotlinx.serialization.*
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.encoding.*
@Serializable(ExplicitSerializer::class)
data class Klass(val s: String)
object ExplicitSerializer : KSerializer<Klass> {
override val descriptor: SerialDescriptor get() = PrimitiveSerialDescriptor("klass", PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: Klass) { encoder.encodeString(value.s) }
override fun deserialize(decoder: Decoder): Klass { return Klass(decoder.decodeString()) }
}
typealias KlassAlias = Klass
@Serializable
data class DataKlass(val k: KlassAlias)