From 7f8a8ca0990d0df5b73531a8ccffdb813aeb4dd7 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 24 Apr 2020 14:32:58 +0300 Subject: [PATCH] [FIR] Add ability to register extension points in diagnostic tests --- .../kotlin/fir/AbstractFirBaseDiagnosticsTest.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirBaseDiagnosticsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirBaseDiagnosticsTest.kt index 41d54798b0a..e01ea9ad400 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirBaseDiagnosticsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirBaseDiagnosticsTest.kt @@ -27,6 +27,8 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors 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.FirExtensionPointService +import org.jetbrains.kotlin.fir.extensions.extensionPointService import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession import org.jetbrains.kotlin.fir.java.FirLibrarySession import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider @@ -76,14 +78,18 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() { FirLibrarySession.create( builtInsModuleInfo, sessionProvider, allProjectScope, project, environment.createPackagePartProvider(allProjectScope) - ) + ).also { + registerFirExtensions(it.extensionPointService) + } val configToSession = modules.mapValues { (config, info) -> val moduleFiles = groupedByModule.getValue(config) val scope = TopDownAnalyzerFacadeForJVM.newModuleSearchScope( project, moduleFiles.mapNotNull { it.ktFile }) - FirJavaModuleBasedSession(info, sessionProvider, scope) + FirJavaModuleBasedSession(info, sessionProvider, scope).also { + registerFirExtensions(it.extensionPointService) + } } val firFilesPerSession = mutableMapOf>() @@ -102,6 +108,8 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() { runAnalysis(testDataFile, files, firFilesPerSession) } + open fun registerFirExtensions(service: FirExtensionPointService) {} + private fun mapKtFilesToFirFiles(session: FirSession, ktFiles: List, firFiles: MutableList, useLightTree: Boolean) { val firProvider = (session.firProvider as FirProviderImpl) if (useLightTree) {