FIR IDE: do not read declaration phase without read lock hold
This commit is contained in:
committed by
TeamCityServer
parent
0cf00d0f72
commit
0a80fbb078
@@ -26,6 +26,8 @@ import org.jetbrains.kotlin.fir.resolve.calls.jvm.JvmCallConflictResolverFactory
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.InferenceComponents
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirQualifierResolverImpl
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirTypeResolverImpl
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseCheckingPhaseManager
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseManager
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.plugin.GeneratedClassIndex
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirDeclaredMemberScopeProvider
|
||||
import org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache
|
||||
@@ -58,6 +60,10 @@ fun FirSession.registerSealedClassInheritorsProvider() {
|
||||
register(SealedClassInheritorsProvider::class, SealedClassInheritorsProviderImpl)
|
||||
}
|
||||
|
||||
@OptIn(SessionConfiguration::class)
|
||||
fun FirSession.registerFirCliPhaseManager() {
|
||||
register(FirPhaseManager::class, FirPhaseCheckingPhaseManager)
|
||||
}
|
||||
|
||||
|
||||
// -------------------------- Resolve components --------------------------
|
||||
|
||||
@@ -74,6 +74,7 @@ object FirSessionFactory {
|
||||
): FirJavaModuleBasedSession {
|
||||
return FirJavaModuleBasedSession(moduleInfo, sessionProvider).apply {
|
||||
registerThreadUnsafeCaches()
|
||||
registerFirCliPhaseManager()
|
||||
registerCommonComponents(languageVersionSettings)
|
||||
registerResolveComponents(lookupTracker)
|
||||
registerJavaSpecificResolveComponents()
|
||||
@@ -127,6 +128,7 @@ object FirSessionFactory {
|
||||
): FirLibrarySession {
|
||||
return FirLibrarySession(moduleInfo, sessionProvider).apply {
|
||||
registerThreadUnsafeCaches()
|
||||
registerFirCliPhaseManager()
|
||||
registerCommonComponents(languageVersionSettings)
|
||||
registerSealedClassInheritorsProvider()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user