[Test] Add ability to provide additional analysis flags in EnvironmentConfigurator
This commit is contained in:
committed by
TeamCityServer
parent
c4691de72d
commit
e287742842
+8
-1
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
|
||||
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
|
||||
import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue
|
||||
import org.jetbrains.kotlin.test.services.DefaultsDsl
|
||||
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.util.LANGUAGE_FEATURE_PATTERN
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||
|
||||
@@ -48,7 +49,7 @@ class LanguageVersionSettingsBuilder {
|
||||
analysisFlags[flag] = value
|
||||
}
|
||||
|
||||
fun configureUsingDirectives(directives: RegisteredDirectives) {
|
||||
fun configureUsingDirectives(directives: RegisteredDirectives, environmentConfigurators: List<EnvironmentConfigurator>) {
|
||||
val apiVersion = directives.singleOrZeroValue(LanguageSettingsDirectives.API_VERSION)
|
||||
if (apiVersion != null) {
|
||||
this.apiVersion = apiVersion
|
||||
@@ -74,6 +75,12 @@ class LanguageVersionSettingsBuilder {
|
||||
|
||||
analysisFlags.forEach { withFlag(it.first, it.second) }
|
||||
|
||||
environmentConfigurators.forEach {
|
||||
it.provideAdditionalAnalysisFlags(directives).entries.forEach { (flag, value) ->
|
||||
withFlag(flag, value)
|
||||
}
|
||||
}
|
||||
|
||||
directives[LanguageSettingsDirectives.LANGUAGE].forEach { parseLanguageFeature(it) }
|
||||
}
|
||||
|
||||
|
||||
+5
-1
@@ -6,8 +6,8 @@
|
||||
package org.jetbrains.kotlin.test.services
|
||||
|
||||
import com.intellij.mock.MockProject
|
||||
import org.jetbrains.kotlin.config.AnalysisFlag
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.test.directives.model.ComposedRegisteredDirectives
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
||||
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
@@ -23,4 +23,8 @@ abstract class EnvironmentConfigurator(protected val testServices: TestServices)
|
||||
get() = testServices.moduleStructure
|
||||
|
||||
open fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule, project: MockProject) {}
|
||||
|
||||
open fun provideAdditionalAnalysisFlags(directives: RegisteredDirectives): Map<AnalysisFlag<*>, Any?> {
|
||||
return emptyMap()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user