From cadbc87dfd1ce3e63481ab90874ca8858878c55f Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 14 Sep 2023 11:15:47 +0200 Subject: [PATCH] JVM IR: add flag to avoid loading dependency module headers This is an addition to d16f33cf5b7. Apparently there's another call site of JvmIrCodegenFactory in intellij besides Evaluate Expression, namely Android LiveEdit plugin, where it seems needed to collect all dependency modules and resolve them via linker. LiveEdit also uses shouldStubAndNotLinkUnboundSymbols = true, so we need to differentiate between it and Evaluate Expression, hence the new flag. This new flag will be set to true only for Evaluate Expression in intellij. #IDEA-329915 --- .../org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/ir/backend.jvm/entrypoint/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt b/compiler/ir/backend.jvm/entrypoint/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt index 80d13170961..80709b9f383 100644 --- a/compiler/ir/backend.jvm/entrypoint/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt +++ b/compiler/ir/backend.jvm/entrypoint/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt @@ -106,6 +106,7 @@ open class JvmIrCodegenFactory( val shouldStubOrphanedExpectSymbols: Boolean = false, val shouldReferenceUndiscoveredExpectSymbols: Boolean = false, val shouldDeduplicateBuiltInSymbols: Boolean = false, + val doNotLoadDependencyModuleHeaders: Boolean = false, ) data class JvmIrBackendInput( @@ -230,7 +231,7 @@ open class JvmIrCodegenFactory( } } - val dependencies = if (ideCodegenSettings.shouldStubAndNotLinkUnboundSymbols) { + val dependencies = if (ideCodegenSettings.doNotLoadDependencyModuleHeaders) { emptyList() } else { psi2irContext.moduleDescriptor.collectAllDependencyModulesTransitively().map {