diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtModuleWithModifiableDependencies.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtModuleWithModifiableDependencies.kt index d231e3632e4..8fa0361a3c0 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtModuleWithModifiableDependencies.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtModuleWithModifiableDependencies.kt @@ -5,9 +5,12 @@ package org.jetbrains.kotlin.analysis.test.framework.project.structure +import com.intellij.openapi.project.Project import org.jetbrains.kotlin.analysis.project.structure.* abstract class KtModuleWithModifiableDependencies { + abstract val project: Project + abstract val directRegularDependencies: MutableList abstract val directDependsOnDependencies: MutableList abstract val directFriendDependencies: MutableList diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/TestModuleStructureFactory.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/TestModuleStructureFactory.kt index 0653c31f8c9..3b2b73c44c1 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/TestModuleStructureFactory.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/TestModuleStructureFactory.kt @@ -77,11 +77,9 @@ object TestModuleStructureFactory { val libraryCache: LibraryCache = mutableMapOf() - for (testModule in moduleStructure.modules) { - val ktModule = modulesByName.getByTestModule(testModule).ktModule - - ktModule.addToLibraryCacheIfNeeded(libraryCache) - ktModule.addDependencies(testModule, testServices, modulesByName, libraryCache) + for (ktTestModule in modules) { + ktTestModule.ktModule.addToLibraryCacheIfNeeded(libraryCache) + ktTestModule.addDependencies(testServices, modulesByName, libraryCache) } return KtTestModuleProjectStructure(modules, libraryCache.values) @@ -132,9 +130,6 @@ object TestModuleStructureFactory { return result } - private fun ModulesByName.getByTestModule(testModule: TestModule): KtTestModule = - this[testModule.name] ?: this.getValue(testModule.files.single().name) - /** * A main module may be a binary library module, which may be a dependency of subsequent main modules. We need to add such a module to * the library cache before it is processed as a dependency. Otherwise, when another module's binary dependency is processed, @@ -147,12 +142,11 @@ object TestModuleStructureFactory { } } - private fun KtModule.addDependencies( - testModule: TestModule, + private fun KtTestModule.addDependencies( testServices: TestServices, modulesByName: ModulesByName, libraryCache: LibraryCache, - ) = when (this) { + ) = when (ktModule) { is KtNotUnderContentRootModule -> { // Not-under-content-root modules have no external dependencies on purpose } @@ -160,8 +154,8 @@ object TestModuleStructureFactory { // Dangling file modules get dependencies from their context } is KtModuleWithModifiableDependencies -> { - addModuleDependencies(testModule, modulesByName, this) - addLibraryDependencies(testModule, testServices, project, this, libraryCache::getOrPut) + addModuleDependencies(testModule, modulesByName, ktModule) + addLibraryDependencies(testModule, testServices, ktModule, libraryCache::getOrPut) } else -> error("Unexpected module type: " + javaClass.name) } @@ -184,10 +178,11 @@ object TestModuleStructureFactory { private fun addLibraryDependencies( testModule: TestModule, testServices: TestServices, - project: Project, ktModule: KtModuleWithModifiableDependencies, libraryCache: (paths: Set, factory: () -> KtBinaryModule) -> KtBinaryModule ) { + val project = ktModule.project + val compilerConfiguration = testServices.compilerConfigurationProvider.getCompilerConfiguration(testModule) val classpathRoots = compilerConfiguration[CLIConfigurationKeys.CONTENT_ROOTS, emptyList()]