From 18632c320007a618fb1b600d0df46708f6340f2d Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 4 Apr 2017 21:11:29 +0300 Subject: [PATCH] Kotlin Facet: Fix facet creation with non-default JVM target --- .../kotlin/config/KotlinFacetSettings.kt | 16 +++++-- .../jetbrains/kotlin/idea/facet/facetUtils.kt | 2 +- .../lib/kotlin-runtme.jar | Bin 0 -> 17409 bytes .../jvm6InProjectJvm8InModule/module.iml | 12 +++++ .../jvm6InProjectJvm8InModule/projectFile.ipr | 44 ++++++++++++++++++ .../jvm6InProjectJvm8InModule/src/foo.kt | 0 .../lib/kotlin-runtme.jar | Bin 0 -> 17409 bytes .../jvm8InProjectJvm6InModule/module.iml | 12 +++++ .../jvm8InProjectJvm6InModule/projectFile.ipr | 44 ++++++++++++++++++ .../jvm8InProjectJvm6InModule/src/foo.kt | 0 .../configuration/ConfigureKotlinTest.java | 33 +++++++++++++ 11 files changed, 157 insertions(+), 6 deletions(-) create mode 100644 idea/testData/configuration/jvm6InProjectJvm8InModule/lib/kotlin-runtme.jar create mode 100644 idea/testData/configuration/jvm6InProjectJvm8InModule/module.iml create mode 100644 idea/testData/configuration/jvm6InProjectJvm8InModule/projectFile.ipr create mode 100644 idea/testData/configuration/jvm6InProjectJvm8InModule/src/foo.kt create mode 100644 idea/testData/configuration/jvm8InProjectJvm6InModule/lib/kotlin-runtme.jar create mode 100644 idea/testData/configuration/jvm8InProjectJvm6InModule/module.iml create mode 100644 idea/testData/configuration/jvm8InProjectJvm6InModule/projectFile.ipr create mode 100644 idea/testData/configuration/jvm8InProjectJvm6InModule/src/foo.kt diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt index 41552aaae02..c0fb60d7972 100644 --- a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt +++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt @@ -132,14 +132,20 @@ class KotlinFacetSettings { } } -fun TargetPlatformKind<*>.createCompilerArguments(): CommonCompilerArguments { - return when (this) { - is TargetPlatformKind.Jvm -> { - K2JVMCompilerArguments().apply { jvmTarget = this@createCompilerArguments.version.description } - } +fun TargetPlatformKind<*>.createCompilerArguments(init: CommonCompilerArguments.() -> Unit = {}): CommonCompilerArguments { + val arguments = when (this) { + is TargetPlatformKind.Jvm -> K2JVMCompilerArguments() is TargetPlatformKind.JavaScript -> K2JSCompilerArguments() is TargetPlatformKind.Common -> K2MetadataCompilerArguments() } + + arguments.init() + + if (arguments is K2JVMCompilerArguments) { + arguments.jvmTarget = this@createCompilerArguments.version.description + } + + return arguments } interface KotlinFacetSettingsProvider { diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt index c4428c74137..43d9634237e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt @@ -65,7 +65,7 @@ fun KotlinFacetSettings.initializeIfNeeded( if (compilerArguments == null) { val targetPlatformKind = platformKind ?: getDefaultTargetPlatform(module, rootModel) - compilerArguments = targetPlatformKind.createCompilerArguments().apply { + compilerArguments = targetPlatformKind.createCompilerArguments { targetPlatformKind.getPlatformCompilerArgumentsByProject(module.project)?.let { mergeBeans(it, this) } mergeBeans(commonArguments, this) } diff --git a/idea/testData/configuration/jvm6InProjectJvm8InModule/lib/kotlin-runtme.jar b/idea/testData/configuration/jvm6InProjectJvm8InModule/lib/kotlin-runtme.jar new file mode 100644 index 0000000000000000000000000000000000000000..24854eff673c5045fd5ef98998c574cc10a4210d GIT binary patch literal 17409 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 literal 0 HcmV?d00001 diff --git a/idea/testData/configuration/jvm6InProjectJvm8InModule/module.iml b/idea/testData/configuration/jvm6InProjectJvm8InModule/module.iml new file mode 100644 index 00000000000..4a3ded12725 --- /dev/null +++ b/idea/testData/configuration/jvm6InProjectJvm8InModule/module.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/configuration/jvm6InProjectJvm8InModule/projectFile.ipr b/idea/testData/configuration/jvm6InProjectJvm8InModule/projectFile.ipr new file mode 100644 index 00000000000..65454355d27 --- /dev/null +++ b/idea/testData/configuration/jvm6InProjectJvm8InModule/projectFile.ipr @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/configuration/jvm6InProjectJvm8InModule/src/foo.kt b/idea/testData/configuration/jvm6InProjectJvm8InModule/src/foo.kt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/configuration/jvm8InProjectJvm6InModule/lib/kotlin-runtme.jar b/idea/testData/configuration/jvm8InProjectJvm6InModule/lib/kotlin-runtme.jar new file mode 100644 index 0000000000000000000000000000000000000000..24854eff673c5045fd5ef98998c574cc10a4210d GIT binary patch literal 17409 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 literal 0 HcmV?d00001 diff --git a/idea/testData/configuration/jvm8InProjectJvm6InModule/module.iml b/idea/testData/configuration/jvm8InProjectJvm6InModule/module.iml new file mode 100644 index 00000000000..4a3ded12725 --- /dev/null +++ b/idea/testData/configuration/jvm8InProjectJvm6InModule/module.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/configuration/jvm8InProjectJvm6InModule/projectFile.ipr b/idea/testData/configuration/jvm8InProjectJvm6InModule/projectFile.ipr new file mode 100644 index 00000000000..c90cd47cb88 --- /dev/null +++ b/idea/testData/configuration/jvm8InProjectJvm6InModule/projectFile.ipr @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/configuration/jvm8InProjectJvm6InModule/src/foo.kt b/idea/testData/configuration/jvm8InProjectJvm6InModule/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 7e2ffa216e0..f7f9b6e105c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java @@ -17,12 +17,15 @@ package org.jetbrains.kotlin.idea.configuration; import com.intellij.framework.library.LibraryVersionProperties; +import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProviderImpl; import com.intellij.openapi.module.Module; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments; import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments; import org.jetbrains.kotlin.config.*; +import org.jetbrains.kotlin.idea.facet.FacetUtilsKt; +import org.jetbrains.kotlin.idea.facet.KotlinFacet; import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider; import org.jetbrains.kotlin.idea.framework.KotlinLibraryUtilKt; import org.jetbrains.kotlin.idea.project.PlatformKt; @@ -211,4 +214,34 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest { assertEquals("amd", arguments.moduleKind); assertEquals("-version -meta-info", settings.getCompilerSettings().additionalArguments); } + + private void configureFacetAndCheckJvm(JvmTarget jvmTarget) { + IdeModifiableModelsProviderImpl modelsProvider = new IdeModifiableModelsProviderImpl(getProject()); + try { + KotlinFacet facet = FacetUtilsKt.getOrCreateFacet(getModule(), modelsProvider, false); + TargetPlatformKind.Jvm platformKind = TargetPlatformKind.Jvm.Companion.get(jvmTarget); + FacetUtilsKt.configureFacet( + facet, + "1.1", + LanguageFeature.State.ENABLED, + platformKind, + modelsProvider + ); + assertEquals(platformKind, facet.getConfiguration().getSettings().getTargetPlatformKind()); + assertEquals(jvmTarget.getDescription(), ((K2JVMCompilerArguments) facet.getConfiguration().getSettings().getCompilerArguments()).jvmTarget); + } + finally { + modelsProvider.dispose(); + } + } + + @SuppressWarnings("ConstantConditions") + public void testJvm8InProjectJvm6InModule() { + configureFacetAndCheckJvm(JvmTarget.JVM_1_6); + } + + @SuppressWarnings("ConstantConditions") + public void testJvm6InProjectJvm8InModule() { + configureFacetAndCheckJvm(JvmTarget.JVM_1_8); + } }