From 04fc2bde962d3c610f880c6c54d1643ecfad1ba3 Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Mon, 16 Jan 2023 22:14:56 +0100 Subject: [PATCH] [FIR] Extract resolveAndCheckFir to firUtils Use it in compilerPipeline and FirKotlinToJvmBytecodeCompiler --- .../cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt | 5 +---- .../cli/jvm/compiler/pipeline/compilerPipeline.kt | 4 +--- .../kotlin/fir/pipeline/{buildFir.kt => firUtils.kt} | 10 ++++++++++ 3 files changed, 12 insertions(+), 7 deletions(-) rename compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/{buildFir.kt => firUtils.kt} (86%) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt index 23f8d1808f6..5b4501341ee 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt @@ -299,10 +299,7 @@ object FirKotlinToJvmBytecodeCompiler { ktFiles: List, diagnosticsReporter: BaseDiagnosticsCollector ): ModuleCompilerAnalyzedOutput { - val rawFir = session.buildFirFromKtFiles(ktFiles) - val (scopeSession, fir) = session.runResolution(rawFir) - session.runCheckers(scopeSession, fir, diagnosticsReporter) - return ModuleCompilerAnalyzedOutput(session, scopeSession, fir) + return resolveAndCheckFir(session, session.buildFirFromKtFiles(ktFiles), diagnosticsReporter) } private fun CompilationContext.createComponentsForIncrementalCompilation( diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt index 2db7bf158b1..ccae4b0141a 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt @@ -420,9 +420,7 @@ private fun buildResolveAndCheckFir( countFilesAndLines: KFunction2? ): ModuleCompilerAnalyzedOutput { val firFiles = session.buildFirViaLightTree(ktFiles, diagnosticsReporter, countFilesAndLines) - val (scopeSession, fir) = session.runResolution(firFiles) - session.runCheckers(scopeSession, fir, diagnosticsReporter) - return ModuleCompilerAnalyzedOutput(session, scopeSession, fir) + return resolveAndCheckFir(session, firFiles, diagnosticsReporter) } fun writeOutputs( diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/buildFir.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/firUtils.kt similarity index 86% rename from compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/buildFir.kt rename to compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/firUtils.kt index 0f5697580ff..dbab252f3a7 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/buildFir.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/firUtils.kt @@ -52,3 +52,13 @@ fun FirSession.buildFirFromKtFiles(ktFiles: Collection): List { } } } + +fun resolveAndCheckFir( + session: FirSession, + firFiles: List, + diagnosticsReporter: DiagnosticReporter +): ModuleCompilerAnalyzedOutput { + val (scopeSession, fir) = session.runResolution(firFiles) + session.runCheckers(scopeSession, fir, diagnosticsReporter) + return ModuleCompilerAnalyzedOutput(session, scopeSession, fir) +} \ No newline at end of file