diff --git a/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestConfigurator.kt b/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestConfigurator.kt index ee6996881ed..60fc85518f9 100644 --- a/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestConfigurator.kt +++ b/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestConfigurator.kt @@ -7,11 +7,11 @@ package org.jetbrains.kotlin.analysis.api.fe10.test.configurator import com.intellij.openapi.Disposable import com.intellij.openapi.project.Project -import com.intellij.psi.PsiFile import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiBaseTestServiceRegistrar import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiDecompiledCodeTestServiceRegistrar import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtModuleFactory import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtSourceModuleFactory +import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModule import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModuleProjectStructure import org.jetbrains.kotlin.analysis.test.framework.project.structure.TestModuleStructureFactory import org.jetbrains.kotlin.analysis.test.framework.services.configuration.AnalysisApiBinaryLibraryIndexingMode @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendK import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder -import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestModuleStructure import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.compilerConfigurationProvider @@ -67,12 +66,13 @@ object AnalysisApiFe10TestConfigurator : AnalysisApiTestConfigurator() { return TestModuleStructureFactory.createProjectStructureByTestStructure(moduleStructure, testServices, project) } - override fun prepareFilesInModule(files: List, module: TestModule, testServices: TestServices) { + override fun prepareFilesInModule(ktTestModule: KtTestModule, testServices: TestServices) { + val testModule = ktTestModule.testModule val compilerConfigurationProvider = testServices.compilerConfigurationProvider - val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module) - val project = compilerConfigurationProvider.getProject(module) - val packageProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(module) - JvmResolveUtil.analyze(project, files.filterIsInstance(), compilerConfiguration, packageProviderFactory) + val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(testModule) + val project = compilerConfigurationProvider.getProject(testModule) + val packageProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(testModule) + JvmResolveUtil.analyze(project, ktTestModule.files.filterIsInstance(), compilerConfiguration, packageProviderFactory) } override fun computeTestDataPath(path: Path): Path { diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/AbstractAnalysisApiBasedTest.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/AbstractAnalysisApiBasedTest.kt index c7252dc46d1..ad15650a233 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/AbstractAnalysisApiBasedTest.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/AbstractAnalysisApiBasedTest.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestDirectives import org.jetbrains.kotlin.analysis.test.framework.TestWithDisposable import org.jetbrains.kotlin.analysis.test.framework.project.structure.getKtFiles import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider +import org.jetbrains.kotlin.analysis.test.framework.project.structure.mainModules import org.jetbrains.kotlin.analysis.test.framework.services.ExpressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.services.ExpressionMarkersSourceFilePreprocessor import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider @@ -350,9 +351,8 @@ abstract class AbstractAnalysisApiBasedTest : TestWithDisposable() { testConfiguration.preAnalysisHandlers.forEach { preprocessor -> preprocessor.preprocessModuleStructure(moduleStructure) } testConfiguration.preAnalysisHandlers.forEach { preprocessor -> preprocessor.prepareSealedClassInheritors(moduleStructure) } - moduleStructure.modules.forEach { module -> - val files = testServices.ktModuleProvider.getModuleFiles(module) - configurator.prepareFilesInModule(files, module, testServices) + testServices.ktModuleProvider.mainModules.forEach { ktTestModule -> + configurator.prepareFilesInModule(ktTestModule, testServices) } } diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/AnalysisApiKtModuleProviderImpl.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/AnalysisApiKtModuleProviderImpl.kt index 84452a9c867..d0933b416b2 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/AnalysisApiKtModuleProviderImpl.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/AnalysisApiKtModuleProviderImpl.kt @@ -51,6 +51,8 @@ class AnalysisApiKtModuleProviderImpl( fun AnalysisApiKtModuleProvider.getKtFiles(module: TestModule): List = getModuleFiles(module).filterIsInstance() +val AnalysisApiKtModuleProvider.mainModules: List get() = getModuleStructure().mainModules + fun TestServices.allKtFiles(): List = moduleStructure.modules.flatMap(ktModuleProvider::getKtFiles) val TestServices.ktModuleProvider: AnalysisApiKtModuleProvider by TestServices.testServiceAccessor() diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/test/configurators/AnalysisApiTestConfigurator.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/test/configurators/AnalysisApiTestConfigurator.kt index 423330f101e..4b45fee1c8a 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/test/configurators/AnalysisApiTestConfigurator.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/test/configurators/AnalysisApiTestConfigurator.kt @@ -11,10 +11,8 @@ import com.intellij.openapi.Disposable import com.intellij.openapi.application.Application import com.intellij.openapi.project.Project import com.intellij.openapi.util.Key -import com.intellij.psi.PsiFile import org.jetbrains.kotlin.psi.NotNullableUserDataProperty import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder -import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestModuleStructure import org.jetbrains.kotlin.test.services.TestServices import java.nio.file.Path @@ -23,6 +21,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock import kotlin.concurrent.withLock import kotlin.reflect.KClass import org.jetbrains.kotlin.analysis.providers.KotlinGlobalModificationService +import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModule import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModuleProjectStructure abstract class AnalysisApiTestConfigurator { @@ -36,7 +35,7 @@ abstract class AnalysisApiTestConfigurator { abstract val serviceRegistrars: List - open fun prepareFilesInModule(files: List, module: TestModule, testServices: TestServices) {} + open fun prepareFilesInModule(ktTestModule: KtTestModule, testServices: TestServices) {} open fun doGlobalModuleStateModification(project: Project) { KotlinGlobalModificationService.getInstance(project).publishGlobalModuleStateModification()