[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.Disposable
|
||||||
import com.intellij.openapi.project.Project
|
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.AnalysisApiBaseTestServiceRegistrar
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiDecompiledCodeTestServiceRegistrar
|
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.KtModuleFactory
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtSourceModuleFactory
|
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.KtTestModuleProjectStructure
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.project.structure.TestModuleStructureFactory
|
import org.jetbrains.kotlin.analysis.test.framework.project.structure.TestModuleStructureFactory
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.services.configuration.AnalysisApiBinaryLibraryIndexingMode
|
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.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
||||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
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.TestModuleStructure
|
||||||
import org.jetbrains.kotlin.test.services.TestServices
|
import org.jetbrains.kotlin.test.services.TestServices
|
||||||
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
|
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
|
||||||
@@ -67,12 +66,13 @@ object AnalysisApiFe10TestConfigurator : AnalysisApiTestConfigurator() {
|
|||||||
return TestModuleStructureFactory.createProjectStructureByTestStructure(moduleStructure, testServices, project)
|
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 compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
||||||
val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module)
|
val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(testModule)
|
||||||
val project = compilerConfigurationProvider.getProject(module)
|
val project = compilerConfigurationProvider.getProject(testModule)
|
||||||
val packageProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(module)
|
val packageProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(testModule)
|
||||||
JvmResolveUtil.analyze(project, files.filterIsInstance<KtFile>(), compilerConfiguration, packageProviderFactory)
|
JvmResolveUtil.analyze(project, ktTestModule.files.filterIsInstance<KtFile>(), compilerConfiguration, packageProviderFactory)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun computeTestDataPath(path: Path): Path {
|
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.TestWithDisposable
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.project.structure.getKtFiles
|
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.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.ExpressionMarkerProvider
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.services.ExpressionMarkersSourceFilePreprocessor
|
import org.jetbrains.kotlin.analysis.test.framework.services.ExpressionMarkersSourceFilePreprocessor
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
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.preprocessModuleStructure(moduleStructure) }
|
||||||
testConfiguration.preAnalysisHandlers.forEach { preprocessor -> preprocessor.prepareSealedClassInheritors(moduleStructure) }
|
testConfiguration.preAnalysisHandlers.forEach { preprocessor -> preprocessor.prepareSealedClassInheritors(moduleStructure) }
|
||||||
|
|
||||||
moduleStructure.modules.forEach { module ->
|
testServices.ktModuleProvider.mainModules.forEach { ktTestModule ->
|
||||||
val files = testServices.ktModuleProvider.getModuleFiles(module)
|
configurator.prepareFilesInModule(ktTestModule, testServices)
|
||||||
configurator.prepareFilesInModule(files, module, testServices)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
@@ -51,6 +51,8 @@ class AnalysisApiKtModuleProviderImpl(
|
|||||||
|
|
||||||
fun AnalysisApiKtModuleProvider.getKtFiles(module: TestModule): List<KtFile> = getModuleFiles(module).filterIsInstance<KtFile>()
|
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)
|
fun TestServices.allKtFiles(): List<KtFile> = moduleStructure.modules.flatMap(ktModuleProvider::getKtFiles)
|
||||||
|
|
||||||
val TestServices.ktModuleProvider: AnalysisApiKtModuleProvider by TestServices.testServiceAccessor()
|
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.application.Application
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.util.Key
|
import com.intellij.openapi.util.Key
|
||||||
import com.intellij.psi.PsiFile
|
|
||||||
import org.jetbrains.kotlin.psi.NotNullableUserDataProperty
|
import org.jetbrains.kotlin.psi.NotNullableUserDataProperty
|
||||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
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.TestModuleStructure
|
||||||
import org.jetbrains.kotlin.test.services.TestServices
|
import org.jetbrains.kotlin.test.services.TestServices
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
@@ -23,6 +21,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock
|
|||||||
import kotlin.concurrent.withLock
|
import kotlin.concurrent.withLock
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
import org.jetbrains.kotlin.analysis.providers.KotlinGlobalModificationService
|
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
|
import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModuleProjectStructure
|
||||||
|
|
||||||
abstract class AnalysisApiTestConfigurator {
|
abstract class AnalysisApiTestConfigurator {
|
||||||
@@ -36,7 +35,7 @@ abstract class AnalysisApiTestConfigurator {
|
|||||||
|
|
||||||
abstract val serviceRegistrars: List<AnalysisApiTestServiceRegistrar>
|
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) {
|
open fun doGlobalModuleStateModification(project: Project) {
|
||||||
KotlinGlobalModificationService.getInstance(project).publishGlobalModuleStateModification()
|
KotlinGlobalModificationService.getInstance(project).publishGlobalModuleStateModification()
|
||||||
|
|||||||
Reference in New Issue
Block a user