diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSourceSetDataService.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSourceSetDataService.kt index 543e446ff05..8c7b2d58236 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSourceSetDataService.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSourceSetDataService.kt @@ -123,6 +123,7 @@ private fun findOwnerModule(libraryData: LibraryData, projectDataNode: DataNode): DataNode? { return projectDataNode.children.firstOrNull { dataNode -> if (dataNode.data !is ModuleData) return@firstOrNull false + if (dataNode.hasDependency(libraryData)) return@firstOrNull true val sourceSetDataNodes = dataNode.children.filter { it.data is GradleSourceSetData } sourceSetDataNodes.any { it.hasDependency(libraryData) } } as DataNode? diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt index 76a6a75ff34..7a34d79b412 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt @@ -694,6 +694,48 @@ compileTestKotlin { assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind) } + @Test + fun testCommonImportByPlatformPlugin_SingleModule() { + createProjectSubFile("build.gradle", """ + group 'Again' + version '1.0-SNAPSHOT' + + buildscript { + repositories { + mavenCentral() + jcenter() + } + + dependencies { + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0") + } + } + + apply plugin: 'kotlin-platform-common' + + repositories { + mavenCentral() + jcenter() + } + + dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib-common:1.1.0" + } + + """) + importProjectUsingSingeModulePerGradleProject() + + with (facetSettings("project")) { + Assert.assertEquals("1.1", languageLevel!!.versionString) + Assert.assertEquals("1.1", apiLevel!!.versionString) + Assert.assertEquals(TargetPlatformKind.Common, targetPlatformKind) + } + + val rootManager = ModuleRootManager.getInstance(getModule("project")) + val stdlib = rootManager.orderEntries.filterIsInstance().mapTo(HashSet()) { it.library }.single() + assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind) + } + @Test fun testJvmImportByKotlinPlugin() { createProjectSubFile("build.gradle", """ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleImportingTestCase.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleImportingTestCase.java index b78c391aaa3..260e9e8170f 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleImportingTestCase.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleImportingTestCase.java @@ -154,6 +154,11 @@ public abstract class GradleImportingTestCase extends ExternalSystemImportingTes return "build.gradle"; } + protected void importProjectUsingSingeModulePerGradleProject() { + getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false); + importProject(); + } + @Override protected void importProject() { ExternalSystemApiUtil.subscribe(myProject, GradleConstants.SYSTEM_ID, new ExternalSystemSettingsListenerAdapter() {