From 347e2dadc6890341b4f3262fb85b6f6513f5b940 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Wed, 6 Mar 2019 12:51:40 +0300 Subject: [PATCH] [Serializer] More graceful fix of parents --- .../src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt | 4 ---- .../backend/konan/serialization/KonanIrModuleDeserializer.kt | 4 +++- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt index 525eee2c9b7..1912b2efc2e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt @@ -102,10 +102,6 @@ internal val psiToIrPhase = konanUnitPhase( val symbols = KonanSymbols(this, generatorContext.symbolTable, generatorContext.symbolTable.lazyWrapper) val module = translator.generateModuleFragment(generatorContext, environment.getSourceFiles(), deserializer) - modules.values.forEach { - it.patchDeclarationParents() - } - irModule = module irModules = modules ir.symbols = symbols diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleDeserializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleDeserializer.kt index fe8d8b817d0..23147f884d9 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleDeserializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleDeserializer.kt @@ -250,7 +250,9 @@ class KonanIrModuleDeserializer( deserializedModuleDescriptor = key.moduleOfOrigin val reachable = deserializeTopLevelDeclaration(key) - reversedFileIndex[key]!!.declarations.add(reachable) + val file = reversedFileIndex[key]!! + file.declarations.add(reachable) + reachable.patchDeclarationParents(file) reachableTopLevels.remove(key) deserializedTopLevels.add(key)