From ad8101d92d813b42e1bd1ac6a21817d5925300c5 Mon Sep 17 00:00:00 2001 From: Andrey Uskov Date: Wed, 3 Jul 2019 21:15:21 +0300 Subject: [PATCH] Import list of pure kotlin source roots from gradle in facet settings for inspections #KT-32300 Fixed Original commit: c98ad923bd26026a11fb0da059973a9cb6b8f283 --- .../src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt | 2 ++ .../src/org/jetbrains/kotlin/config/facetSerialization.kt | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt b/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt index ad70f9a0726..8816ee3069c 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt @@ -240,6 +240,8 @@ class KotlinFacetSettings { var externalProjectId: String = "" var isHmppEnabled: Boolean = false + + var pureKotlinSourceFolders: List = emptyList() } interface KotlinFacetSettingsProvider { diff --git a/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt b/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt index 92c7d934f64..900c1ad90fc 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt @@ -161,6 +161,7 @@ private fun readV2AndLaterConfig(element: Element): KotlinFacetSettings { isTestModule = element.getAttributeValue("isTestModule")?.toBoolean() ?: false externalProjectId = element.getAttributeValue("externalProjectId") ?: "" isHmppEnabled = element.getAttribute("isHmppProject")?.booleanValue ?: false + pureKotlinSourceFolders = element.getAttributeValue("pureKotlinSourceFolders")?.split(";")?.toList() ?: emptyList() element.getChild("compilerSettings")?.let { compilerSettings = CompilerSettings() XmlSerializer.deserializeInto(compilerSettings!!, it) @@ -331,6 +332,9 @@ private fun KotlinFacetSettings.writeLatestConfig(element: Element) { if (isHmppEnabled) { element.setAttribute("isHmppProject", isHmppEnabled.toString()) } + if (pureKotlinSourceFolders.isNotEmpty()) { + element.setAttribute("pureKotlinSourceFolders", pureKotlinSourceFolders.joinToString(";")) + } productionOutputPath?.let { if (it != (compilerArguments as? K2JSCompilerArguments)?.outputFile) { element.addContent(Element("productionOutputPath").apply { addContent(PathUtil.toSystemIndependentName(it)) })