KAPT+IR: Don't clear binding context if KAPT is used
This commit is contained in:
+4
-1
@@ -203,7 +203,10 @@ open class JvmIrCodegenFactory(
|
|||||||
// We need to compile all files we reference in Klibs
|
// We need to compile all files we reference in Klibs
|
||||||
irModuleFragment.files.addAll(dependencies.flatMap { it.files })
|
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
|
val originalBindingContext = input.bindingContext as? CleanableBindingContext
|
||||||
?: error("BindingContext should be cleanable in JVM IR to avoid leaking memory: ${input.bindingContext}")
|
?: error("BindingContext should be cleanable in JVM IR to avoid leaking memory: ${input.bindingContext}")
|
||||||
originalBindingContext.clear()
|
originalBindingContext.clear()
|
||||||
|
|||||||
-10
@@ -11,18 +11,8 @@ import org.jetbrains.kotlin.test.TargetBackend
|
|||||||
|
|
||||||
open class AbstractIrClassFileToSourceStubConverterTest : AbstractClassFileToSourceStubConverterTest() {
|
open class AbstractIrClassFileToSourceStubConverterTest : AbstractClassFileToSourceStubConverterTest() {
|
||||||
override val backend = TargetBackend.JVM_IR
|
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() {
|
abstract class AbstractIrKotlinKaptContextTest : AbstractKotlinKaptContextTest() {
|
||||||
override val backend = TargetBackend.JVM_IR
|
override val backend = TargetBackend.JVM_IR
|
||||||
|
|
||||||
override fun updateConfiguration(configuration: CompilerConfiguration) {
|
|
||||||
configuration.put(JVMConfigurationKeys.DO_NOT_CLEAR_BINDING_CONTEXT, true)
|
|
||||||
super.updateConfiguration(configuration)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user