FIR IDE: do not read declaration phase without read lock hold

This commit is contained in:
Ilya Kirillov
2021-04-14 12:51:49 +02:00
committed by TeamCityServer
parent 0cf00d0f72
commit 0a80fbb078
6 changed files with 39 additions and 8 deletions
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCompositeSymbolProvider
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseCheckingPhaseManager
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseManager
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider
import org.jetbrains.kotlin.fir.session.*
@@ -170,6 +171,7 @@ internal object FirIdeSessionFactory {
val kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(searchScope)
FirIdeLibrariesSession(moduleInfo, project, searchScope, builtinTypes).apply {
registerIdeComponents()
register(FirPhaseManager::class, FirPhaseCheckingPhaseManager)
registerCommonComponents(languageVersionSettings)
registerJavaSpecificResolveComponents()
@@ -213,6 +215,7 @@ internal object FirIdeSessionFactory {
): FirIdeBuiltinsAndCloneableSession {
return FirIdeBuiltinsAndCloneableSession(project, builtinTypes).apply {
registerIdeComponents()
register(FirPhaseManager::class, FirPhaseCheckingPhaseManager)
registerCommonComponents(languageVersionSettings)
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped)