diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/services/SourceFileProvider.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/services/SourceFileProvider.kt index ef48dc9c500..a4224aa64b6 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/services/SourceFileProvider.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/services/SourceFileProvider.kt @@ -10,14 +10,10 @@ import com.intellij.openapi.vfs.StandardFileSystems import com.intellij.psi.PsiManager import org.jetbrains.kotlin.KtInMemoryTextSourceFile import org.jetbrains.kotlin.KtSourceFile -import org.jetbrains.kotlin.fir.lightTree.LightTreeParsingErrorListener -import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.sourceFiles.LightTreeFile import org.jetbrains.kotlin.test.model.TestFile import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.util.KtTestUtil -import org.jetbrains.kotlin.toSourceLinesMapping import java.io.File abstract class SourceFilePreprocessor(val testServices: TestServices) { @@ -112,26 +108,16 @@ fun SourceFileProvider.getKtFilesForSourceFiles(testFiles: Collection, }.toMap() } -fun SourceFileProvider.getLightTreeKtFileForSourceFile( - testFile: TestFile, - errorListener: (KtSourceFile) -> LightTreeParsingErrorListener? -): LightTreeFile { - val shortName = testFile.toLightTreeShortName() - val sourceFile = KtInMemoryTextSourceFile(shortName, "/$shortName", getContentOfSourceFile(testFile)) - val linesMapping = sourceFile.text.toSourceLinesMapping() - val lightTree = LightTree2Fir.buildLightTree(sourceFile.text, errorListener(sourceFile)) - return LightTreeFile(lightTree, sourceFile, linesMapping) -} - fun TestFile.toLightTreeShortName() = name.substringAfterLast('/').substringAfterLast('\\') -fun SourceFileProvider.getLightTreeFilesForSourceFiles( +fun SourceFileProvider.getKtSourceFilesForSourceFiles( testFiles: Collection, - errorListener: (KtSourceFile) -> LightTreeParsingErrorListener? -): Map { +): Map { return testFiles.mapNotNull { if (!it.isKtFile) return@mapNotNull null - it to getLightTreeKtFileForSourceFile(it, errorListener) + val shortName = it.toLightTreeShortName() + val ktSourceFile = KtInMemoryTextSourceFile(shortName, "/$shortName", getContentOfSourceFile(it)) + it to ktSourceFile }.toMap() } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt index c3355d847f0..973d77a5f37 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt @@ -28,7 +28,6 @@ import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider -import org.jetbrains.kotlin.fir.lightTree.toKotlinParsingErrorListener import org.jetbrains.kotlin.fir.session.FirCommonSessionFactory import org.jetbrains.kotlin.fir.session.FirJvmSessionFactory import org.jetbrains.kotlin.fir.session.FirNativeSessionFactory @@ -279,12 +278,7 @@ open class FirFrontendFacade( val (ktFiles, lightTreeFiles) = when (parser) { FirParser.LightTree -> { - emptyList() to testServices.sourceFileProvider.getLightTreeFilesForSourceFiles(module.files) { - testServices.lightTreeSyntaxDiagnosticsReporterHolder?.reporter?.toKotlinParsingErrorListener( - it, - module.languageVersionSettings - ) - }.values + emptyList() to testServices.sourceFileProvider.getKtSourceFilesForSourceFiles(module.files).values } FirParser.Psi -> testServices.sourceFileProvider.getKtFilesForSourceFiles(module.files, project).values to emptyList() } diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/fir/FirAnalyzerFacade.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/fir/FirAnalyzerFacade.kt index 947e39cb765..60a621de3f2 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/fir/FirAnalyzerFacade.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/fir/FirAnalyzerFacade.kt @@ -5,24 +5,18 @@ package org.jetbrains.kotlin.fir +import org.jetbrains.kotlin.KtSourceFile import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.diagnostics.KtDiagnostic import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.backend.jvm.FirJvmVisibilityConverter -import org.jetbrains.kotlin.fir.builder.PsiRawFirBuilder import org.jetbrains.kotlin.fir.declarations.FirFile -import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir -import org.jetbrains.kotlin.fir.pipeline.ModuleCompilerAnalyzedOutput -import org.jetbrains.kotlin.fir.pipeline.runCheckers -import org.jetbrains.kotlin.fir.pipeline.runResolution +import org.jetbrains.kotlin.fir.pipeline.* import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.providers.firProvider -import org.jetbrains.kotlin.fir.resolve.providers.impl.FirProviderImpl import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.sourceFiles.LightTreeFile import org.jetbrains.kotlin.test.FirParser abstract class AbstractFirAnalyzerFacade { @@ -42,7 +36,7 @@ class FirAnalyzerFacade( val session: FirSession, val fir2IrConfiguration: Fir2IrConfiguration, val ktFiles: Collection = emptyList(), // may be empty if light tree mode enabled - val lightTreeFiles: Collection = emptyList(), // may be empty if light tree mode disabled + val lightTreeFiles: Collection = emptyList(), // may be empty if light tree mode disabled val parser: FirParser, val diagnosticReporterForLightTree: DiagnosticReporter? = null ) : AbstractFirAnalyzerFacade() { @@ -55,24 +49,9 @@ class FirAnalyzerFacade( private fun buildRawFir() { if (firFiles != null) return - val firProvider = (session.firProvider as FirProviderImpl) firFiles = when (parser) { - FirParser.LightTree -> { - val builder = LightTree2Fir(session, firProvider.kotlinScopeProvider, diagnosticReporterForLightTree) - lightTreeFiles.map { - builder.buildFirFile(it.lightTree, it.sourceFile, it.linesMapping).also { firFile -> - firProvider.recordFile(firFile) - } - } - } - FirParser.Psi -> { - val builder = PsiRawFirBuilder(session, firProvider.kotlinScopeProvider) - ktFiles.map { - builder.buildFirFile(it).also { firFile -> - firProvider.recordFile(firFile) - } - } - } + FirParser.LightTree -> session.buildFirViaLightTree(lightTreeFiles, diagnosticReporterForLightTree) + FirParser.Psi -> session.buildFirFromKtFiles(ktFiles) } }