[FIR] Add analyzer services to FirModuleData

This commit is contained in:
Dmitriy Novozhilov
2021-04-30 10:38:54 +03:00
committed by TeamCityServer
parent 92d6b39ffe
commit 57a8642f5a
3 changed files with 14 additions and 2 deletions
@@ -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()
@@ -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)
}