Remove obsolete check for language version and IR backends

This commit is contained in:
Alexander Udalov
2021-08-06 19:28:30 +02:00
parent a6336ec134
commit 0213c25c9b
4 changed files with 1 additions and 50 deletions
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.WARNING import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.WARNING
import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.config.*
import java.util.*
@SuppressWarnings("WeakerAccess") @SuppressWarnings("WeakerAccess")
abstract class CommonCompilerArguments : CommonToolArguments() { abstract class CommonCompilerArguments : CommonToolArguments() {
@@ -563,8 +562,6 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
checkLanguageVersionIsStable(languageVersion, collector) checkLanguageVersionIsStable(languageVersion, collector)
checkOutdatedVersions(languageVersion, apiVersion, collector) checkOutdatedVersions(languageVersion, apiVersion, collector)
checkProgressiveMode(languageVersion, collector) checkProgressiveMode(languageVersion, collector)
checkIrSupport(languageVersionSettings, collector)
} }
return languageVersionSettings return languageVersionSettings
@@ -635,10 +632,6 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
} }
} }
protected open fun checkIrSupport(languageVersionSettings: LanguageVersionSettings, collector: MessageCollector) {
// backend-specific
}
private enum class VersionKind(val text: String) { private enum class VersionKind(val text: String) {
LANGUAGE("Language"), API("API") LANGUAGE("Language"), API("API")
} }
@@ -6,12 +6,8 @@
package org.jetbrains.kotlin.cli.common.arguments package org.jetbrains.kotlin.cli.common.arguments
import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants.* import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants.*
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.LanguageVersion
import org.jetbrains.kotlin.config.LanguageVersionSettings
class K2JSCompilerArguments : CommonCompilerArguments() { class K2JSCompilerArguments : CommonCompilerArguments() {
companion object { companion object {
@@ -236,19 +232,6 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@Argument(value = "-Xwasm", description = "Use experimental WebAssembly compiler backend") @Argument(value = "-Xwasm", description = "Use experimental WebAssembly compiler backend")
var wasm: Boolean by FreezableVar(false) var wasm: Boolean by FreezableVar(false)
override fun checkIrSupport(languageVersionSettings: LanguageVersionSettings, collector: MessageCollector) {
if (!isIrBackendEnabled()) return
if (languageVersionSettings.languageVersion < LanguageVersion.KOTLIN_1_4
|| languageVersionSettings.apiVersion < ApiVersion.KOTLIN_1_4
) {
collector.report(
CompilerMessageSeverity.ERROR,
"IR backend cannot be used with language or API version below 1.4"
)
}
}
override fun configureLanguageFeatures(collector: MessageCollector): MutableMap<LanguageFeature, LanguageFeature.State> { override fun configureLanguageFeatures(collector: MessageCollector): MutableMap<LanguageFeature, LanguageFeature.State> {
return super.configureLanguageFeatures(collector).apply { return super.configureLanguageFeatures(collector).apply {
if (extensionFunctionsInExternals) { if (extensionFunctionsInExternals) {
@@ -262,4 +245,4 @@ fun K2JSCompilerArguments.isPreIrBackendDisabled(): Boolean =
irOnly || irProduceJs || irProduceKlibFile || irBuildCache irOnly || irProduceJs || irProduceKlibFile || irBuildCache
fun K2JSCompilerArguments.isIrBackendEnabled(): Boolean = fun K2JSCompilerArguments.isIrBackendEnabled(): Boolean =
irProduceKlibDir || irProduceJs || irProduceKlibFile || wasm || irBuildCache irProduceKlibDir || irProduceJs || irProduceKlibFile || wasm || irBuildCache
@@ -557,18 +557,4 @@ default: `indy-with-constants` for JVM target 9 or greater, `inline` otherwise""
} }
return result return result
} }
override fun checkIrSupport(languageVersionSettings: LanguageVersionSettings, collector: MessageCollector) {
if (!useIR || useOldBackend) return
if (languageVersionSettings.languageVersion < LanguageVersion.KOTLIN_1_3
|| languageVersionSettings.apiVersion < ApiVersion.KOTLIN_1_3
) {
collector.report(
CompilerMessageSeverity.STRONG_WARNING,
"IR backend does not support language or API version lower than 1.3. " +
"This can lead to unexpected behavior or compilation failures"
)
}
}
} }
@@ -358,17 +358,6 @@ class K2NativeCompilerArguments : CommonCompilerArguments() {
if (printIr) if (printIr)
phasesToDumpAfter = arrayOf("ALL") phasesToDumpAfter = arrayOf("ALL")
} }
override fun checkIrSupport(languageVersionSettings: LanguageVersionSettings, collector: MessageCollector) {
if (languageVersionSettings.languageVersion < LanguageVersion.KOTLIN_1_4
|| languageVersionSettings.apiVersion < ApiVersion.KOTLIN_1_4
) {
collector.report(
severity = CompilerMessageSeverity.ERROR,
message = "Native backend cannot be used with language or API version below 1.4"
)
}
}
} }
const val EMBED_BITCODE_FLAG = "-Xembed-bitcode" const val EMBED_BITCODE_FLAG = "-Xembed-bitcode"