[KPM] IdeaKotlinFragment: Add moduleIdentifier

KT-51262
KT-51220
This commit is contained in:
sebastian.sellmair
2022-02-17 09:11:45 +01:00
committed by Space
parent ed1036a358
commit c56bf6b0e3
3 changed files with 8 additions and 4 deletions
@@ -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;
@@ -10,6 +10,7 @@ import java.io.Serializable
interface IdeaKotlinFragment : Serializable {
val name: String
val moduleIdentifier: IdeaKotlinModuleIdentifier
val languageSettings: IdeaKotlinLanguageSettings?
val dependencies: List<IdeaKotlinFragmentDependency>
val directRefinesDependencies: List<IdeaKotlinFragment>
@@ -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<IdeaKotlinFragmentDependency>,
override val directRefinesDependencies: List<IdeaKotlinFragment>,
@@ -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<KotlinGradleFragment, IdeaKotlinFragment>
private typealias IdeaKotlinFragmentBuilderCache = MutableMap<KotlinGradleFragment, IdeaKotlinFragment>
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 },