[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.name.Name
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
|
||||
|
||||
class FirModuleInfoBasedModuleData(val moduleInfo: ModuleInfo) : FirModuleData() {
|
||||
override val name: Name
|
||||
@@ -27,6 +28,9 @@ class FirModuleInfoBasedModuleData(val moduleInfo: ModuleInfo) : FirModuleData()
|
||||
override val platform: TargetPlatform
|
||||
get() = moduleInfo.platform
|
||||
|
||||
override val analyzerServices: PlatformDependentAnalyzerServices
|
||||
get() = moduleInfo.analyzerServices
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is FirModuleInfoBasedModuleData) return false
|
||||
return moduleInfo == other.moduleInfo
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
|
||||
|
||||
abstract class FirModuleData : FirSessionComponent {
|
||||
abstract val name: Name
|
||||
@@ -15,6 +16,10 @@ abstract class FirModuleData : FirSessionComponent {
|
||||
abstract val friendDependencies: List<FirModuleData>
|
||||
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
|
||||
val session: FirSession
|
||||
get() = _session!!
|
||||
@@ -32,7 +37,8 @@ class FirModuleDataImpl(
|
||||
override val dependencies: List<FirModuleData>,
|
||||
override val dependsOnDependencies: List<FirModuleData>,
|
||||
override val friendDependencies: List<FirModuleData>,
|
||||
override val platform: TargetPlatform
|
||||
override val platform: TargetPlatform,
|
||||
override val analyzerServices: PlatformDependentAnalyzerServices
|
||||
) : FirModuleData()
|
||||
|
||||
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.name.Name
|
||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
||||
|
||||
@OptIn(PrivateSessionConstructor::class, SessionConfiguration::class)
|
||||
internal object FirIdeSessionFactory {
|
||||
@@ -222,7 +223,8 @@ internal object FirIdeSessionFactory {
|
||||
emptyList(),
|
||||
emptyList(),
|
||||
emptyList(),
|
||||
JvmPlatforms.unspecifiedJvmPlatform
|
||||
JvmPlatforms.unspecifiedJvmPlatform,
|
||||
JvmPlatformAnalyzerServices
|
||||
).apply {
|
||||
bindSession(this@session)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user