From aa70c952eb2e55d8e4c1b27dcd61e4dec0c58675 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 17 May 2021 19:21:17 +0200 Subject: [PATCH] FIR IDE: fix SOE on opening project Kotlin library may contain cycles which causes SOE in FirModuleInfoBasedModuleData.dependencies --- .../kotlin/fir/session/FirModuleInfoBasedModuleData.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirModuleInfoBasedModuleData.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirModuleInfoBasedModuleData.kt index d6f52c3dbab..7cd8e26b512 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirModuleInfoBasedModuleData.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirModuleInfoBasedModuleData.kt @@ -14,9 +14,12 @@ import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices class FirModuleInfoBasedModuleData(val moduleInfo: ModuleInfo) : FirModuleData() { override val name: Name get() = moduleInfo.name - override val dependencies: List = moduleInfo.dependencies() - .filterNot { it == moduleInfo } - .map { FirModuleInfoBasedModuleData(it) } + + override val dependencies: List by lazy { + moduleInfo.dependencies() + .filterNot { it == moduleInfo } + .map { FirModuleInfoBasedModuleData(it) } + } override val dependsOnDependencies: List = moduleInfo.expectedBy .filterNot { it == moduleInfo }