diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt index 620635424bd..9b59ab87faf 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt @@ -131,7 +131,7 @@ object FirSessionFactory { lookupTracker: LookupTracker? = null, init: FirSessionConfigurator.() -> Unit = {} ): FirSession { - return FirCliSession(sessionProvider, FirCliSession.Kind.Source).apply session@{ + return FirCliSession(sessionProvider, FirSession.Kind.Source).apply session@{ moduleData.bindSession(this@session) sessionProvider.registerSession(moduleData, this@session) registerModuleData(moduleData) @@ -197,7 +197,7 @@ object FirSessionFactory { packagePartProvider: PackagePartProvider, languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT, ): FirSession { - return FirCliSession(sessionProvider, FirCliSession.Kind.Library).apply session@{ + return FirCliSession(sessionProvider, FirSession.Kind.Library).apply session@{ moduleDataProvider.allModuleData.forEach { sessionProvider.registerSession(it, this) it.bindSession(this) @@ -271,7 +271,7 @@ object FirSessionFactory { @TestOnly fun createEmptySession(): FirSession { - return object : FirSession(null) {}.apply { + return object : FirSession(null, Kind.Source) {}.apply { val moduleData = FirModuleDataImpl( Name.identifier(""), dependencies = emptyList(), diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirCliSession.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirCliSession.kt index 4d392d87119..55093ac163a 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirCliSession.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirCliSession.kt @@ -10,12 +10,8 @@ import org.jetbrains.kotlin.fir.* @OptIn(PrivateSessionConstructor::class) class FirCliSession @PrivateSessionConstructor constructor( sessionProvider: FirProjectSessionProvider, - val kind: Kind // used for debug -) : FirSession(sessionProvider) { - enum class Kind { - Source, Library - } -} + kind: Kind +) : FirSession(sessionProvider, kind) class FirProjectSessionProvider : FirSessionProvider() { override fun getSession(moduleData: FirModuleData): FirSession? { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt index 7ec65a7c2b9..bf196a01e23 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt @@ -15,7 +15,8 @@ import kotlin.reflect.KClass interface FirSessionComponent abstract class FirSession @PrivateSessionConstructor constructor( - val sessionProvider: FirSessionProvider? + val sessionProvider: FirSessionProvider?, + val kind: Kind ) : ComponentArrayOwner() { companion object : TypeRegistry() { inline fun sessionComponentAccessor(): ArrayMapAccessor { @@ -40,6 +41,10 @@ abstract class FirSession @PrivateSessionConstructor constructor( val moduleData = nullableModuleData ?: return "Libraries session" return "Source session for module ${moduleData.name}" } + + enum class Kind { + Source, Library + } } abstract class FirSessionProvider { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeBuiltinsAndCloneableSession.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeBuiltinsAndCloneableSession.kt index 59f679eaab9..e03ffa05da5 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeBuiltinsAndCloneableSession.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeBuiltinsAndCloneableSession.kt @@ -13,4 +13,4 @@ import org.jetbrains.kotlin.fir.PrivateSessionConstructor class FirIdeBuiltinsAndCloneableSession @PrivateSessionConstructor constructor( override val project: Project, builtinTypes: BuiltinTypes, -) : FirIdeSession(builtinTypes) \ No newline at end of file +) : FirIdeSession(builtinTypes, Kind.Library) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeLibrarySession.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeLibrarySession.kt index 8d67f3ba8f2..f4c036af4b5 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeLibrarySession.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeLibrarySession.kt @@ -19,4 +19,4 @@ internal class FirIdeLibrariesSession @PrivateSessionConstructor constructor( override val project: Project, override val scope: GlobalSearchScope, builtinTypes: BuiltinTypes, -) : FirIdeModuleSession(builtinTypes) +) : FirIdeModuleSession(builtinTypes, Kind.Library) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSession.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSession.kt index 503f2de9430..2e65e7999e8 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSession.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSession.kt @@ -12,11 +12,11 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.PrivateSessionConstructor @OptIn(PrivateSessionConstructor::class) -abstract class FirIdeSession(override val builtinTypes: BuiltinTypes) : FirSession(sessionProvider = null) { +abstract class FirIdeSession(override val builtinTypes: BuiltinTypes, kind: Kind) : FirSession(sessionProvider = null, kind) { abstract val project: Project } @OptIn(PrivateSessionConstructor::class) -abstract class FirIdeModuleSession(builtinTypes: BuiltinTypes) : FirIdeSession(builtinTypes) { +abstract class FirIdeModuleSession(builtinTypes: BuiltinTypes, kind: Kind) : FirIdeSession(builtinTypes, kind) { abstract val scope: GlobalSearchScope } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt index 1381bdc8a44..74558211b3e 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt @@ -268,7 +268,7 @@ internal object FirIdeSessionFactory { ) @OptIn(PrivateSessionConstructor::class) fun createEmptySession(): FirSession { - return object : FirSession(null) {}.apply { + return object : FirSession(null, Kind.Source) {}.apply { val moduleData = FirModuleDataImpl( Name.identifier(""), dependencies = emptyList(), diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSourcesSession.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSourcesSession.kt index d20a2b4f5a2..e4469437627 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSourcesSession.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSourcesSession.kt @@ -20,7 +20,7 @@ internal class FirIdeSourcesSession @PrivateSessionConstructor constructor( override val scope: GlobalSearchScope, val firFileBuilder: FirFileBuilder, builtinTypes: BuiltinTypes, -) : FirIdeModuleSession( builtinTypes) { +) : FirIdeModuleSession(builtinTypes, Kind.Source) { val cache get() = firIdeProvider.cache }