[FIR] Unify FirLibrarySession and FirJavaModuleBasedSession into single FirCliSession
This commit is contained in:
committed by
TeamCityServer
parent
f16194e60d
commit
24f1f7b7b2
@@ -77,8 +77,8 @@ object FirSessionFactory {
|
||||
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
|
||||
lookupTracker: LookupTracker? = null,
|
||||
init: FirSessionConfigurator.() -> Unit = {}
|
||||
): FirJavaModuleBasedSession {
|
||||
return FirJavaModuleBasedSession(sessionProvider).apply session@{
|
||||
): FirSession {
|
||||
return FirCliSession(sessionProvider, FirCliSession.Kind.Source).apply session@{
|
||||
val moduleData = FirModuleInfoBasedModuleData(moduleInfo).apply { bindSession(this@session) }
|
||||
registerModuleData(moduleData)
|
||||
registerCliCompilerOnlyComponents()
|
||||
@@ -136,8 +136,8 @@ object FirSessionFactory {
|
||||
project: Project,
|
||||
packagePartProvider: PackagePartProvider,
|
||||
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
|
||||
): FirLibrarySession {
|
||||
return FirLibrarySession(sessionProvider).apply session@{
|
||||
): FirSession {
|
||||
return FirCliSession(sessionProvider, FirCliSession.Kind.Library).apply session@{
|
||||
val moduleData = FirModuleInfoBasedModuleData(moduleInfo).apply { bindSession(this@session) }
|
||||
sessionProvider.registerSession(moduleData, this)
|
||||
registerCliCompilerOnlyComponents()
|
||||
|
||||
+9
-9
@@ -8,16 +8,16 @@ package org.jetbrains.kotlin.fir.java
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
|
||||
@OptIn(PrivateSessionConstructor::class)
|
||||
class FirJavaModuleBasedSession @PrivateSessionConstructor constructor(
|
||||
class FirCliSession @PrivateSessionConstructor constructor(
|
||||
sessionProvider: FirProjectSessionProvider,
|
||||
) : FirModuleBasedSession(sessionProvider)
|
||||
val kind: Kind // used for debug
|
||||
) : FirSession(sessionProvider) {
|
||||
enum class Kind {
|
||||
Source, Library
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(PrivateSessionConstructor::class)
|
||||
class FirLibrarySession @PrivateSessionConstructor constructor(
|
||||
sessionProvider: FirProjectSessionProvider
|
||||
) : FirSession(sessionProvider)
|
||||
|
||||
open class FirProjectSessionProvider : FirSessionProvider() {
|
||||
class FirProjectSessionProvider : FirSessionProvider() {
|
||||
override fun getSession(moduleData: FirModuleData): FirSession? {
|
||||
return sessionCache[moduleData]
|
||||
}
|
||||
@@ -26,5 +26,5 @@ open class FirProjectSessionProvider : FirSessionProvider() {
|
||||
sessionCache[moduleData] = session
|
||||
}
|
||||
|
||||
protected open val sessionCache: MutableMap<FirModuleData, FirSession> = mutableMapOf()
|
||||
private val sessionCache: MutableMap<FirModuleData, FirSession> = mutableMapOf()
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
@OptIn(PrivateSessionConstructor::class)
|
||||
abstract class FirModuleBasedSession @PrivateSessionConstructor constructor(
|
||||
sessionProvider: FirSessionProvider?
|
||||
) : FirSession(sessionProvider)
|
||||
Reference in New Issue
Block a user