[LL API] Unify cache for 'not-under content root' modules

Before, 'FirSession's for not-under content root modules were stored in
a project-global service, which essentially means that even if one
creates a non-cached 'LLFirResolveSession', 'FirSession's for such
modules will be cached and reused later. Such exact behavior happened in
sealed class inheritor pre-analysis handler.
This commit is contained in:
Yan Zhulanow
2023-01-16 18:03:59 +09:00
committed by Space Team
parent 7fb6fab517
commit 4c22afd1f3
7 changed files with 91 additions and 136 deletions
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.api.standalone;
import com.intellij.mock.MockProject;
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirResolveSessionService;
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirLibrarySessionFactory;
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirNonUnderContentRootSessionFactory;
class RegisterComponentService {
static void registerLLFirLibrarySessionFactory(MockProject project) {
@@ -18,13 +17,6 @@ class RegisterComponentService {
);
}
static void registerLLFirNonUnderContentRootSessionFactory(MockProject project) {
project.registerService(
LLFirNonUnderContentRootSessionFactory.class,
new LLFirNonUnderContentRootSessionFactory(project)
);
}
static void registerLLFirResolveSessionService(MockProject project) {
project.registerService(
LLFirResolveSessionService.class,
@@ -138,7 +138,6 @@ public class StandaloneAnalysisAPISessionBuilder(
)
registerService(LLFirBuiltinsSessionFactory::class.java, LLFirBuiltinsSessionFactory(this))
RegisterComponentService.registerLLFirLibrarySessionFactory(this)
RegisterComponentService.registerLLFirNonUnderContentRootSessionFactory(this)
registerService(KotlinReferenceProvidersService::class.java, HLApiReferenceProviderService::class.java)
registerService(KotlinReferenceProviderContributor::class.java, KotlinFirReferenceContributor::class.java)