From 955300dd342aabc8c920127fc71daefadf1004e2 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Thu, 31 Oct 2019 16:11:53 +0300 Subject: [PATCH] Deserializer: Fix initialization of private top-levels Consider a file with only private top-level properties compiled into a klib. If this klib is deserialized with deserializationStrategy.ALL (e.g. if this library if passed using the -Xinclude flag), initializers of these properties will not be generated in a final binary. This patch fixes this error by unconditionally adding IrFiles into deserialization queue if deserializationStrategy.ALL is specified. Issue #KT-34722 fixed --- .../kotlin/backend/common/serialization/KotlinIrLinker.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt index 6987de40010..ae24d8f4145 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt @@ -434,6 +434,7 @@ abstract class KotlinIrLinker( assert(id.isPublic) moduleDeserializationState.addUniqID(id) } + moduleDeserializationState.enqueueFile(fileDeserializer) } else if (deserializationStrategy.explicitlyExported) { moduleDeserializationState.enqueueFile(fileDeserializer) }