[FIR] Reimplement FirExtensionService

- Get rid of old FirExtensionsService
- Implement new FirExtensionService
- Remove duplicating code in FirExtensionRegistrar
This commit is contained in:
Dmitriy Novozhilov
2020-05-20 13:08:32 +03:00
parent 846db641be
commit 594a854b4e
16 changed files with 226 additions and 199 deletions
@@ -26,9 +26,8 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnostic
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.extensions.FirOldExtensionsService
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
import org.jetbrains.kotlin.fir.extensions.oldExtensionsService
import org.jetbrains.kotlin.fir.extensions.FirExtensionService
import org.jetbrains.kotlin.fir.extensions.extensionService
import org.jetbrains.kotlin.fir.extensions.registerExtensions
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
import org.jetbrains.kotlin.fir.java.FirLibrarySession
@@ -80,7 +79,7 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
builtInsModuleInfo, sessionProvider, allProjectScope, project,
environment.createPackagePartProvider(allProjectScope)
).also {
registerFirExtensions(it.oldExtensionsService)
registerFirExtensions(it.extensionService)
}
val configToSession = modules.mapValues { (config, info) ->
@@ -89,7 +88,7 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
project,
moduleFiles.mapNotNull { it.ktFile })
FirJavaModuleBasedSession(info, sessionProvider, scope).also {
registerFirExtensions(it.oldExtensionsService)
registerFirExtensions(it.extensionService)
}
}
@@ -109,8 +108,8 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
runAnalysis(testDataFile, files, firFilesPerSession)
}
open fun registerFirExtensions(service: FirOldExtensionsService) {
service.registerExtensions(FirExtensionRegistrar.RegisteredExtensions.EMPTY)
open fun registerFirExtensions(service: FirExtensionService) {
service.registerExtensions(emptyList())
}
private fun mapKtFilesToFirFiles(session: FirSession, ktFiles: List<KtFile>, firFiles: MutableList<FirFile>, useLightTree: Boolean) {
@@ -8,8 +8,7 @@ package org.jetbrains.kotlin.fir
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
import org.jetbrains.kotlin.fir.extensions.oldExtensionsService
import org.jetbrains.kotlin.fir.extensions.extensionService
import org.jetbrains.kotlin.fir.extensions.registerExtensions
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
import org.jetbrains.kotlin.fir.java.FirLibrarySession
@@ -35,7 +34,7 @@ fun createSession(
val provider = FirProjectSessionProvider(project)
return FirJavaModuleBasedSession(moduleInfo, provider, sourceScope).also {
createSessionForDependencies(project, provider, moduleInfo, librariesScope, packagePartProvider)
it.oldExtensionsService.registerExtensions(FirExtensionRegistrar.RegisteredExtensions.EMPTY)
it.extensionService.registerExtensions(emptyList())
}
}