[FIR] Initialize extension service in all FIR tests
This commit is contained in:
+5
-1
@@ -33,7 +33,11 @@ abstract class FirExtensionRegistrar {
|
|||||||
|
|
||||||
class RegisteredExtensions(
|
class RegisteredExtensions(
|
||||||
val statusTransformerExtensions: List<FirStatusTransformerExtension.Factory>
|
val statusTransformerExtensions: List<FirStatusTransformerExtension.Factory>
|
||||||
)
|
) {
|
||||||
|
companion object {
|
||||||
|
val EMPTY = RegisteredExtensions(emptyList())
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirExtensionPointService.registerExtensions(extensions: FirExtensionRegistrar.RegisteredExtensions) {
|
fun FirExtensionPointService.registerExtensions(extensions: FirExtensionRegistrar.RegisteredExtensions) {
|
||||||
|
|||||||
+5
-1
@@ -28,7 +28,9 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
|||||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionPointService
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionPointService
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
import org.jetbrains.kotlin.fir.extensions.extensionPointService
|
import org.jetbrains.kotlin.fir.extensions.extensionPointService
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.registerExtensions
|
||||||
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
||||||
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
@@ -108,7 +110,9 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
|
|||||||
runAnalysis(testDataFile, files, firFilesPerSession)
|
runAnalysis(testDataFile, files, firFilesPerSession)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun registerFirExtensions(service: FirExtensionPointService) {}
|
open fun registerFirExtensions(service: FirExtensionPointService) {
|
||||||
|
service.registerExtensions(FirExtensionRegistrar.RegisteredExtensions.EMPTY)
|
||||||
|
}
|
||||||
|
|
||||||
private fun mapKtFilesToFirFiles(session: FirSession, ktFiles: List<KtFile>, firFiles: MutableList<FirFile>, useLightTree: Boolean) {
|
private fun mapKtFilesToFirFiles(session: FirSession, ktFiles: List<KtFile>, firFiles: MutableList<FirFile>, useLightTree: Boolean) {
|
||||||
val firProvider = (session.firProvider as FirProviderImpl)
|
val firProvider = (session.firProvider as FirProviderImpl)
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ package org.jetbrains.kotlin.fir
|
|||||||
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.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.extensionPointService
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.registerExtensions
|
||||||
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
||||||
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
@@ -32,6 +35,7 @@ fun createSession(
|
|||||||
val provider = FirProjectSessionProvider(project)
|
val provider = FirProjectSessionProvider(project)
|
||||||
return FirJavaModuleBasedSession(moduleInfo, provider, sourceScope).also {
|
return FirJavaModuleBasedSession(moduleInfo, provider, sourceScope).also {
|
||||||
createSessionForDependencies(project, provider, moduleInfo, librariesScope, packagePartProvider)
|
createSessionForDependencies(project, provider, moduleInfo, librariesScope, packagePartProvider)
|
||||||
|
it.extensionPointService.registerExtensions(FirExtensionRegistrar.RegisteredExtensions.EMPTY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ import org.jetbrains.kotlin.fir.FirSession
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnostic
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.extensionPointService
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.registerExtensions
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
|
||||||
@@ -31,11 +34,14 @@ interface FirModuleResolveState {
|
|||||||
fun getSession(project: Project, moduleInfo: ModuleSourceInfo): FirSession {
|
fun getSession(project: Project, moduleInfo: ModuleSourceInfo): FirSession {
|
||||||
sessionProvider.getSession(moduleInfo)?.let { return it }
|
sessionProvider.getSession(moduleInfo)?.let { return it }
|
||||||
return synchronized(moduleInfo.module) {
|
return synchronized(moduleInfo.module) {
|
||||||
sessionProvider.getSession(moduleInfo) ?: FirIdeJavaModuleBasedSession(
|
val session = sessionProvider.getSession(moduleInfo) ?: FirIdeJavaModuleBasedSession(
|
||||||
project, moduleInfo, sessionProvider, moduleInfo.contentScope()
|
project, moduleInfo, sessionProvider, moduleInfo.contentScope()
|
||||||
).also { moduleBasedSession ->
|
).also { moduleBasedSession ->
|
||||||
sessionProvider.sessionCache[moduleInfo] = moduleBasedSession
|
sessionProvider.sessionCache[moduleInfo] = moduleBasedSession
|
||||||
}
|
}
|
||||||
|
session.also {
|
||||||
|
it.extensionPointService.registerExtensions(FirExtensionRegistrar.RegisteredExtensions.EMPTY)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-1
@@ -16,6 +16,9 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
import org.jetbrains.kotlin.fir.dependenciesWithoutSelf
|
import org.jetbrains.kotlin.fir.dependenciesWithoutSelf
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.extensionPointService
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.registerExtensions
|
||||||
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
||||||
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
@@ -68,7 +71,9 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
|
|||||||
|
|
||||||
private fun createSession(module: Module, provider: FirProjectSessionProvider): FirJavaModuleBasedSession {
|
private fun createSession(module: Module, provider: FirProjectSessionProvider): FirJavaModuleBasedSession {
|
||||||
val moduleInfo = module.productionSourceInfo()!!
|
val moduleInfo = module.productionSourceInfo()!!
|
||||||
return FirJavaModuleBasedSession(moduleInfo, provider, moduleInfo.contentScope())
|
return FirJavaModuleBasedSession(moduleInfo, provider, moduleInfo.contentScope()).also {
|
||||||
|
it.extensionPointService.registerExtensions(FirExtensionRegistrar.RegisteredExtensions.EMPTY)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createLibrarySession(moduleInfo: IdeaModuleInfo, provider: FirProjectSessionProvider): FirLibrarySession {
|
private fun createLibrarySession(moduleInfo: IdeaModuleInfo, provider: FirProjectSessionProvider): FirLibrarySession {
|
||||||
|
|||||||
Reference in New Issue
Block a user