[FIR] Get rid of FirSessionProvider.project property
This commit is contained in:
+2
-2
@@ -320,7 +320,7 @@ object KotlinToJVMBytecodeCompiler {
|
|||||||
|
|
||||||
val scope = GlobalSearchScope.filesScope(project, ktFiles.map { it.virtualFile })
|
val scope = GlobalSearchScope.filesScope(project, ktFiles.map { it.virtualFile })
|
||||||
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
||||||
val provider = FirProjectSessionProvider(project)
|
val provider = FirProjectSessionProvider()
|
||||||
|
|
||||||
val librariesModuleInfo = FirJvmModuleInfo.createForLibraries()
|
val librariesModuleInfo = FirJvmModuleInfo.createForLibraries()
|
||||||
val librariesScope = ProjectScope.getLibrariesScope(project)
|
val librariesScope = ProjectScope.getLibrariesScope(project)
|
||||||
@@ -330,7 +330,7 @@ object KotlinToJVMBytecodeCompiler {
|
|||||||
)
|
)
|
||||||
|
|
||||||
val moduleInfo = FirJvmModuleInfo(module.getModuleName(), listOf(librariesModuleInfo))
|
val moduleInfo = FirJvmModuleInfo(module.getModuleName(), listOf(librariesModuleInfo))
|
||||||
val session = FirSessionFactory.createJavaModuleBasedSession(moduleInfo, provider, scope) {
|
val session = FirSessionFactory.createJavaModuleBasedSession(moduleInfo, provider, scope, project) {
|
||||||
if (extendedAnalysisMode) {
|
if (extendedAnalysisMode) {
|
||||||
registerExtendedCommonCheckers()
|
registerExtendedCommonCheckers()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ object FirSessionFactory {
|
|||||||
moduleInfo: ModuleInfo,
|
moduleInfo: ModuleInfo,
|
||||||
sessionProvider: FirProjectSessionProvider,
|
sessionProvider: FirProjectSessionProvider,
|
||||||
scope: GlobalSearchScope,
|
scope: GlobalSearchScope,
|
||||||
|
project: Project,
|
||||||
dependenciesProvider: FirSymbolProvider? = null,
|
dependenciesProvider: FirSymbolProvider? = null,
|
||||||
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
|
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
|
||||||
init: FirSessionConfigurator.() -> Unit = {}
|
init: FirSessionConfigurator.() -> Unit = {}
|
||||||
@@ -82,7 +83,7 @@ object FirSessionFactory {
|
|||||||
this,
|
this,
|
||||||
listOf(
|
listOf(
|
||||||
firProvider.symbolProvider,
|
firProvider.symbolProvider,
|
||||||
JavaSymbolProvider(this, sessionProvider.project, scope),
|
JavaSymbolProvider(this, project, scope),
|
||||||
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
|
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
|
||||||
)
|
)
|
||||||
) as FirSymbolProvider
|
) as FirSymbolProvider
|
||||||
@@ -93,8 +94,7 @@ object FirSessionFactory {
|
|||||||
init()
|
init()
|
||||||
}.configure()
|
}.configure()
|
||||||
|
|
||||||
PsiElementFinder.EP.getPoint(sessionProvider.project)
|
PsiElementFinder.EP.getPoint(project).registerExtension(FirJavaElementFinder(this, project), project)
|
||||||
.registerExtension(FirJavaElementFinder(this, sessionProvider.project), sessionProvider.project)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ object FirSessionFactory {
|
|||||||
return FirLibrarySession(moduleInfo, sessionProvider).apply {
|
return FirLibrarySession(moduleInfo, sessionProvider).apply {
|
||||||
registerCommonComponents(languageVersionSettings)
|
registerCommonComponents(languageVersionSettings)
|
||||||
|
|
||||||
val javaSymbolProvider = JavaSymbolProvider(this, sessionProvider.project, scope)
|
val javaSymbolProvider = JavaSymbolProvider(this, project, scope)
|
||||||
|
|
||||||
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped)
|
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped)
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ object FirSessionFactory {
|
|||||||
this,
|
this,
|
||||||
listOf(
|
listOf(
|
||||||
KotlinDeserializedJvmSymbolsProvider(
|
KotlinDeserializedJvmSymbolsProvider(
|
||||||
this, sessionProvider.project,
|
this, project,
|
||||||
packagePartProvider,
|
packagePartProvider,
|
||||||
javaSymbolProvider,
|
javaSymbolProvider,
|
||||||
kotlinClassFinder,
|
kotlinClassFinder,
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class FirLibrarySession @PrivateSessionConstructor constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class FirProjectSessionProvider(override val project: Project) : FirSessionProvider {
|
open class FirProjectSessionProvider : FirSessionProvider {
|
||||||
override fun getSession(moduleInfo: ModuleInfo): FirSession? {
|
override fun getSession(moduleInfo: ModuleInfo): FirSession? {
|
||||||
return sessionCache[moduleInfo]
|
return sessionCache[moduleInfo]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir
|
package org.jetbrains.kotlin.fir
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
|
||||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.kotlin.fir.types.impl.*
|
import org.jetbrains.kotlin.fir.types.impl.*
|
||||||
import org.jetbrains.kotlin.fir.utils.ArrayMapAccessor
|
import org.jetbrains.kotlin.fir.utils.ArrayMapAccessor
|
||||||
@@ -13,7 +12,6 @@ import org.jetbrains.kotlin.fir.utils.ComponentArrayOwner
|
|||||||
import org.jetbrains.kotlin.fir.utils.NullableArrayMapAccessor
|
import org.jetbrains.kotlin.fir.utils.NullableArrayMapAccessor
|
||||||
import org.jetbrains.kotlin.fir.utils.TypeRegistry
|
import org.jetbrains.kotlin.fir.utils.TypeRegistry
|
||||||
import org.jetbrains.kotlin.utils.JavaTypeEnhancementState
|
import org.jetbrains.kotlin.utils.JavaTypeEnhancementState
|
||||||
import kotlin.properties.ReadOnlyProperty
|
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
interface FirSessionComponent
|
interface FirSessionComponent
|
||||||
@@ -44,8 +42,6 @@ abstract class FirSession @PrivateSessionConstructor constructor(val sessionProv
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface FirSessionProvider {
|
interface FirSessionProvider {
|
||||||
val project: Project
|
|
||||||
|
|
||||||
fun getSession(moduleInfo: ModuleInfo): FirSession?
|
fun getSession(moduleInfo: ModuleInfo): FirSession?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -69,7 +69,7 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
|
|||||||
|
|
||||||
val modules = createModules(groupedByModule)
|
val modules = createModules(groupedByModule)
|
||||||
|
|
||||||
val sessionProvider = FirProjectSessionProvider(project)
|
val sessionProvider = FirProjectSessionProvider()
|
||||||
|
|
||||||
//For BuiltIns, registered in sessionProvider automatically
|
//For BuiltIns, registered in sessionProvider automatically
|
||||||
val allProjectScope = GlobalSearchScope.allScope(project)
|
val allProjectScope = GlobalSearchScope.allScope(project)
|
||||||
@@ -84,7 +84,7 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
|
|||||||
val scope = TopDownAnalyzerFacadeForJVM.newModuleSearchScope(
|
val scope = TopDownAnalyzerFacadeForJVM.newModuleSearchScope(
|
||||||
project,
|
project,
|
||||||
moduleFiles.mapNotNull { it.ktFile })
|
moduleFiles.mapNotNull { it.ktFile })
|
||||||
FirSessionFactory.createJavaModuleBasedSession(info, sessionProvider, scope) {
|
FirSessionFactory.createJavaModuleBasedSession(info, sessionProvider, scope, project) {
|
||||||
configureSession()
|
configureSession()
|
||||||
getFirExtensions()?.let {
|
getFirExtensions()?.let {
|
||||||
registerExtensions(it)
|
registerExtensions(it)
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ fun createSession(
|
|||||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider
|
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider
|
||||||
): FirSession {
|
): FirSession {
|
||||||
val moduleInfo = FirTestModuleInfo(name = Name.identifier(moduleName))
|
val moduleInfo = FirTestModuleInfo(name = Name.identifier(moduleName))
|
||||||
val provider = FirProjectSessionProvider(project)
|
val provider = FirProjectSessionProvider()
|
||||||
return FirSessionFactory.createJavaModuleBasedSession(moduleInfo, provider, sourceScope).also {
|
return FirSessionFactory.createJavaModuleBasedSession(moduleInfo, provider, sourceScope, project).also {
|
||||||
createSessionForDependencies(project, provider, moduleInfo, librariesScope, packagePartProvider)
|
createSessionForDependencies(project, provider, moduleInfo, librariesScope, packagePartProvider)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
|
|||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
class FirIdeSessionProvider internal constructor(
|
class FirIdeSessionProvider internal constructor(
|
||||||
override val project: Project,
|
val project: Project,
|
||||||
internal val rootModuleSession: FirIdeSourcesSession,
|
internal val rootModuleSession: FirIdeSourcesSession,
|
||||||
val sessions: Map<ModuleSourceInfo, FirIdeSession>
|
val sessions: Map<ModuleSourceInfo, FirIdeSession>
|
||||||
) : FirSessionProvider {
|
) : FirSessionProvider {
|
||||||
|
|||||||
+2
-2
@@ -57,7 +57,7 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
|
|||||||
|
|
||||||
private fun createSession(module: Module, provider: FirProjectSessionProvider): FirJavaModuleBasedSession {
|
private fun createSession(module: Module, provider: FirProjectSessionProvider): FirJavaModuleBasedSession {
|
||||||
val moduleInfo = module.productionSourceInfo()!!
|
val moduleInfo = module.productionSourceInfo()!!
|
||||||
return FirSessionFactory.createJavaModuleBasedSession(moduleInfo, provider, moduleInfo.contentScope())
|
return FirSessionFactory.createJavaModuleBasedSession(moduleInfo, provider, moduleInfo.contentScope(), project)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createLibrarySession(moduleInfo: IdeaModuleInfo, provider: FirProjectSessionProvider): FirLibrarySession {
|
private fun createLibrarySession(moduleInfo: IdeaModuleInfo, provider: FirProjectSessionProvider): FirLibrarySession {
|
||||||
@@ -69,7 +69,7 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
|
|||||||
val firFilesPerSession = mutableMapOf<FirJavaModuleBasedSession, List<FirFile>>()
|
val firFilesPerSession = mutableMapOf<FirJavaModuleBasedSession, List<FirFile>>()
|
||||||
val processorsPerSession = mutableMapOf<FirJavaModuleBasedSession, List<FirTransformerBasedResolveProcessor>>()
|
val processorsPerSession = mutableMapOf<FirJavaModuleBasedSession, List<FirTransformerBasedResolveProcessor>>()
|
||||||
val sessions = mutableListOf<FirJavaModuleBasedSession>()
|
val sessions = mutableListOf<FirJavaModuleBasedSession>()
|
||||||
val provider = FirProjectSessionProvider(project)
|
val provider = FirProjectSessionProvider()
|
||||||
for (module in project.allModules().drop(1)) {
|
for (module in project.allModules().drop(1)) {
|
||||||
val session = createSession(module, provider)
|
val session = createSession(module, provider)
|
||||||
sessions += session
|
sessions += session
|
||||||
|
|||||||
Reference in New Issue
Block a user