diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/Kotlin2JsCompilerArgumentsHolder.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/Kotlin2JsCompilerArgumentsHolder.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/compiler/configuration/Kotlin2JsCompilerArgumentsHolder.kt
rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/Kotlin2JsCompilerArgumentsHolder.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/Kotlin2JvmCompilerArgumentsHolder.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/Kotlin2JvmCompilerArgumentsHolder.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/compiler/configuration/Kotlin2JvmCompilerArgumentsHolder.kt
rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/Kotlin2JvmCompilerArgumentsHolder.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt
rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt
index 8d9f30ce0ea..c6a9b92a14e 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt
@@ -25,8 +25,10 @@ import com.intellij.openapi.roots.ProjectFileIndex
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.cli.common.arguments.Argument
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
+import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
+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.facet.getLibraryLanguageLevel
@@ -113,7 +115,14 @@ val Module.languageVersionSettings: LanguageVersionSettings
}
val Module.targetPlatform: TargetPlatformKind<*>?
- get() = KotlinFacetSettingsProvider.getInstance(project).getSettings(this)?.targetPlatformKind
+ get() = KotlinFacetSettingsProvider.getInstance(project).getSettings(this)?.targetPlatformKind ?: project.targetPlatform
+
+val Project.targetPlatform: TargetPlatformKind<*>?
+ get() {
+ val jvmTarget = Kotlin2JvmCompilerArgumentsHolder.getInstance(this).settings.jvmTarget ?: return null
+ val version = JvmTarget.fromString(jvmTarget) ?: return null
+ return TargetPlatformKind.Jvm[version]
+ }
private val Module.implementsCommonModule: Boolean
get() = targetPlatform != TargetPlatformKind.Common
diff --git a/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/lib/kotlin-runtme.jar b/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/lib/kotlin-runtme.jar
new file mode 100644
index 00000000000..24854eff673
Binary files /dev/null and b/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/lib/kotlin-runtme.jar differ
diff --git a/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/module.iml b/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/module.iml
new file mode 100644
index 00000000000..4a3ded12725
--- /dev/null
+++ b/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/module.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/projectFile.ipr b/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/projectFile.ipr
new file mode 100644
index 00000000000..c90cd47cb88
--- /dev/null
+++ b/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/projectFile.ipr
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/src/foo.kt b/idea/testData/configuration/projectWithoutFacetWithJvmTarget18/src/foo.kt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java b/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java
index 2b6fd211629..1593cfba7ee 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java
@@ -259,4 +259,8 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
public void testJvm6InProjectJvm8InModule() {
configureFacetAndCheckJvm(JvmTarget.JVM_1_8);
}
+
+ public void testProjectWithoutFacetWithJvmTarget18() {
+ assertEquals(TargetPlatformKind.Jvm.Companion.get(JvmTarget.JVM_1_8), PlatformKt.getTargetPlatform(getModule()));
+ }
}