Support mutable/immutable compiler arguments
Original commit: 40163868af
This commit is contained in:
@@ -17,13 +17,14 @@
|
|||||||
package org.jetbrains.kotlin.config
|
package org.jetbrains.kotlin.config
|
||||||
|
|
||||||
import com.intellij.openapi.util.text.StringUtil
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
|
import org.jetbrains.kotlin.cli.common.arguments.Freezable
|
||||||
|
|
||||||
class CompilerSettings {
|
class CompilerSettings : Freezable() {
|
||||||
@JvmField var additionalArguments: String = DEFAULT_ADDITIONAL_ARGUMENTS
|
var additionalArguments: String by FreezableVar(DEFAULT_ADDITIONAL_ARGUMENTS)
|
||||||
@JvmField var scriptTemplates: String = ""
|
var scriptTemplates: String by FreezableVar("")
|
||||||
@JvmField var scriptTemplatesClasspath: String = ""
|
var scriptTemplatesClasspath: String by FreezableVar("")
|
||||||
@JvmField var copyJsLibraryFiles: Boolean = true
|
var copyJsLibraryFiles: Boolean by FreezableVar(true)
|
||||||
@JvmField var outputDirectoryForJsLibraryFiles: String = DEFAULT_OUTPUT_DIRECTORY
|
var outputDirectoryForJsLibraryFiles: String by FreezableVar(DEFAULT_OUTPUT_DIRECTORY)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val DEFAULT_ADDITIONAL_ARGUMENTS = "-version"
|
val DEFAULT_ADDITIONAL_ARGUMENTS = "-version"
|
||||||
|
|||||||
@@ -84,7 +84,13 @@ class KotlinFacetSettings {
|
|||||||
var useProjectSettings: Boolean = true
|
var useProjectSettings: Boolean = true
|
||||||
|
|
||||||
var compilerArguments: CommonCompilerArguments? = null
|
var compilerArguments: CommonCompilerArguments? = null
|
||||||
|
set(value) {
|
||||||
|
field = value?.unfrozen() as CommonCompilerArguments?
|
||||||
|
}
|
||||||
var compilerSettings: CompilerSettings? = null
|
var compilerSettings: CompilerSettings? = null
|
||||||
|
set(value) {
|
||||||
|
field = value?.unfrozen() as CompilerSettings?
|
||||||
|
}
|
||||||
|
|
||||||
var languageLevel: LanguageVersion?
|
var languageLevel: LanguageVersion?
|
||||||
get() = compilerArguments?.languageVersion?.let { LanguageVersion.fromFullVersionString(it) }
|
get() = compilerArguments?.languageVersion?.let { LanguageVersion.fromFullVersionString(it) }
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ private fun Class<*>.computeNormalPropertyOrdering(): Map<String, Int> {
|
|||||||
private val allNormalOrderings = HashMap<Class<*>, Map<String, Int>>()
|
private val allNormalOrderings = HashMap<Class<*>, Map<String, Int>>()
|
||||||
|
|
||||||
private val Class<*>.normalOrdering
|
private val Class<*>.normalOrdering
|
||||||
get() = allNormalOrderings.getOrPut(this) { computeNormalPropertyOrdering() }
|
get() = synchronized(allNormalOrderings) { allNormalOrderings.getOrPut(this) { computeNormalPropertyOrdering() } }
|
||||||
|
|
||||||
// Replacing fields with delegated properties leads to unexpected reordering of entries in facet configuration XML
|
// Replacing fields with delegated properties leads to unexpected reordering of entries in facet configuration XML
|
||||||
// It happens due to XmlSerializer using different orderings for field- and method-based accessors
|
// It happens due to XmlSerializer using different orderings for field- and method-based accessors
|
||||||
|
|||||||
Reference in New Issue
Block a user