[FIR] Make FirExtensionRegistrar a proper extension point
After that commit it's allowed to register any FIR plugin using existing extension infrastructure (`-Xplugin` CLI argument, plugin.xml for IDE plugins, etc)
This commit is contained in:
committed by
TeamCityServer
parent
14ee13c72e
commit
ce218b8a0b
+1
-2
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.parcelize.test.runners
|
||||
|
||||
import org.jetbrains.kotlin.parcelize.test.services.FirFacadeWithParcelizeExtension
|
||||
import org.jetbrains.kotlin.parcelize.test.services.ParcelizeEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.bind
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
@@ -18,7 +17,7 @@ import org.jetbrains.kotlin.test.services.fir.FirOldFrontendMetaConfigurator
|
||||
|
||||
abstract class AbstractFirParcelizeDiagnosticTest : AbstractKotlinCompilerTest() {
|
||||
override fun TestConfigurationBuilder.configuration() {
|
||||
baseFirDiagnosticTestConfiguration(frontendFacade = FirFacadeWithParcelizeExtension)
|
||||
baseFirDiagnosticTestConfiguration()
|
||||
|
||||
defaultDirectives {
|
||||
+FirDiagnosticsDirectives.ENABLE_PLUGIN_PHASES
|
||||
|
||||
+2
-2
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
|
||||
import org.jetbrains.kotlin.test.bind
|
||||
import org.jetbrains.kotlin.test.builders.*
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.REQUIRES_SEPARATE_PROCESS
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.ENABLE_PLUGIN_PHASES
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter
|
||||
@@ -26,6 +25,7 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
|
||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
|
||||
import org.jetbrains.kotlin.test.model.*
|
||||
@@ -116,7 +116,7 @@ open class AbstractParcelizeFirBoxTest : AbstractParcelizeBoxTestBase<FirOutputA
|
||||
TargetBackend.JVM_IR
|
||||
) {
|
||||
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
||||
get() = FirFacadeWithParcelizeExtension
|
||||
get() = ::FirFrontendFacade
|
||||
|
||||
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||
get() = ::Fir2IrResultsConverter
|
||||
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.parcelize.test.services
|
||||
|
||||
import org.jetbrains.kotlin.parcelize.fir.FirParcelizeExtensionRegistrar
|
||||
import org.jetbrains.kotlin.test.Constructor
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||
|
||||
val FirFacadeWithParcelizeExtension: Constructor<FirFrontendFacade> = { testServices ->
|
||||
FirFrontendFacade(testServices) {
|
||||
it.registerExtensions(FirParcelizeExtensionRegistrar().configure())
|
||||
}
|
||||
}
|
||||
+3
@@ -9,8 +9,10 @@ import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||
import org.jetbrains.kotlin.parcelize.ParcelizeComponentRegistrar
|
||||
import org.jetbrains.kotlin.parcelize.ParcelizeFirIrGeneratorExtension
|
||||
import org.jetbrains.kotlin.parcelize.fir.FirParcelizeExtensionRegistrar
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
@@ -31,6 +33,7 @@ class ParcelizeEnvironmentConfigurator(
|
||||
|
||||
override fun registerCompilerExtensions(project: Project) {
|
||||
if (useFirExtension) {
|
||||
FirExtensionRegistrar.registerExtension(project, FirParcelizeExtensionRegistrar())
|
||||
IrGenerationExtension.registerExtension(project, ParcelizeFirIrGeneratorExtension())
|
||||
} else {
|
||||
ParcelizeComponentRegistrar.registerParcelizeComponents(project)
|
||||
|
||||
Reference in New Issue
Block a user