JPS: Fix earlier configurations with incorrect combination of language and API version

Original commit: e8640b441d
This commit is contained in:
Alexey Sedunov
2017-03-09 11:29:26 +03:00
parent 9759f1e067
commit cc7091bb3c
@@ -16,15 +16,15 @@
package org.jetbrains.kotlin.jps.model
import com.intellij.util.text.VersionComparatorUtil
import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.jps.model.JpsProject
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_COMPILER_SETTINGS_FILE
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
internal class KotlinCommonCompilerArgumentsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION) {
@@ -32,6 +32,9 @@ internal class KotlinCommonCompilerArgumentsSerializer : JpsProjectExtensionSeri
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, CommonCompilerArguments.DummyImpl::class.java)
?: CommonCompilerArguments.DummyImpl()
if (VersionComparatorUtil.compare(settings.languageVersion, settings.apiVersion) < 0) {
settings.apiVersion = settings.languageVersion
}
JpsKotlinCompilerSettings.setCommonCompilerArguments(project, settings)
}