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