[LL API] Adjust services required by LLFirBuiltinsSessionFactory

As 'initialiseVirtualFileFinderServices()' that is run during
test initialization collects transitive dependencies, all of them
must be ready. However, 'KtNotUnderContentRootModuleForTest' has a
built-in dependency provided by 'LLFirBuiltinsSessionFactory'.
This commit is contained in:
Yan Zhulanow
2023-01-24 17:56:04 +09:00
committed by Space Team
parent f199671c4d
commit f6f667c387
10 changed files with 38 additions and 13 deletions
@@ -32,12 +32,16 @@ object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() {
@OptIn(KtAnalysisApiInternals::class)
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
val allKtFiles = testServices.ktModuleProvider.getModuleStructure().mainModules.flatMap { it.files.filterIsInstance<KtFile>() }
project.apply {
registerService(KotlinModificationTrackerFactory::class.java, KotlinStaticModificationTrackerFactory::class.java)
registerService(KtDefaultLifetimeTokenProvider::class.java, KtReadActionConfinementDefaultLifetimeTokenProvider::class.java)
}
}
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
val allKtFiles = testServices.ktModuleProvider.getModuleStructure().mainModules.flatMap { it.files.filterIsInstance<KtFile>() }
project.apply {
registerService(KtModuleScopeProvider::class.java, KtModuleScopeProviderImpl())
registerService(KotlinAnnotationsResolverFactory::class.java, KotlinStaticAnnotationsResolverFactory(allKtFiles))
registerService(KotlinDeclarationProviderFactory::class.java, KotlinStaticDeclarationProviderFactory(project, allKtFiles))
@@ -30,6 +30,9 @@ object AnalysisApiLibraryBaseTestServiceRegistrar : AnalysisApiTestServiceRegist
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
}
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
application.apply {
registerService(ClsKotlinBinaryClassCache::class.java)