[AA] Simplify prepareFilesInModule with KtTestModule
^KT-65960
This commit is contained in:
committed by
Space Team
parent
6cc414bdfd
commit
dc0f498b15
+7
-7
@@ -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<PsiFile>, 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<KtFile>(), compilerConfiguration, packageProviderFactory)
|
||||
val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(testModule)
|
||||
val project = compilerConfigurationProvider.getProject(testModule)
|
||||
val packageProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(testModule)
|
||||
JvmResolveUtil.analyze(project, ktTestModule.files.filterIsInstance<KtFile>(), compilerConfiguration, packageProviderFactory)
|
||||
}
|
||||
|
||||
override fun computeTestDataPath(path: Path): Path {
|
||||
|
||||
+3
-3
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -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()
|
||||
|
||||
+2
-3
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user