From 2bd3d90fe017cad4c50a49e5105bc823b1560f91 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 15 Aug 2019 17:16:17 +0300 Subject: [PATCH] [IR SERIALIZATION] Link depend modules lazily --- .../kotlin/backend/common/serialization/KotlinIrLinker.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 d2a691d6186..13dfdba2771 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 @@ -129,7 +129,9 @@ abstract class KotlinIrLinker( private val moduleDeserializationState = DeserializationState.ModuleDeserializationState(this) private val moduleReversedFileIndex = mutableMapOf() - private val moduleDependencies = mutableListOf() + private val moduleDependencies by lazy { + moduleDescriptor.allDependencyModules.filter { it != moduleDescriptor }.map { deserializersForModules[it]!! } + } // This is a heavy initializer val module = deserializeIrModuleHeader() @@ -460,7 +462,6 @@ abstract class KotlinIrLinker( files.add(deserializeIrFile(ProtoFile.parseFrom(readFile(moduleDescriptor, i), newInstance()), i)) } - moduleDescriptor.allDependencyModules.filter { it != moduleDescriptor }.mapTo(moduleDependencies) { deserializersForModules[it]!! } return IrModuleFragmentImpl(moduleDescriptor, builtIns, files) }