Introduce language version 2.0 and associate K2 compiler with it
This commit is contained in:
+9
-5
@@ -26,19 +26,23 @@ const val SANITIZE_PARENTHESES = "SANITIZE_PARENTHESES"
|
||||
const val ENABLE_JVM_PREVIEW = "ENABLE_JVM_PREVIEW"
|
||||
|
||||
data class CompilerTestLanguageVersionSettings(
|
||||
private val initialLanguageFeatures: Map<LanguageFeature, LanguageFeature.State>,
|
||||
override val apiVersion: ApiVersion,
|
||||
override val languageVersion: LanguageVersion,
|
||||
val analysisFlags: Map<AnalysisFlag<*>, Any?> = emptyMap()
|
||||
private val initialLanguageFeatures: Map<LanguageFeature, LanguageFeature.State>,
|
||||
override val apiVersion: ApiVersion,
|
||||
override val languageVersion: LanguageVersion,
|
||||
val analysisFlags: Map<AnalysisFlag<*>, Any?> = emptyMap()
|
||||
) : LanguageVersionSettings {
|
||||
val extraLanguageFeatures = specificFeaturesForTests() + initialLanguageFeatures
|
||||
private val delegate = LanguageVersionSettingsImpl(languageVersion, apiVersion, emptyMap(), extraLanguageFeatures)
|
||||
|
||||
override fun getFeatureSupport(feature: LanguageFeature): LanguageFeature.State =
|
||||
extraLanguageFeatures[feature] ?: delegate.getFeatureSupport(feature)
|
||||
extraLanguageFeatures[feature] ?: delegate.getFeatureSupport(feature)
|
||||
|
||||
override fun isPreRelease(): Boolean = false
|
||||
|
||||
override fun copy(languageVersion: LanguageVersion): LanguageVersionSettings {
|
||||
return CompilerTestLanguageVersionSettings(initialLanguageFeatures, apiVersion, languageVersion, analysisFlags)
|
||||
}
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T> getFlag(flag: AnalysisFlag<T>): T = analysisFlags[flag] as T? ?: flag.defaultValue
|
||||
}
|
||||
|
||||
+1
-1
@@ -138,7 +138,7 @@ abstract class AbstractKotlinCompilerIntegrationTest : TestCaseWithTmpdir() {
|
||||
|
||||
private fun String.removeFirWarning(): String {
|
||||
return this.replace(
|
||||
"warning: ATTENTION!\n This build uses experimental K2 compiler: \n -Xuse-k2\n", ""
|
||||
"warning: language version 2.0 is experimental, there are no backwards compatibility guarantees for new language and library features\n", ""
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user