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