diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt index 53fd998a0eb..909a3950c9d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt @@ -29,6 +29,7 @@ import com.intellij.openapi.util.text.StringUtil import org.jetbrains.kotlin.cli.common.arguments.* import org.jetbrains.kotlin.compilerRunner.ArgumentUtils import org.jetbrains.kotlin.config.* +import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings import org.jetbrains.kotlin.idea.configuration.externalCompilerVersion @@ -41,19 +42,21 @@ import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind import kotlin.reflect.KProperty1 private fun getDefaultTargetPlatform(module: Module, rootModel: ModuleRootModel?): IdePlatform<*, *> { - for (platform in IdePlatformKind.ALL_KINDS) { - if (getRuntimeLibraryVersions(module, rootModel, platform).isNotEmpty()) { - //TODO investigate, looks strange - return platform.defaultPlatform + val platformKind = IdePlatformKind.ALL_KINDS.firstOrNull { + getRuntimeLibraryVersions(module, rootModel, it).isNotEmpty() + } ?: JvmIdePlatformKind + if (platformKind == JvmIdePlatformKind) { + var jvmTarget = Kotlin2JvmCompilerArgumentsHolder.getInstance(module.project).settings.jvmTarget?.let { JvmTarget.fromString(it) } + if (jvmTarget == null) { + val sdk = ((rootModel ?: ModuleRootManager.getInstance(module))).sdk + val sdkVersion = (sdk?.sdkType as? JavaSdk)?.getVersion(sdk) + if (sdkVersion == null || sdkVersion >= JavaSdkVersion.JDK_1_8) { + jvmTarget = JvmTarget.JVM_1_8 + } } + return if (jvmTarget != null) JvmIdePlatformKind.Platform(jvmTarget) else JvmIdePlatformKind.defaultPlatform } - - val sdk = ((rootModel ?: ModuleRootManager.getInstance(module))).sdk - val sdkVersion = (sdk?.sdkType as? JavaSdk)?.getVersion(sdk) - return when { - sdkVersion == null || sdkVersion >= JavaSdkVersion.JDK_1_8 -> JvmIdePlatformKind.Platform(JvmTarget.JVM_1_8) - else -> JvmIdePlatformKind.defaultPlatform - } + return platformKind.defaultPlatform } fun KotlinFacetSettings.initializeIfNeeded(