From c63854948b009b9f625fc61a6f8f8e9e715ef67e Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Thu, 31 May 2018 16:23:34 +0300 Subject: [PATCH] Configuration: Fix Kotlin SDK existence check on facet configuration AS3.1/AS3.2 --- .../org/jetbrains/kotlin/idea/facet/facetUtils.kt.as31 | 10 +++++++++- .../org/jetbrains/kotlin/idea/facet/facetUtils.kt.as32 | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt.as31 b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt.as31 index 4b90d7ba67c..c1e44fd5117 100644 --- a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt.as31 +++ b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt.as31 @@ -42,6 +42,7 @@ import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgu import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings import org.jetbrains.kotlin.idea.framework.KotlinSdkType import org.jetbrains.kotlin.idea.util.application.runWriteAction +import org.jetbrains.kotlin.idea.util.projectStructure.sdk import org.jetbrains.kotlin.idea.versions.* import kotlin.reflect.KProperty1 @@ -221,7 +222,14 @@ private fun Module.configureSdkIfPossible(compilerArguments: CommonCompilerArgum val jdkHome = compilerArguments.jdkHome ?: return allSdks.firstOrNull { it.sdkType is JavaSdk && FileUtil.comparePaths(it.homePath, jdkHome) == 0 } ?: return } else { - allSdks.firstOrNull { it.sdkType is KotlinSdkType } ?: KotlinSdkType.INSTANCE.createSdkWithUniqueName(allSdks.toList()) + allSdks.firstOrNull { it.sdkType is KotlinSdkType } + ?: modelsProvider + .modifiableModuleModel + .modules + .asSequence() + .mapNotNull { modelsProvider.getModifiableRootModel(it).sdk } + .firstOrNull { it.sdkType is KotlinSdkType } + ?: KotlinSdkType.INSTANCE.createSdkWithUniqueName(allSdks.toList()) } modelsProvider.getModifiableRootModel(this).sdk = sdk diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt.as32 b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt.as32 index 4b90d7ba67c..d99ec128a14 100644 --- a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt.as32 +++ b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt.as32 @@ -42,6 +42,7 @@ import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgu import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings import org.jetbrains.kotlin.idea.framework.KotlinSdkType import org.jetbrains.kotlin.idea.util.application.runWriteAction +import org.jetbrains.kotlin.idea.util.projectStructure.sdk import org.jetbrains.kotlin.idea.versions.* import kotlin.reflect.KProperty1 @@ -221,7 +222,14 @@ private fun Module.configureSdkIfPossible(compilerArguments: CommonCompilerArgum val jdkHome = compilerArguments.jdkHome ?: return allSdks.firstOrNull { it.sdkType is JavaSdk && FileUtil.comparePaths(it.homePath, jdkHome) == 0 } ?: return } else { - allSdks.firstOrNull { it.sdkType is KotlinSdkType } ?: KotlinSdkType.INSTANCE.createSdkWithUniqueName(allSdks.toList()) + allSdks.firstOrNull { it.sdkType is KotlinSdkType } + ?: modelsProvider + .modifiableModuleModel + .modules + .asSequence() + .mapNotNull { modelsProvider.getModifiableRootModel(it).sdk } + .firstOrNull { it.sdkType is KotlinSdkType } + ?: KotlinSdkType.INSTANCE.createSdkWithUniqueName(allSdks.toList()) } modelsProvider.getModifiableRootModel(this).sdk = sdk