[LL API] Do not pass redundant 'project' instance to low-level sessions
This commit is contained in:
+1
-1
@@ -49,7 +49,7 @@ class LLFirBuiltinsSessionFactory(
|
||||
|
||||
private fun createBuiltinsAndCloneableSession(platform: TargetPlatform): LLFirBuiltinsAndCloneableSession {
|
||||
val builtinsModule = KtBuiltinsModule(platform, platform.getAnalyzerServices(), project)
|
||||
return LLFirBuiltinsAndCloneableSession(builtinsModule, project, builtInTypes).apply session@{
|
||||
return LLFirBuiltinsAndCloneableSession(builtinsModule, builtInTypes).apply session@{
|
||||
val moduleData = LLFirModuleData(builtinsModule).apply {
|
||||
bindSession(this@session)
|
||||
}
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ class LLFirLibrarySessionFactory(
|
||||
val platform = ktLibraryModule.platform
|
||||
val builtinsSession = LLFirBuiltinsSessionFactory.getInstance(project).getBuiltinsSession(platform)
|
||||
sessionsCache.putIfAbsent(builtinsSession.ktModule, builtinsSession)
|
||||
return LLFirLibrarySession(ktLibraryModule, project, builtinsSession.builtinTypes).apply session@{
|
||||
return LLFirLibrarySession(ktLibraryModule, builtinsSession.builtinTypes).apply session@{
|
||||
val moduleData = LLFirModuleData(ktLibraryModule).apply { bindSession(this@session) }
|
||||
registerModuleData(moduleData)
|
||||
registerIdeComponents(project)
|
||||
|
||||
+2
-4
@@ -5,13 +5,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||
|
||||
class LLFirBuiltinsAndCloneableSession @PrivateSessionConstructor constructor(
|
||||
override val ktModule: KtModule,
|
||||
project: Project,
|
||||
ktModule: KtModule,
|
||||
builtinTypes: BuiltinTypes,
|
||||
) : LLFirLibraryLikeSession(project, builtinTypes)
|
||||
) : LLFirLibraryLikeSession(ktModule, builtinTypes)
|
||||
+2
-4
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||
@@ -14,7 +13,6 @@ import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||
* [org.jetbrains.kotlin.fir.FirSession] responsible for all libraries analysing module transitively depends on
|
||||
*/
|
||||
internal class LLFirLibrarySession @PrivateSessionConstructor constructor(
|
||||
override val ktModule: KtModule,
|
||||
project: Project,
|
||||
ktModule: KtModule,
|
||||
builtinTypes: BuiltinTypes,
|
||||
) : LLFirLibraryLikeSession(project, builtinTypes)
|
||||
) : LLFirLibraryLikeSession(ktModule, builtinTypes)
|
||||
|
||||
+3
-3
@@ -5,15 +5,15 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.LLFirScopeSessionProvider
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
|
||||
abstract class LLFirLibraryLikeSession(
|
||||
final override val project: Project,
|
||||
ktModule: KtModule,
|
||||
builtinTypes: BuiltinTypes,
|
||||
) : LLFirSession(builtinTypes, Kind.Library) {
|
||||
) : LLFirSession(ktModule, builtinTypes, Kind.Library) {
|
||||
private val scopeSessionProvider = LLFirScopeSessionProvider.create(project, invalidationTrackers = emptyList())
|
||||
|
||||
override fun getScopeSession(): ScopeSession {
|
||||
|
||||
+2
-4
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtLibrarySourceModule
|
||||
@@ -13,11 +12,10 @@ import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
|
||||
internal class LLFirLibraryOrLibrarySourceResolvableModuleSession(
|
||||
override val ktModule: KtModule,
|
||||
override val project: Project,
|
||||
ktModule: KtModule,
|
||||
override val moduleComponents: LLFirModuleResolveComponents,
|
||||
builtinTypes: BuiltinTypes,
|
||||
) : LLFirResolvableModuleSession(builtinTypes) {
|
||||
) : LLFirResolvableModuleSession(ktModule, builtinTypes) {
|
||||
init {
|
||||
checkIsValidKtModule(ktModule)
|
||||
}
|
||||
|
||||
+2
-4
@@ -5,15 +5,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtNotUnderContentRootModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||
|
||||
internal class LLFirNonUnderContentRootResolvableModuleSession @PrivateSessionConstructor constructor(
|
||||
override val ktModule: KtNotUnderContentRootModule,
|
||||
override val project: Project,
|
||||
ktModule: KtNotUnderContentRootModule,
|
||||
override val moduleComponents: LLFirModuleResolveComponents,
|
||||
builtinTypes: BuiltinTypes,
|
||||
) : LLFirResolvableModuleSession(builtinTypes)
|
||||
) : LLFirResolvableModuleSession(ktModule, builtinTypes)
|
||||
|
||||
+4
-2
@@ -6,14 +6,16 @@
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
|
||||
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
import org.jetbrains.kotlin.fir.FirElementWithResolvePhase
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
|
||||
abstract class LLFirResolvableModuleSession(
|
||||
builtinTypes: BuiltinTypes,
|
||||
) : LLFirModuleSession(builtinTypes, Kind.Source) {
|
||||
ktModule: KtModule,
|
||||
builtinTypes: BuiltinTypes
|
||||
) : LLFirModuleSession(ktModule, builtinTypes, Kind.Source) {
|
||||
internal abstract val moduleComponents: LLFirModuleResolveComponents
|
||||
|
||||
final override fun getScopeSession(): ScopeSession {
|
||||
|
||||
+2
-4
@@ -5,15 +5,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtScriptModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||
|
||||
internal class LLFirScriptSession @PrivateSessionConstructor constructor(
|
||||
override val ktModule: KtScriptModule,
|
||||
override val project: Project,
|
||||
ktModule: KtScriptModule,
|
||||
override val moduleComponents: LLFirModuleResolveComponents,
|
||||
builtinTypes: BuiltinTypes
|
||||
) : LLFirResolvableModuleSession(builtinTypes)
|
||||
) : LLFirResolvableModuleSession(ktModule, builtinTypes)
|
||||
+12
-4
@@ -15,14 +15,22 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
|
||||
@OptIn(PrivateSessionConstructor::class)
|
||||
abstract class LLFirSession(override val builtinTypes: BuiltinTypes, kind: Kind) : FirSession(sessionProvider = null, kind) {
|
||||
abstract val project: Project
|
||||
abstract val ktModule: KtModule
|
||||
abstract class LLFirSession(
|
||||
val ktModule: KtModule,
|
||||
override val builtinTypes: BuiltinTypes,
|
||||
kind: Kind
|
||||
) : FirSession(sessionProvider = null, kind) {
|
||||
val project: Project
|
||||
get() = ktModule.project
|
||||
|
||||
abstract fun getScopeSession(): ScopeSession
|
||||
}
|
||||
|
||||
abstract class LLFirModuleSession(builtinTypes: BuiltinTypes, kind: Kind) : LLFirSession(builtinTypes, kind)
|
||||
abstract class LLFirModuleSession(
|
||||
ktModule: KtModule,
|
||||
builtinTypes: BuiltinTypes,
|
||||
kind: Kind
|
||||
) : LLFirSession(ktModule, builtinTypes, kind)
|
||||
|
||||
val FirElementWithResolvePhase.llFirSession: LLFirSession
|
||||
get() = moduleData.session as LLFirSession
|
||||
|
||||
+3
-4
@@ -67,7 +67,6 @@ internal object LLFirSessionFactory {
|
||||
val contentScope = module.contentScope
|
||||
val session = LLFirSourcesSession(
|
||||
module,
|
||||
project,
|
||||
components,
|
||||
builtinsSession.builtinTypes
|
||||
)
|
||||
@@ -169,7 +168,7 @@ internal object LLFirSessionFactory {
|
||||
val components = LLFirModuleResolveComponents(module, globalComponents, scopeProvider, sessionInvalidator)
|
||||
|
||||
val contentScope = module.contentScope
|
||||
val session = LLFirLibraryOrLibrarySourceResolvableModuleSession(module, project, components, builtinSession.builtinTypes)
|
||||
val session = LLFirLibraryOrLibrarySourceResolvableModuleSession(module, components, builtinSession.builtinTypes)
|
||||
sessionsCache[module] = session
|
||||
components.session = session
|
||||
|
||||
@@ -262,7 +261,7 @@ internal object LLFirSessionFactory {
|
||||
val components = LLFirModuleResolveComponents(module, globalResolveComponents, scopeProvider, sessionInvalidator)
|
||||
val contentScope = module.contentScope
|
||||
|
||||
val session = LLFirScriptSession(module, project, components, builtinsSession.builtinTypes)
|
||||
val session = LLFirScriptSession(module, components, builtinsSession.builtinTypes)
|
||||
sessionsCache[module] = session
|
||||
components.session = session
|
||||
|
||||
@@ -343,7 +342,7 @@ internal object LLFirSessionFactory {
|
||||
val components = LLFirModuleResolveComponents(module, globalResolveComponents, scopeProvider, sessionInvalidator)
|
||||
val contentScope = module.contentScope
|
||||
|
||||
val session = LLFirNonUnderContentRootResolvableModuleSession(module, project, components, builtinsSession.builtinTypes)
|
||||
val session = LLFirNonUnderContentRootResolvableModuleSession(module, components, builtinsSession.builtinTypes)
|
||||
sessionsCache[module] = session
|
||||
components.session = session
|
||||
|
||||
|
||||
+2
-6
@@ -5,17 +5,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtNotUnderContentRootModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||
|
||||
internal class LLFirSourcesSession @PrivateSessionConstructor constructor(
|
||||
override val ktModule: KtSourceModule,
|
||||
override val project: Project,
|
||||
ktModule: KtSourceModule,
|
||||
override val moduleComponents: LLFirModuleResolveComponents,
|
||||
builtinTypes: BuiltinTypes,
|
||||
) : LLFirResolvableModuleSession(builtinTypes)
|
||||
) : LLFirResolvableModuleSession(ktModule, builtinTypes)
|
||||
|
||||
Reference in New Issue
Block a user