[FIR] Get rid of FirSession.moduleInfo

This commit is contained in:
Dmitriy Novozhilov
2021-04-30 11:11:03 +03:00
committed by TeamCityServer
parent 57a8642f5a
commit f16194e60d
19 changed files with 65 additions and 77 deletions
@@ -5,10 +5,7 @@
package org.jetbrains.kotlin.fir
import org.jetbrains.kotlin.analyzer.ModuleInfo
@OptIn(PrivateSessionConstructor::class)
abstract class FirModuleBasedSession @PrivateSessionConstructor constructor(
override val moduleInfo: ModuleInfo,
sessionProvider: FirSessionProvider?
) : FirSession(sessionProvider)
@@ -5,10 +5,8 @@
package org.jetbrains.kotlin.fir.resolve.providers.impl
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.caches.*
import org.jetbrains.kotlin.fir.dependenciesWithoutSelf
import org.jetbrains.kotlin.fir.resolve.symbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
@@ -31,10 +29,10 @@ open class FirDependenciesSymbolProviderImpl(session: FirSession) : FirSymbolPro
protected open val dependencyProviders by lazy {
val moduleInfo = session.moduleInfo ?: return@lazy emptyList()
moduleInfo.dependenciesWithoutSelf().mapNotNull {
val moduleData = session.nullableModuleData ?: return@lazy emptyList()
moduleData.dependencies.mapNotNull {
session.sessionProvider?.getSession(it)?.symbolProvider
}.toList()
}
}
@OptIn(FirSymbolProviderInternals::class, ExperimentalStdlibApi::class)
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirImport
import org.jetbrains.kotlin.fir.declarations.FirResolvedImport
import org.jetbrains.kotlin.fir.declarations.builder.buildImport
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
@@ -24,7 +25,7 @@ class FirDefaultSimpleImportingScope(
override val simpleImports = run {
val importResolveTransformer = FirImportResolveTransformer(session)
val analyzerServices = session.moduleInfo?.analyzerServices
val analyzerServices = session.moduleData.analyzerServices
val allDefaultImports = priority.getAllDefaultImports(analyzerServices, LanguageVersionSettingsImpl.DEFAULT)
allDefaultImports
?.filter { !it.isAllUnder }
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.builder.buildImport
import org.jetbrains.kotlin.fir.declarations.builder.buildResolvedImport
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
@@ -20,10 +21,9 @@ class FirDefaultStarImportingScope(
filter: FirImportingScopeFilter,
priority: DefaultImportPriority
) : FirAbstractStarImportingScope(session, scopeSession, filter, lookupInFir = false) {
// TODO: put languageVersionSettings into FirSession?
override val starImports = run {
val analyzerServices = session.moduleInfo?.analyzerServices
val analyzerServices = session.moduleData.analyzerServices
val allDefaultImports = priority.getAllDefaultImports(analyzerServices, LanguageVersionSettingsImpl.DEFAULT)
allDefaultImports
?.filter { it.isAllUnder }