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 ffc5a4bd5d5..d0405da94d4 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 @@ -203,7 +203,10 @@ open class JvmIrCodegenFactory( // We need to compile all files we reference in Klibs irModuleFragment.files.addAll(dependencies.flatMap { it.files }) - if (!input.configuration.getBoolean(JVMConfigurationKeys.DO_NOT_CLEAR_BINDING_CONTEXT)) { + if (!input.configuration.getBoolean(JVMConfigurationKeys.DO_NOT_CLEAR_BINDING_CONTEXT) && !input.configuration.getBoolean( + JVMConfigurationKeys.USE_KAPT_WITH_JVM_IR + ) + ) { val originalBindingContext = input.bindingContext as? CleanableBindingContext ?: error("BindingContext should be cleanable in JVM IR to avoid leaking memory: ${input.bindingContext}") originalBindingContext.clear() diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractIrKotlinKapt3Test.kt b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractIrKotlinKapt3Test.kt index 6d1ce907e77..76e1dd4e05f 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractIrKotlinKapt3Test.kt +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractIrKotlinKapt3Test.kt @@ -11,18 +11,8 @@ import org.jetbrains.kotlin.test.TargetBackend open class AbstractIrClassFileToSourceStubConverterTest : AbstractClassFileToSourceStubConverterTest() { override val backend = TargetBackend.JVM_IR - - override fun updateConfiguration(configuration: CompilerConfiguration) { - configuration.put(JVMConfigurationKeys.DO_NOT_CLEAR_BINDING_CONTEXT, true) - super.updateConfiguration(configuration) - } } abstract class AbstractIrKotlinKaptContextTest : AbstractKotlinKaptContextTest() { override val backend = TargetBackend.JVM_IR - - override fun updateConfiguration(configuration: CompilerConfiguration) { - configuration.put(JVMConfigurationKeys.DO_NOT_CLEAR_BINDING_CONTEXT, true) - super.updateConfiguration(configuration) - } }