Report deprecation warning when -Xuse-old-backend is specified

#KT-48532
This commit is contained in:
Alexander Udalov
2021-08-06 19:23:49 +02:00
parent 778b04ae34
commit a6336ec134
5 changed files with 14 additions and 3 deletions
@@ -212,13 +212,20 @@ fun CompilerConfiguration.configureAdvancedJvmOptions(arguments: K2JVMCompilerAr
arguments.useIR && !useOldBackend
}
if (arguments.useIR && arguments.useOldBackend) {
if (arguments.useOldBackend) {
messageCollector.report(
STRONG_WARNING,
"Both -Xuse-ir and -Xuse-old-backend are passed. This is an inconsistent configuration. " +
"The compiler will use the ${if (useIR) "JVM IR" else "old JVM"} backend"
"-Xuse-old-backend is deprecated and will be removed in a future release"
)
if (arguments.useIR) {
messageCollector.report(
STRONG_WARNING,
"Both -Xuse-ir and -Xuse-old-backend are passed. This is an inconsistent configuration. " +
"The compiler will use the ${if (useIR) "JVM IR" else "old JVM"} backend"
)
}
}
messageCollector.report(LOGGING, "Using ${if (useIR) "JVM IR" else "old JVM"} backend")
put(JVMConfigurationKeys.IR, useIR)
@@ -1,2 +1,3 @@
warning: -Xuse-old-backend is deprecated and will be removed in a future release
error: -Xabi-stability=unstable is not supported in the old JVM backend
COMPILATION_ERROR
+1
View File
@@ -1,2 +1,3 @@
warning: -Xuse-old-backend is deprecated and will be removed in a future release
warning: both -Xuse-ir and -Xuse-old-backend are passed. This is an inconsistent configuration. The compiler will use the old JVM backend
OK
+1
View File
@@ -1,3 +1,4 @@
warning: -Xuse-old-backend is deprecated and will be removed in a future release
compiler/testData/cli/jvm/classAndTraitClash.kt:3:1: error: duplicate JVM class name 'test/T1$DefaultImpls' generated from: `T1$DefaultImpls`, T1
interface T1 {
^
@@ -1,3 +1,4 @@
warning: -Xuse-old-backend is deprecated and will be removed in a future release
compiler/testData/cli/jvm/suspendInFunInterfaceIrDisabled.kt:2:5: error: 'suspend' modifier is not allowed on a single abstract member
suspend fun foo()
^