From 4e56079c59dcfd62c1499ca509b951939de343c3 Mon Sep 17 00:00:00 2001 From: "Sergey.Shanshin" Date: Thu, 2 Mar 2023 13:34:48 +0000 Subject: [PATCH] [KxSerialization] Fix "SyntheticAccessorLowering should not attempt to modify other files" Added additional check for generated serializer to use cached child serializers Fixes #KT-56990 Merge-request: KT-MR-9057 Merged-by: Sergey Shanshin --- .../serialization/compiler/backend/ir/SerializerIrGenerator.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt index 5755942c540..1baab783220 100644 --- a/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt @@ -83,8 +83,9 @@ open class SerializerIrGenerator( private set // child serializers cached if serializable class is internal - private val cachedChildSerializersProperty = + private val cachedChildSerializersProperty = if (isGeneratedSerializer) serializableIrClass.companionObject()?.properties?.singleOrNull { it.name == CACHED_CHILD_SERIALIZERS_PROPERTY_NAME } + else null // non-object serializers which can be cached private val cacheableChildSerializers =