From 127ceaca34ca2cd5a9edeb15abeaf56e16b9ef6b Mon Sep 17 00:00:00 2001 From: Leonid Startsev Date: Tue, 30 Oct 2018 17:26:52 +0300 Subject: [PATCH] Fix commented check when generating descriptor initializer: It was needed before `save` because save references symbol of initializer, yet we don't need to generate it if user provided its own getter --- .../compiler/backend/common/SerializerCodegen.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt index 5754d5d243a..69ed47dd75d 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt @@ -37,13 +37,14 @@ abstract class SerializerCodegen( fun generate() { check(properties.isExternallySerializable) { "Class ${serializableDescriptor.name} is not externally serializable" } - generateSerialDesc() val prop = generateSerializableClassPropertyIfNeeded() + if (prop) + generateSerialDesc() val save = generateSaveIfNeeded() val load = generateLoadIfNeeded() generateDescriptorGetterIfNeeded() -// if (save || load || prop) -// generateSerialDesc() + if (!prop && (save || load)) + generateSerialDesc() if (serializableDescriptor.declaredTypeParameters.isNotEmpty()) { findSerializerConstructorForTypeArgumentsSerializers(serializerDescriptor, onlyIfSynthetic = true)?.let { generateGenericFieldsAndConstructor(it)