diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt index 4f2cf4c9610..020f702d473 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationE import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.androidJvm import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.jvm +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.common import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.extraProperties import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImport.DependencyResolutionLevel.Default @@ -154,7 +155,7 @@ interface IdeMultiplatformImport { } val isJvmAndAndroid = SourceSetConstraint { sourceSet -> - sourceSet.internal.compilations.map { it.platformType }.toSet() == setOf(jvm, androidJvm) + sourceSet.internal.compilations.map { it.platformType }.filter { it != common }.toSet() == setOf(jvm, androidJvm) } val isAndroid = SourceSetConstraint { sourceSet -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ide/SourceSetConstraintTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ide/SourceSetConstraintTest.kt index 67da3ea7934..6fdc301a74e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ide/SourceSetConstraintTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ide/SourceSetConstraintTest.kt @@ -133,22 +133,14 @@ class SourceSetConstraintTest { project.evaluate() - assertConstraint(commonMain, IdeMultiplatformImport.SourceSetConstraint.isAndroid, isMatchExpected = false) - assertConstraint( - commonMain, IdeMultiplatformImport.SourceSetConstraint.isJvmAndAndroid, - isMatchExpected = false // TODO (kirpichenkov): investigate and explain/fix metadata jvm + android shared non-test compilations - ) - assertConstraint(commonMain, IdeMultiplatformImport.SourceSetConstraint.isLeaf, isMatchExpected = false) - assertConstraint(commonMain, IdeMultiplatformImport.SourceSetConstraint.isNative, isMatchExpected = false) - assertConstraint(commonMain, IdeMultiplatformImport.SourceSetConstraint.isSinglePlatformType, isMatchExpected = false) - assertConstraint(commonMain, IdeMultiplatformImport.SourceSetConstraint.unconstrained, isMatchExpected = true) - - assertConstraint(commonTest, IdeMultiplatformImport.SourceSetConstraint.isAndroid, isMatchExpected = false) - assertConstraint(commonTest, IdeMultiplatformImport.SourceSetConstraint.isJvmAndAndroid, isMatchExpected = true) - assertConstraint(commonTest, IdeMultiplatformImport.SourceSetConstraint.isLeaf, isMatchExpected = false) - assertConstraint(commonTest, IdeMultiplatformImport.SourceSetConstraint.isNative, isMatchExpected = false) - assertConstraint(commonTest, IdeMultiplatformImport.SourceSetConstraint.isSinglePlatformType, isMatchExpected = false) - assertConstraint(commonTest, IdeMultiplatformImport.SourceSetConstraint.unconstrained, isMatchExpected = true) + for (commonSourceSet in listOf(commonMain, commonTest)) { + assertConstraint(commonSourceSet, IdeMultiplatformImport.SourceSetConstraint.isAndroid, isMatchExpected = false) + assertConstraint(commonSourceSet, IdeMultiplatformImport.SourceSetConstraint.isJvmAndAndroid, isMatchExpected = true) + assertConstraint(commonSourceSet, IdeMultiplatformImport.SourceSetConstraint.isLeaf, isMatchExpected = false) + assertConstraint(commonSourceSet, IdeMultiplatformImport.SourceSetConstraint.isNative, isMatchExpected = false) + assertConstraint(commonSourceSet, IdeMultiplatformImport.SourceSetConstraint.isSinglePlatformType, isMatchExpected = false) + assertConstraint(commonSourceSet, IdeMultiplatformImport.SourceSetConstraint.unconstrained, isMatchExpected = true) + } for (jvmSourceSet in listOf(jvmMain, jvmTest)) { assertConstraint(jvmSourceSet, IdeMultiplatformImport.SourceSetConstraint.isAndroid, isMatchExpected = false)