From 27a2d7f614f29cd16d3b470d7df664f7e1bb7d29 Mon Sep 17 00:00:00 2001 From: Kristoffer Andersen Date: Mon, 27 Dec 2021 14:40:28 +0100 Subject: [PATCH] [IR] Generalize fragment generation logic for wider use Generalize the config specific to evaluator fragment compilation for wider applicability. --- .../jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 86a547fc43e..05f35b27f8b 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 @@ -55,6 +55,7 @@ open class JvmIrCodegenFactory( private val jvmGeneratorExtensions: JvmGeneratorExtensionsImpl = JvmGeneratorExtensionsImpl(configuration), private val prefixPhases: CompilerPhase? = null, private val evaluatorFragmentInfoForPsi2Ir: EvaluatorFragmentInfo? = null, + private val shouldStubAndNotLinkUnboundSymbols: Boolean = false, ) : CodegenFactory { data class JvmIrBackendInput( val irModuleFragment: IrModuleFragment, @@ -159,10 +160,11 @@ open class JvmIrCodegenFactory( irLinker.deserializeIrModuleHeader(it, kotlinLibrary, _moduleName = it.name.asString()) } - val stubGeneratorForMissingClasses = DeclarationStubGeneratorForNotFoundClasses(stubGenerator) - val irProviders = if (evaluatorFragmentInfoForPsi2Ir != null) { - listOf(stubGenerator, irLinker, stubGeneratorForMissingClasses) + + val irProviders = if (shouldStubAndNotLinkUnboundSymbols) { + listOf(stubGenerator) } else { + val stubGeneratorForMissingClasses = DeclarationStubGeneratorForNotFoundClasses(stubGenerator) listOf(irLinker, stubGeneratorForMissingClasses) }