[FIR] Add analyzer services to FirModuleData
This commit is contained in:
committed by
TeamCityServer
parent
92d6b39ffe
commit
57a8642f5a
+4
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo
|
|||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
|
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
|
||||||
|
|
||||||
class FirModuleInfoBasedModuleData(val moduleInfo: ModuleInfo) : FirModuleData() {
|
class FirModuleInfoBasedModuleData(val moduleInfo: ModuleInfo) : FirModuleData() {
|
||||||
override val name: Name
|
override val name: Name
|
||||||
@@ -27,6 +28,9 @@ class FirModuleInfoBasedModuleData(val moduleInfo: ModuleInfo) : FirModuleData()
|
|||||||
override val platform: TargetPlatform
|
override val platform: TargetPlatform
|
||||||
get() = moduleInfo.platform
|
get() = moduleInfo.platform
|
||||||
|
|
||||||
|
override val analyzerServices: PlatformDependentAnalyzerServices
|
||||||
|
get() = moduleInfo.analyzerServices
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
if (other !is FirModuleInfoBasedModuleData) return false
|
if (other !is FirModuleInfoBasedModuleData) return false
|
||||||
return moduleInfo == other.moduleInfo
|
return moduleInfo == other.moduleInfo
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
|
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
|
||||||
|
|
||||||
abstract class FirModuleData : FirSessionComponent {
|
abstract class FirModuleData : FirSessionComponent {
|
||||||
abstract val name: Name
|
abstract val name: Name
|
||||||
@@ -15,6 +16,10 @@ abstract class FirModuleData : FirSessionComponent {
|
|||||||
abstract val friendDependencies: List<FirModuleData>
|
abstract val friendDependencies: List<FirModuleData>
|
||||||
abstract val platform: TargetPlatform
|
abstract val platform: TargetPlatform
|
||||||
|
|
||||||
|
// TODO: analyzerServices are needed only as default imports providers
|
||||||
|
// refactor them to make API clearer
|
||||||
|
abstract val analyzerServices: PlatformDependentAnalyzerServices
|
||||||
|
|
||||||
private var _session: FirSession? = null
|
private var _session: FirSession? = null
|
||||||
val session: FirSession
|
val session: FirSession
|
||||||
get() = _session!!
|
get() = _session!!
|
||||||
@@ -32,7 +37,8 @@ class FirModuleDataImpl(
|
|||||||
override val dependencies: List<FirModuleData>,
|
override val dependencies: List<FirModuleData>,
|
||||||
override val dependsOnDependencies: List<FirModuleData>,
|
override val dependsOnDependencies: List<FirModuleData>,
|
||||||
override val friendDependencies: List<FirModuleData>,
|
override val friendDependencies: List<FirModuleData>,
|
||||||
override val platform: TargetPlatform
|
override val platform: TargetPlatform,
|
||||||
|
override val analyzerServices: PlatformDependentAnalyzerServices
|
||||||
) : FirModuleData()
|
) : FirModuleData()
|
||||||
|
|
||||||
val FirSession.moduleData: FirModuleData by FirSession.sessionComponentAccessor()
|
val FirSession.moduleData: FirModuleData by FirSession.sessionComponentAccessor()
|
||||||
|
|||||||
+3
-1
@@ -48,6 +48,7 @@ import org.jetbrains.kotlin.load.java.JavaClassFinderImpl
|
|||||||
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory
|
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||||
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
||||||
|
|
||||||
@OptIn(PrivateSessionConstructor::class, SessionConfiguration::class)
|
@OptIn(PrivateSessionConstructor::class, SessionConfiguration::class)
|
||||||
internal object FirIdeSessionFactory {
|
internal object FirIdeSessionFactory {
|
||||||
@@ -222,7 +223,8 @@ internal object FirIdeSessionFactory {
|
|||||||
emptyList(),
|
emptyList(),
|
||||||
emptyList(),
|
emptyList(),
|
||||||
emptyList(),
|
emptyList(),
|
||||||
JvmPlatforms.unspecifiedJvmPlatform
|
JvmPlatforms.unspecifiedJvmPlatform,
|
||||||
|
JvmPlatformAnalyzerServices
|
||||||
).apply {
|
).apply {
|
||||||
bindSession(this@session)
|
bindSession(this@session)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user