JVM: allow -jvm-target 1.8 with -Xjdk-release=1.6
#KT-59098
This commit is contained in:
committed by
Space Team
parent
1bc08fc5b8
commit
12f393791b
@@ -41,7 +41,7 @@ fun CompilerConfiguration.setupJvmSpecificArguments(arguments: K2JVMCompilerArgu
|
||||
if (value != getJavaVersion() || arguments.jdkHome != null) {
|
||||
put(JVMConfigurationKeys.JDK_RELEASE, value)
|
||||
}
|
||||
if (jvmTargetArg != null && jvmTargetArg != releaseTargetArg) {
|
||||
if (jvmTargetArg != null && !isCompatibleJvmTargetAndRelease(jvmTargetArg, releaseTargetArg)) {
|
||||
messageCollector.report(
|
||||
ERROR,
|
||||
"'-Xjdk-release=$releaseTargetArg' option conflicts with '-jvm-target $jvmTargetArg'. " +
|
||||
@@ -110,6 +110,15 @@ fun CompilerConfiguration.setupJvmSpecificArguments(arguments: K2JVMCompilerArgu
|
||||
addAll(JVMConfigurationKeys.ADDITIONAL_JAVA_MODULES, arguments.additionalJavaModules?.asList())
|
||||
}
|
||||
|
||||
private fun isCompatibleJvmTargetAndRelease(jvmTarget: String, release: String): Boolean {
|
||||
if (jvmTarget == "1.8") {
|
||||
// This is needed to be able to compile stdlib with -jvm-target 1.8 and -Xjdk-release=1.6/1.7.
|
||||
return release in listOf("6", "1.6", "8", "1.8")
|
||||
}
|
||||
|
||||
return jvmTarget == release
|
||||
}
|
||||
|
||||
private fun CompilerConfiguration.handleClosureGenerationSchemeArgument(
|
||||
flag: String,
|
||||
value: String?,
|
||||
|
||||
Reference in New Issue
Block a user