Optimize FirSession component storage

This commit is contained in:
Mikhail Glukhikh
2019-07-22 20:42:54 +03:00
parent 7529d557fe
commit c3a31dcdf5
5 changed files with 80 additions and 28 deletions
@@ -34,23 +34,20 @@ class FirJavaModuleBasedSession(
init {
sessionProvider.sessionCache[moduleInfo] = this
_firSymbolProvider = FirCompositeSymbolProvider(
listOf(
service<FirProvider>(),
JavaSymbolProvider(this, sessionProvider.project, scope),
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
)
)
registerComponent(
FirSymbolProvider::class,
_firSymbolProvider as FirSymbolProvider
FirCompositeSymbolProvider(
listOf(
service<FirProvider>(),
JavaSymbolProvider(this, sessionProvider.project, scope),
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
)
) as FirSymbolProvider
)
_correspondingSupertypesCache = FirCorrespondingSupertypesCache(this)
registerComponent(
FirCorrespondingSupertypesCache::class,
_correspondingSupertypesCache as FirCorrespondingSupertypesCache
FirCorrespondingSupertypesCache(this)
)
}
}
@@ -68,7 +65,9 @@ class FirLibrarySession private constructor(
init {
sessionProvider.sessionCache[moduleInfo] = this
val javaSymbolProvider = JavaSymbolProvider(this, sessionProvider.project, scope)
_firSymbolProvider =
registerComponent(
FirSymbolProvider::class,
FirCompositeSymbolProvider(
listOf(
FirLibrarySymbolProviderImpl(this),
@@ -82,18 +81,13 @@ class FirLibrarySession private constructor(
javaSymbolProvider,
FirDependenciesSymbolProviderImpl(this)
)
)
registerComponent(
FirSymbolProvider::class,
_firSymbolProvider as FirSymbolProvider
) as FirSymbolProvider
)
registerComponent(FirClassDeclaredMemberScopeProvider::class, FirClassDeclaredMemberScopeProvider())
_correspondingSupertypesCache = FirCorrespondingSupertypesCache(this)
registerComponent(
FirCorrespondingSupertypesCache::class,
_correspondingSupertypesCache as FirCorrespondingSupertypesCache
FirCorrespondingSupertypesCache(this)
)
}