[FIR] Refactor session components initialization
From now all customization of session should perform via DSL which declared in FirSessionFactory. Registration or mutation session services from other places is prohibited
This commit is contained in:
+2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.sessions
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||
import org.jetbrains.kotlin.fir.SessionConfiguration
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.java.deserialization.KotlinDeserializedJvmSymbolsProvider
|
||||
@@ -34,6 +35,7 @@ internal class FirIdeLibrariesSession private constructor(
|
||||
override val scope: GlobalSearchScope
|
||||
) : FirIdeSession(moduleInfo, sessionProvider) {
|
||||
companion object {
|
||||
@OptIn(SessionConfiguration::class)
|
||||
fun create(
|
||||
moduleInfo: ModuleSourceInfo,
|
||||
sessionProvider: FirIdeSessionProvider,
|
||||
|
||||
+1
-2
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCompositeSymbolProvide
|
||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.PhasedFirFileResolver
|
||||
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.session.registerCheckersComponent
|
||||
import org.jetbrains.kotlin.fir.session.registerCommonComponents
|
||||
import org.jetbrains.kotlin.fir.session.registerJavaSpecificComponents
|
||||
import org.jetbrains.kotlin.fir.session.registerResolveComponents
|
||||
@@ -51,6 +50,7 @@ internal class FirIdeSourcesSession private constructor(
|
||||
/**
|
||||
* Should be invoked only under a [moduleInfo]-based lock
|
||||
*/
|
||||
@OptIn(SessionConfiguration::class)
|
||||
fun create(
|
||||
project: Project,
|
||||
moduleInfo: ModuleSourceInfo,
|
||||
@@ -68,7 +68,6 @@ internal class FirIdeSourcesSession private constructor(
|
||||
|
||||
registerCommonComponents()
|
||||
registerResolveComponents()
|
||||
registerCheckersComponent()
|
||||
|
||||
val provider = FirIdeProvider(
|
||||
project,
|
||||
|
||||
+1
-6
@@ -15,9 +15,6 @@ import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.dependenciesWithoutSelf
|
||||
import org.jetbrains.kotlin.fir.extensions.BunchOfRegisteredExtensions
|
||||
import org.jetbrains.kotlin.fir.extensions.extensionService
|
||||
import org.jetbrains.kotlin.fir.extensions.registerExtensions
|
||||
import org.jetbrains.kotlin.fir.java.*
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||
@@ -60,9 +57,7 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
|
||||
|
||||
private fun createSession(module: Module, provider: FirProjectSessionProvider): FirJavaModuleBasedSession {
|
||||
val moduleInfo = module.productionSourceInfo()!!
|
||||
return FirSessionFactory.createJavaModuleBasedSession(moduleInfo, provider, moduleInfo.contentScope()).also {
|
||||
it.extensionService.registerExtensions(BunchOfRegisteredExtensions.empty())
|
||||
}
|
||||
return FirSessionFactory.createJavaModuleBasedSession(moduleInfo, provider, moduleInfo.contentScope())
|
||||
}
|
||||
|
||||
private fun createLibrarySession(moduleInfo: IdeaModuleInfo, provider: FirProjectSessionProvider): FirLibrarySession {
|
||||
|
||||
Reference in New Issue
Block a user