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