[AA] Simplify prepareFilesInModule with KtTestModule

^KT-65960
This commit is contained in:
Marco Pennekamp
2024-02-20 21:02:11 +01:00
committed by Space Team
parent 6cc414bdfd
commit dc0f498b15
4 changed files with 14 additions and 13 deletions
@@ -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)
}
}
@@ -51,6 +51,8 @@ class AnalysisApiKtModuleProviderImpl(
fun AnalysisApiKtModuleProvider.getKtFiles(module: TestModule): List<KtFile> = getModuleFiles(module).filterIsInstance<KtFile>()
val AnalysisApiKtModuleProvider.mainModules: List<KtTestModule> get() = getModuleStructure().mainModules
fun TestServices.allKtFiles(): List<KtFile> = moduleStructure.modules.flatMap(ktModuleProvider::getKtFiles)
val TestServices.ktModuleProvider: AnalysisApiKtModuleProvider by TestServices.testServiceAccessor()
@@ -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<AnalysisApiTestServiceRegistrar>
open fun prepareFilesInModule(files: List<PsiFile>, module: TestModule, testServices: TestServices) {}
open fun prepareFilesInModule(ktTestModule: KtTestModule, testServices: TestServices) {}
open fun doGlobalModuleStateModification(project: Project) {
KotlinGlobalModificationService.getInstance(project).publishGlobalModuleStateModification()