From a6bc8807e5020185adaddf1bc3648b3764b4e71d Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Wed, 22 Dec 2021 11:02:26 +0100 Subject: [PATCH] [MPP][Test] MPPCompositeMode: Include transitive dependsOn dependencies ^KT-50156 --- .../classic/MultiplatformAnalysisConfiguration.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/classic/MultiplatformAnalysisConfiguration.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/classic/MultiplatformAnalysisConfiguration.kt index 66813df5f2d..322428a24a9 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/classic/MultiplatformAnalysisConfiguration.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/classic/MultiplatformAnalysisConfiguration.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.resolve.multiplatform.isCommonSource import org.jetbrains.kotlin.test.directives.MultiplatformDiagnosticsDirectives.ENABLE_MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.services.* +import org.jetbrains.kotlin.types.typeUtil.closure internal fun MultiplatformAnalysisConfiguration(testServices: TestServices): MultiplatformAnalysisConfiguration { return if (testServices.moduleStructure.allDirectives.contains(ENABLE_MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE)) { @@ -121,7 +122,12 @@ internal class MultiplatformCompositeAnalysisConfiguration( } override fun getDependencyDescriptors(module: TestModule): List { - return getDescriptors(module.allDependencies, dependencyProvider, moduleDescriptorProvider) + // Transitive dependsOn descriptors should also be returned as dependencies + val allDependsOnDependencies = module.dependsOnDependencies.closure(preserveOrder = true) { dependsOnDependency -> + dependencyProvider.getTestModule(dependsOnDependency.moduleName).dependsOnDependencies + } + val allDependencies = (module.allDependencies + allDependsOnDependencies).distinct() + return getDescriptors(allDependencies, dependencyProvider, moduleDescriptorProvider) } override fun getDependsOnDescriptors(module: TestModule): List {