CLI: improve error message for -Xjdk-release=1.6/1.7
#KT-66174 Fixed
This commit is contained in:
committed by
Space Team
parent
5f261d3ad0
commit
939a74add3
@@ -43,10 +43,12 @@ fun CompilerConfiguration.setupJvmSpecificArguments(arguments: K2JVMCompilerArgu
|
|||||||
put(JVMConfigurationKeys.JDK_RELEASE, value)
|
put(JVMConfigurationKeys.JDK_RELEASE, value)
|
||||||
}
|
}
|
||||||
if (jvmTargetArg != null && !isCompatibleJvmTargetAndRelease(jvmTargetArg, releaseTargetArg)) {
|
if (jvmTargetArg != null && !isCompatibleJvmTargetAndRelease(jvmTargetArg, releaseTargetArg)) {
|
||||||
|
val suggestion =
|
||||||
|
if (value < 8) "Please change the value of the 'jvm-target' option to 1.8"
|
||||||
|
else "Please remove the '-jvm-target' option"
|
||||||
messageCollector.report(
|
messageCollector.report(
|
||||||
ERROR,
|
ERROR,
|
||||||
"'-Xjdk-release=$releaseTargetArg' option conflicts with '-jvm-target $jvmTargetArg'. " +
|
"'-Xjdk-release=$releaseTargetArg' option conflicts with '-jvm-target $jvmTargetArg'. $suggestion"
|
||||||
"Please remove the '-jvm-target' option"
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -57,7 +59,8 @@ fun CompilerConfiguration.setupJvmSpecificArguments(arguments: K2JVMCompilerArgu
|
|||||||
if (jvmTargetArg == null) {
|
if (jvmTargetArg == null) {
|
||||||
messageCollector.report(
|
messageCollector.report(
|
||||||
ERROR,
|
ERROR,
|
||||||
"'-Xjdk-release=$releaseTargetArg' option requires explicit JVM target. Please specify the '-jvm-target' option"
|
"'-Xjdk-release=$releaseTargetArg' option requires JVM target explicitly set to 1.8. " +
|
||||||
|
"Please specify the '-jvm-target' option"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
jvmTargetArg
|
jvmTargetArg
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
-Xjdk-release=1.6
|
||||||
|
-jvm-target
|
||||||
|
9
|
||||||
|
-jdk-home
|
||||||
|
$JDK_11_0
|
||||||
|
$TESTDATA_DIR$/jdkRelease.kt
|
||||||
|
-d
|
||||||
|
$TEMP_DIR$
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
error: '-Xjdk-release=1.6' option conflicts with '-jvm-target 9'. Please change the value of the 'jvm-target' option to 1.8
|
||||||
|
COMPILATION_ERROR
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
error: '-Xjdk-release=1.6' option requires explicit JVM target. Please specify the '-jvm-target' option
|
error: '-Xjdk-release=1.6' option requires JVM target explicitly set to 1.8. Please specify the '-jvm-target' option
|
||||||
COMPILATION_ERROR
|
COMPILATION_ERROR
|
||||||
|
|||||||
@@ -775,6 +775,11 @@ public class CliTestGenerated extends AbstractCliTest {
|
|||||||
runTest("compiler/testData/cli/jvm/jdkRelease6WithJvmTarget8Jdk8.args");
|
runTest("compiler/testData/cli/jvm/jdkRelease6WithJvmTarget8Jdk8.args");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("jdkRelease6WithJvmTarget9.args")
|
||||||
|
public void testJdkRelease6WithJvmTarget9() {
|
||||||
|
runTest("compiler/testData/cli/jvm/jdkRelease6WithJvmTarget9.args");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jdkRelease6WithoutExplicitJvmTarget.args")
|
@TestMetadata("jdkRelease6WithoutExplicitJvmTarget.args")
|
||||||
public void testJdkRelease6WithoutExplicitJvmTarget() {
|
public void testJdkRelease6WithoutExplicitJvmTarget() {
|
||||||
runTest("compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.args");
|
runTest("compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.args");
|
||||||
|
|||||||
Reference in New Issue
Block a user