Implemented caching of child serializers

Resolves Kotlin/kotlinx.serialization#1918

Merge-request: KT-MR-7578
Merged-by: Sergey Shanshin <Sergey.Shanshin@jetbrains.com>
This commit is contained in:
Sergey.Shanshin
2022-11-23 19:53:44 +00:00
committed by Space Team
parent 3e8f7b8ee4
commit 339b152390
11 changed files with 408 additions and 204 deletions
@@ -68,6 +68,7 @@ object SerialEntityNames {
const val CACHED_DESCRIPTOR_FIELD = "\$cachedDescriptor"
const val CACHED_SERIALIZER_PROPERTY = "\$cachedSerializer"
const val CACHED_CHILD_SERIALIZERS_PROPERTY = "\$childSerializers"
// classes
val KCLASS_NAME_FQ = FqName("kotlin.reflect.KClass")
@@ -123,6 +124,7 @@ object SerialEntityNames {
val SINGLE_MASK_FIELD_MISSING_FUNC_FQ = SerializationPackages.internalPackageFqName.child(SINGLE_MASK_FIELD_MISSING_FUNC_NAME)
val ARRAY_MASK_FIELD_MISSING_FUNC_FQ = SerializationPackages.internalPackageFqName.child(ARRAY_MASK_FIELD_MISSING_FUNC_NAME)
val CACHED_SERIALIZER_PROPERTY_NAME = Name.identifier(CACHED_SERIALIZER_PROPERTY)
val CACHED_CHILD_SERIALIZERS_PROPERTY_NAME = Name.identifier(CACHED_CHILD_SERIALIZERS_PROPERTY)
val CACHED_DESCRIPTOR_FIELD_NAME = Name.identifier(CACHED_DESCRIPTOR_FIELD)
val ENUM_SERIALIZER_FACTORY_FUNC_FQ = SerializationPackages.internalPackageFqName.child(ENUM_SERIALIZER_FACTORY_FUNC_NAME)