[Plugins] Introduce new API for registering compiler plugins
Original `ComponentRegistrar` exposes Project to its registration method, so plugins should manually register extensions to it. To prepare for possible unbound compiler from Project API in future new `K2ComponentRegistrar` introduced which provides registration method without Project at all
This commit is contained in:
committed by
teamcity
parent
bb996c1b27
commit
8b42638afa
+4
-2
@@ -5,11 +5,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.samWithReceiver
|
||||
|
||||
import com.intellij.mock.MockProject
|
||||
import org.jetbrains.kotlin.ObsoleteTestInfrastructure
|
||||
import org.jetbrains.kotlin.TestsCompilerError
|
||||
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.compiler.plugin.registerExtensionsForTest
|
||||
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerFromEnvironment
|
||||
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
@@ -38,7 +38,9 @@ abstract class AbstractSamWithReceiverScriptNewDefTest : AbstractDiagnosticsTest
|
||||
val scriptCompiler = ScriptJvmCompilerFromEnvironment(environment)
|
||||
val res = scriptCompiler.compile("42".toScriptSource("\$init"), ScriptForSamWithReceiversNewDefCompilationConfiguration)
|
||||
Assert.assertTrue(res is ResultWithDiagnostics.Success<*>)
|
||||
SamWithReceiverComponentRegistrar().registerProjectComponents(environment.project as MockProject, environment.configuration)
|
||||
registerExtensionsForTest(environment.project, environment.configuration) {
|
||||
with(SamWithReceiverComponentRegistrar()) { registerExtensions(it) }
|
||||
}
|
||||
}
|
||||
|
||||
override fun analyzeAndCheck(testDataFile: File, files: List<TestFile>) {
|
||||
|
||||
+7
-8
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.samWithReceiver
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar.ExtensionStorage
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarAdapter
|
||||
@@ -60,12 +60,11 @@ class SamWithReceiverEnvironmentConfigurator(testServices: TestServices) : Envir
|
||||
private val TEST_ANNOTATIONS = listOf("SamWithReceiver")
|
||||
}
|
||||
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {
|
||||
StorageComponentContainerContributor.registerExtension(
|
||||
project,
|
||||
CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS)
|
||||
)
|
||||
|
||||
FirExtensionRegistrarAdapter.registerExtension(project, FirSamWithReceiverExtensionRegistrar(TEST_ANNOTATIONS))
|
||||
override fun ExtensionStorage.registerCompilerExtensions(
|
||||
module: TestModule,
|
||||
configuration: CompilerConfiguration
|
||||
) {
|
||||
StorageComponentContainerContributor.registerExtension(CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS))
|
||||
FirExtensionRegistrarAdapter.registerExtension(FirSamWithReceiverExtensionRegistrar(TEST_ANNOTATIONS))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user