[Test] Pass CompilerConfiguration to AbstractEnvironmentConfigurator.registerCompilerExtensions
This is needed to provide ability to configure extensions depending on configuration of specific test
This commit is contained in:
committed by
teamcity
parent
400ad6a01e
commit
afad6a564a
+3
-3
@@ -58,9 +58,9 @@ private class EnabledByDirectiveConfiguratorDecorator(
|
||||
languageVersion: LanguageVersion
|
||||
): Map<AnalysisFlag<*>, Any?> = original.provideAdditionalAnalysisFlags(directives, languageVersion)
|
||||
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {
|
||||
if (directive !in module.directives) return
|
||||
|
||||
original.registerCompilerExtensions(project, module)
|
||||
original.registerCompilerExtensions(project, module, configuration)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ abstract class AbstractEnvironmentConfigurator : ServicesAndDirectivesContainer
|
||||
|
||||
abstract fun provideAdditionalAnalysisFlags(directives: RegisteredDirectives, languageVersion: LanguageVersion): Map<AnalysisFlag<*>, Any?>
|
||||
|
||||
abstract fun registerCompilerExtensions(project: Project, module: TestModule)
|
||||
abstract fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration)
|
||||
}
|
||||
|
||||
abstract class EnvironmentConfigurator(protected val testServices: TestServices) : AbstractEnvironmentConfigurator() {
|
||||
@@ -50,7 +50,7 @@ abstract class EnvironmentConfigurator(protected val testServices: TestServices)
|
||||
return emptyMap()
|
||||
}
|
||||
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule) {}
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {}
|
||||
}
|
||||
|
||||
class DirectiveToConfigurationKeyExtractor {
|
||||
|
||||
+4
-4
@@ -91,14 +91,14 @@ open class CompilerConfigurationProviderImpl(
|
||||
testServices.applicationDisposableProvider.getApplicationRootDisposable(),
|
||||
CompilerConfiguration()
|
||||
)
|
||||
val initialConfiguration = createCompilerConfiguration(module)
|
||||
val projectEnv = KotlinCoreEnvironment.ProjectEnvironment(testRootDisposable, applicationEnvironment, initialConfiguration)
|
||||
val configuration = createCompilerConfiguration(module)
|
||||
val projectEnv = KotlinCoreEnvironment.ProjectEnvironment(testRootDisposable, applicationEnvironment, configuration)
|
||||
val project = projectEnv.project
|
||||
return KotlinCoreEnvironment.createForTests(
|
||||
projectEnv,
|
||||
initialConfiguration,
|
||||
configuration,
|
||||
configFiles
|
||||
).also { configurators.forEach { it.registerCompilerExtensions(project, module) } }
|
||||
).also { configurators.forEach { it.registerCompilerExtensions(project, module, configuration) } }
|
||||
}
|
||||
|
||||
@TestInfrastructureInternals
|
||||
|
||||
+3
-2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlinx.atomicfu
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.js.test.ir.AbstractJsIrTest
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
@@ -39,7 +40,7 @@ class AtomicfuRuntimeClasspathProvider(testServices: TestServices) : RuntimeClas
|
||||
}
|
||||
|
||||
class AtomicfuEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfigurator(testServices) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {
|
||||
IrGenerationExtension.registerExtension(project, AtomicfuLoweringExtension())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.plugin.services
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||
import org.jetbrains.kotlin.fir.plugin.FirPluginPrototypeExtensionRegistrar
|
||||
import org.jetbrains.kotlin.ir.plugin.GeneratedDeclarationsIrBodyFiller
|
||||
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
|
||||
class ExtensionRegistrarConfigurator(testServices: TestServices) : EnvironmentConfigurator(testServices) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {
|
||||
FirExtensionRegistrar.registerExtension(project, FirPluginPrototypeExtensionRegistrar())
|
||||
IrGenerationExtension.registerExtension(project, GeneratedDeclarationsIrBodyFiller())
|
||||
}
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ internal fun TestConfigurationBuilder.configureForKotlinxSerialization(libraries
|
||||
configuration.addJvmClasspathRoots(librariesPaths)
|
||||
}
|
||||
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {
|
||||
SerializationComponentRegistrar.registerExtensions(project)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ class ParcelizeEnvironmentConfigurator(
|
||||
configuration.addJvmClasspathRoots(listOf(runtimeLibrary, androidExtensionsRuntimeLibrary, androidApiJar))
|
||||
}
|
||||
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {
|
||||
if (useFirExtension) {
|
||||
FirExtensionRegistrar.registerExtension(project, FirParcelizeExtensionRegistrar())
|
||||
IrGenerationExtension.registerExtension(project, ParcelizeFirIrGeneratorExtension())
|
||||
|
||||
+2
-1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.parcelize.test.services
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -16,7 +17,7 @@ import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
|
||||
class SerializableLikeExtensionProvider(testServices: TestServices) : EnvironmentConfigurator(testServices) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule) {
|
||||
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {
|
||||
SyntheticResolveExtension.registerExtension(project, SerializableLike())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user