JPS: Fix earlier configurations with incorrect combination of language and API version
Original commit: e8640b441d
This commit is contained in:
+6
-3
@@ -16,15 +16,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.jps.model
|
package org.jetbrains.kotlin.jps.model
|
||||||
|
|
||||||
|
import com.intellij.util.text.VersionComparatorUtil
|
||||||
import com.intellij.util.xmlb.XmlSerializer
|
import com.intellij.util.xmlb.XmlSerializer
|
||||||
import org.jdom.Element
|
import org.jdom.Element
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
|
||||||
import org.jetbrains.jps.model.JpsProject
|
import org.jetbrains.jps.model.JpsProject
|
||||||
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
|
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
|
||||||
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||||
|
|
||||||
import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION
|
import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION
|
||||||
import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE
|
import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE
|
||||||
|
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
|
||||||
|
|
||||||
internal class KotlinCommonCompilerArgumentsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
|
internal class KotlinCommonCompilerArgumentsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
|
||||||
KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION) {
|
KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION) {
|
||||||
@@ -32,6 +32,9 @@ internal class KotlinCommonCompilerArgumentsSerializer : JpsProjectExtensionSeri
|
|||||||
override fun loadExtension(project: JpsProject, componentTag: Element) {
|
override fun loadExtension(project: JpsProject, componentTag: Element) {
|
||||||
val settings = XmlSerializer.deserialize(componentTag, CommonCompilerArguments.DummyImpl::class.java)
|
val settings = XmlSerializer.deserialize(componentTag, CommonCompilerArguments.DummyImpl::class.java)
|
||||||
?: CommonCompilerArguments.DummyImpl()
|
?: CommonCompilerArguments.DummyImpl()
|
||||||
|
if (VersionComparatorUtil.compare(settings.languageVersion, settings.apiVersion) < 0) {
|
||||||
|
settings.apiVersion = settings.languageVersion
|
||||||
|
}
|
||||||
JpsKotlinCompilerSettings.setCommonCompilerArguments(project, settings)
|
JpsKotlinCompilerSettings.setCommonCompilerArguments(project, settings)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user