[Test] Reuse runResolution and runCheckers from analyze.kt

This commit is contained in:
Ivan Kylchik
2023-07-14 16:00:38 +02:00
committed by Space Team
parent d4a7b7a1f6
commit 34f8228441
6 changed files with 29 additions and 26 deletions
@@ -5,7 +5,8 @@
package org.jetbrains.kotlin.fir.pipeline
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.analysis.collectors.FirDiagnosticsCollector
import org.jetbrains.kotlin.fir.declarations.FirFile
@@ -19,7 +20,11 @@ fun FirSession.runResolution(firFiles: List<FirFile>): Pair<ScopeSession, List<F
return resolveProcessor.scopeSession to firFiles
}
fun FirSession.runCheckers(scopeSession: ScopeSession, firFiles: List<FirFile>, reporter: DiagnosticReporter) {
fun FirSession.runCheckers(
scopeSession: ScopeSession,
firFiles: List<FirFile>,
reporter: BaseDiagnosticsCollector
): Map<FirFile, List<KtDiagnostic>> {
val collector = FirDiagnosticsCollector.create(this, scopeSession)
collector.collectDiagnosticsInSettings(reporter)
for (file in firFiles) {
@@ -27,4 +32,8 @@ fun FirSession.runCheckers(scopeSession: ScopeSession, firFiles: List<FirFile>,
collector.collectDiagnostics(file, reporter)
}
}
return firFiles.associateWith {
val path = it.sourceFile?.path ?: return@associateWith emptyList()
reporter.diagnosticsByFilePath[path] ?: emptyList()
}
}
@@ -66,7 +66,7 @@ fun buildResolveAndCheckFirFromKtFiles(
fun resolveAndCheckFir(
session: FirSession,
firFiles: List<FirFile>,
diagnosticsReporter: DiagnosticReporter
diagnosticsReporter: BaseDiagnosticsCollector
): ModuleCompilerAnalyzedOutput {
val (scopeSession, fir) = session.runResolution(firFiles)
session.runCheckers(scopeSession, fir, diagnosticsReporter)
@@ -76,7 +76,7 @@ fun resolveAndCheckFir(
fun buildResolveAndCheckFirViaLightTree(
session: FirSession,
ktFiles: Collection<KtSourceFile>,
diagnosticsReporter: DiagnosticReporter,
diagnosticsReporter: BaseDiagnosticsCollector,
countFilesAndLines: KFunction2<Int, Int, Unit>?
): ModuleCompilerAnalyzedOutput {
val firFiles = session.buildFirViaLightTree(ktFiles, diagnosticsReporter, countFilesAndLines)