[Parcelize] Fix registration of IR extension for K2 mode

This commit is contained in:
Dmitriy Novozhilov
2022-06-28 12:03:30 +03:00
committed by teamcity
parent 1a8496757e
commit 935f5c1180
2 changed files with 10 additions and 4 deletions
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.container.StorageComponentContainer
import org.jetbrains.kotlin.container.useInstance
@@ -22,9 +23,13 @@ import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
class ParcelizeComponentRegistrar : CompilerPluginRegistrar() {
companion object {
fun registerParcelizeComponents(extensionStorage: ExtensionStorage) = with(extensionStorage) {
fun registerParcelizeComponents(extensionStorage: ExtensionStorage, useFir: Boolean) = with(extensionStorage) {
ExpressionCodegenExtension.registerExtension(ParcelizeCodegenExtension())
IrGenerationExtension.registerExtension(ParcelizeIrGeneratorExtension())
if (useFir) {
IrGenerationExtension.registerExtension(ParcelizeFirIrGeneratorExtension())
} else {
IrGenerationExtension.registerExtension(ParcelizeIrGeneratorExtension())
}
SyntheticResolveExtension.registerExtension(ParcelizeResolveExtension())
ClassBuilderInterceptorExtension.registerExtension(ParcelizeClinitClassBuilderInterceptorExtension())
StorageComponentContainerContributor.registerExtension(ParcelizeDeclarationCheckerComponentContainerContributor())
@@ -33,7 +38,7 @@ class ParcelizeComponentRegistrar : CompilerPluginRegistrar() {
}
override fun ExtensionStorage.registerExtensions(configuration: CompilerConfiguration) {
registerParcelizeComponents(this)
registerParcelizeComponents(this, configuration.getBoolean(CommonConfigurationKeys.USE_FIR))
}
override val supportsK2: Boolean
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.parcelize.ParcelizeComponentRegistrar
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
import org.jetbrains.kotlin.test.services.TestServices
@@ -28,6 +29,6 @@ class ParcelizeEnvironmentConfigurator(testServices: TestServices) : Environment
module: TestModule,
configuration: CompilerConfiguration
) {
ParcelizeComponentRegistrar.registerParcelizeComponents(this)
ParcelizeComponentRegistrar.registerParcelizeComponents(this, useFir = module.frontendKind == FrontendKinds.FIR)
}
}