KAPT+IR: Don't clear binding context if KAPT is used

This commit is contained in:
Mikhael Bogdanov
2022-02-16 11:40:42 +01:00
parent f05c72d48f
commit 7b767aaa1c
2 changed files with 4 additions and 11 deletions
@@ -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()
@@ -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)
}
}