FIR IDE: add ModuleInfo for ide sessions as they are used for getting resolve components
This commit is contained in:
+3
-1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.sessions
|
|||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.java.deserialization.KotlinDeserializedJvmSymbolsProvider
|
import org.jetbrains.kotlin.fir.java.deserialization.KotlinDeserializedJvmSymbolsProvider
|
||||||
import org.jetbrains.kotlin.fir.registerCommonComponents
|
import org.jetbrains.kotlin.fir.registerCommonComponents
|
||||||
@@ -26,6 +27,7 @@ import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory
|
|||||||
* [org.jetbrains.kotlin.fir.FirSession] responsible for all libraries analysing module transitively depends on
|
* [org.jetbrains.kotlin.fir.FirSession] responsible for all libraries analysing module transitively depends on
|
||||||
*/
|
*/
|
||||||
internal class FirIdeLibrariesSession private constructor(
|
internal class FirIdeLibrariesSession private constructor(
|
||||||
|
override val moduleInfo: ModuleInfo,
|
||||||
sessionProvider: FirIdeSessionProvider,
|
sessionProvider: FirIdeSessionProvider,
|
||||||
override val scope: GlobalSearchScope
|
override val scope: GlobalSearchScope
|
||||||
) : FirIdeSession(sessionProvider) {
|
) : FirIdeSession(sessionProvider) {
|
||||||
@@ -43,7 +45,7 @@ internal class FirIdeLibrariesSession private constructor(
|
|||||||
val packagePartProvider = IDEPackagePartProvider(searchScope)
|
val packagePartProvider = IDEPackagePartProvider(searchScope)
|
||||||
|
|
||||||
val kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(searchScope)
|
val kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(searchScope)
|
||||||
return FirIdeLibrariesSession(sessionProvider, searchScope).apply {
|
return FirIdeLibrariesSession(moduleInfo, sessionProvider, searchScope).apply {
|
||||||
registerCommonComponents()
|
registerCommonComponents()
|
||||||
|
|
||||||
val javaSymbolProvider = JavaSymbolProvider(this, sessionProvider.project, searchScope)
|
val javaSymbolProvider = JavaSymbolProvider(this, sessionProvider.project, searchScope)
|
||||||
|
|||||||
+3
-1
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.sessions
|
|||||||
import com.intellij.openapi.module.impl.scopes.ModuleWithDependentsScope
|
import com.intellij.openapi.module.impl.scopes.ModuleWithDependentsScope
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.analysis.registerCheckersComponent
|
import org.jetbrains.kotlin.fir.analysis.registerCheckersComponent
|
||||||
import org.jetbrains.kotlin.fir.extensions.BunchOfRegisteredExtensions
|
import org.jetbrains.kotlin.fir.extensions.BunchOfRegisteredExtensions
|
||||||
@@ -36,6 +37,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.util.collectTransitiveDepende
|
|||||||
* [org.jetbrains.kotlin.fir.FirSession] responsible for all Kotlin & Java source modules analysing module transitively depends on
|
* [org.jetbrains.kotlin.fir.FirSession] responsible for all Kotlin & Java source modules analysing module transitively depends on
|
||||||
*/
|
*/
|
||||||
internal class FirIdeSourcesSession private constructor(
|
internal class FirIdeSourcesSession private constructor(
|
||||||
|
override val moduleInfo: ModuleInfo?,
|
||||||
sessionProvider: FirIdeSessionProvider,
|
sessionProvider: FirIdeSessionProvider,
|
||||||
override val scope: GlobalSearchScope,
|
override val scope: GlobalSearchScope,
|
||||||
val firFileBuilder: FirFileBuilder,
|
val firFileBuilder: FirFileBuilder,
|
||||||
@@ -57,7 +59,7 @@ internal class FirIdeSourcesSession private constructor(
|
|||||||
val firBuilder = FirFileBuilder(scopeProvider, firPhaseRunner)
|
val firBuilder = FirFileBuilder(scopeProvider, firPhaseRunner)
|
||||||
val dependentModules = moduleInfo.collectTransitiveDependenciesWithSelf().filterIsInstance<ModuleSourceInfo>()
|
val dependentModules = moduleInfo.collectTransitiveDependenciesWithSelf().filterIsInstance<ModuleSourceInfo>()
|
||||||
val searchScope = ModuleWithDependentsScope(project, dependentModules.map { it.module })
|
val searchScope = ModuleWithDependentsScope(project, dependentModules.map { it.module })
|
||||||
return FirIdeSourcesSession(sessionProvider, searchScope, firBuilder).apply {
|
return FirIdeSourcesSession(moduleInfo, sessionProvider, searchScope, firBuilder).apply {
|
||||||
val cache = ModuleFileCacheImpl(this)
|
val cache = ModuleFileCacheImpl(this)
|
||||||
val phasedFirFileResolver = IdePhasedFirFileResolver(firBuilder, cache)
|
val phasedFirFileResolver = IdePhasedFirFileResolver(firBuilder, cache)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user