From 505a6bcbf2f3a9d697861bf8025c85b0b52c122b Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 17 Mar 2017 15:09:32 +0300 Subject: [PATCH] JPS: Copy project-level settings before use Sharing these settings for reading/writing between different module during JPS build may lead to compiler settings (plugionOptions, in particular) of several modules to be mixed #KT-16888 Fixed --- .../org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt index ad41e628273..f54ec737ba3 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt @@ -63,7 +63,7 @@ class JpsKotlinCompilerSettings : JpsElementBase() { } fun getCommonCompilerArguments(module: JpsModule): CommonCompilerArguments { - val defaultArguments = getSettings(module.project).commonCompilerArguments + val defaultArguments = copyBean(getSettings(module.project).commonCompilerArguments) val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments if (facetSettings.useProjectSettings) return defaultArguments val facetArguments = facetSettings.compilerArguments ?: return defaultArguments @@ -80,7 +80,7 @@ class JpsKotlinCompilerSettings : JpsElementBase() { } fun getK2JvmCompilerArguments(module: JpsModule): K2JVMCompilerArguments { - val defaultArguments = getSettings(module.project).k2JvmCompilerArguments + val defaultArguments = copyBean(getSettings(module.project).k2JvmCompilerArguments) val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments if (facetSettings.useProjectSettings) return defaultArguments return facetSettings.compilerArguments as? K2JVMCompilerArguments ?: defaultArguments @@ -91,7 +91,7 @@ class JpsKotlinCompilerSettings : JpsElementBase() { } fun getK2JsCompilerArguments(module: JpsModule): K2JSCompilerArguments { - val defaultArguments = getSettings(module.project).k2JsCompilerArguments + val defaultArguments = copyBean(getSettings(module.project).k2JsCompilerArguments) val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments if (facetSettings.useProjectSettings) return defaultArguments return facetSettings.compilerArguments as? K2JSCompilerArguments ?: defaultArguments @@ -102,7 +102,7 @@ class JpsKotlinCompilerSettings : JpsElementBase() { } fun getCompilerSettings(module: JpsModule): CompilerSettings { - val defaultSettings = getSettings(module.project).compilerSettings + val defaultSettings = copyBean(getSettings(module.project).compilerSettings) val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultSettings if (facetSettings.useProjectSettings) return defaultSettings return facetSettings.compilerSettings ?: defaultSettings