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())); + } }