diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt index c8f92cdc01a..f6148e1d8a1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt @@ -31,12 +31,11 @@ internal fun configurationToResolveMetadataDependencies(project: Project, reques class GradleKotlinDependencyGraphResolver( - private val project: Project, private val moduleResolver: ModuleDependencyResolver ) : KotlinDependencyGraphResolver { - private fun configurationToResolve(requestingModule: KotlinModule): Configuration = - configurationToResolveMetadataDependencies(project, requestingModule) + private fun configurationToResolve(requestingModule: KotlinGradleModule): Configuration = + configurationToResolveMetadataDependencies(requestingModule.project, requestingModule) override fun resolveDependencyGraph(requestingModule: KotlinModule): DependencyGraphResolution { if (requestingModule !is KotlinGradleModule) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyResolution.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyResolution.kt index 451667e8f60..502f5f0b2e8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyResolution.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyResolution.kt @@ -21,15 +21,17 @@ import org.jetbrains.kotlin.project.model.* import java.util.ArrayDeque class GradleModuleDependencyResolver( - private val project: Project, private val projectStructureMetadataModuleBuilder: ProjectStructureMetadataModuleBuilder, private val projectModuleBuilder: GradleProjectModuleBuilder ) : ModuleDependencyResolver { - private fun configurationToResolve(requestingModule: KotlinModule): Configuration = - configurationToResolveMetadataDependencies(project, requestingModule) + private fun configurationToResolve(requestingModule: KotlinGradleModule): Configuration = + configurationToResolveMetadataDependencies(requestingModule.project, requestingModule) override fun resolveDependency(requestingModule: KotlinModule, moduleDependency: KotlinModuleDependency): KotlinModule? { + require(requestingModule is KotlinGradleModule) + val project = requestingModule.project + val allComponents = configurationToResolve(requestingModule).incoming.resolutionResult.allComponents // TODO: optimize O(n) search, store the resolved components with dependency keys? val component = allComponents.find { it.id.matchesModuleDependency(moduleDependency) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolver.kt index e3d8b8b93a9..d89944c0252 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolver.kt @@ -33,10 +33,10 @@ internal class FragmentGranularMetadataResolver( private val metadataModuleBuilder = ProjectStructureMetadataModuleBuilder() private val projectModuleBuilder = GradleProjectModuleBuilder(true) - private val moduleResolver = GradleModuleDependencyResolver(project, metadataModuleBuilder, projectModuleBuilder) + private val moduleResolver = GradleModuleDependencyResolver(metadataModuleBuilder, projectModuleBuilder) private val variantResolver = GradleModuleVariantResolver(project) private val fragmentResolver = DefaultModuleFragmentsResolver(variantResolver) - private val dependencyGraphResolver = GradleKotlinDependencyGraphResolver(project, moduleResolver) + private val dependencyGraphResolver = GradleKotlinDependencyGraphResolver(moduleResolver) private fun doResolveMetadataDependencies(): Iterable { val configurationToResolve = configurationToResolveMetadataDependencies(project, requestingFragment.containingModule)