diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-gradle-plugin-idea.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-gradle-plugin-idea.txt index c24cbdda451..006e0eb1aab 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-gradle-plugin-idea.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-gradle-plugin-idea.txt @@ -60,6 +60,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinF public abstract fun getDirectRefinesDependencies ()Ljava/util/List; public abstract fun getExternal ()Lorg/jetbrains/kotlin/gradle/kpm/KotlinExternalModelContainer; public abstract fun getLanguageSettings ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinLanguageSettings; + public abstract fun getModuleIdentifier ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleIdentifier; public abstract fun getName ()Ljava/lang/String; public abstract fun getResourceDirectories ()Ljava/util/List; public abstract fun getSourceDirectories ()Ljava/util/List; diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragment.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragment.kt index de38830679d..89efeb2897b 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragment.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragment.kt @@ -10,6 +10,7 @@ import java.io.Serializable interface IdeaKotlinFragment : Serializable { val name: String + val moduleIdentifier: IdeaKotlinModuleIdentifier val languageSettings: IdeaKotlinLanguageSettings? val dependencies: List val directRefinesDependencies: List @@ -21,6 +22,7 @@ interface IdeaKotlinFragment : Serializable { @InternalKotlinGradlePluginApi data class IdeaKotlinFragmentImpl( override val name: String, + override val moduleIdentifier: IdeaKotlinModuleIdentifier, override val languageSettings: IdeaKotlinLanguageSettings?, override val dependencies: List, override val directRefinesDependencies: List, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentBuilder.kt index 16ee5a8e540..cf52f5d5715 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentBuilder.kt @@ -10,10 +10,10 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragmentInternal import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleVariant -private typealias FragmentInterner = MutableMap +private typealias IdeaKotlinFragmentBuilderCache = MutableMap internal fun KotlinGradleFragment.toIdeaKotlinFragment( - cache: FragmentInterner = mutableMapOf() + cache: IdeaKotlinFragmentBuilderCache = mutableMapOf() ): IdeaKotlinFragment { return cache.getOrPut(this) { if (this is KotlinGradleVariant) buildIdeaKotlinVariant(cache) @@ -21,9 +21,10 @@ internal fun KotlinGradleFragment.toIdeaKotlinFragment( } } -private fun KotlinGradleFragment.buildIdeaKotlinFragment(cache: FragmentInterner): IdeaKotlinFragment { +private fun KotlinGradleFragment.buildIdeaKotlinFragment(cache: IdeaKotlinFragmentBuilderCache): IdeaKotlinFragment { return IdeaKotlinFragmentImpl( name = name, + moduleIdentifier = containingModule.moduleIdentifier.toIdeaKotlinModuleIdentifier(), languageSettings = languageSettings.toIdeaKotlinLanguageSettings(), dependencies = emptyList(), directRefinesDependencies = directRefinesDependencies.map { refinesFragment -> @@ -37,7 +38,7 @@ private fun KotlinGradleFragment.buildIdeaKotlinFragment(cache: FragmentInterner ) } -private fun KotlinGradleVariant.buildIdeaKotlinVariant(cache: FragmentInterner): IdeaKotlinVariant { +private fun KotlinGradleVariant.buildIdeaKotlinVariant(cache: IdeaKotlinFragmentBuilderCache): IdeaKotlinVariant { return IdeaKotlinVariantImpl( fragment = buildIdeaKotlinFragment(cache), variantAttributes = variantAttributes.mapKeys { (key, _) -> key.uniqueName },