Prepare CLI reporting infrastructure for non-PSI diagnostics

This commit is contained in:
Ilya Chernikov
2021-10-04 12:22:03 +02:00
parent 5446168770
commit 1ce4075112
10 changed files with 182 additions and 28 deletions
@@ -5,10 +5,11 @@
package org.jetbrains.kotlin.fir.pipeline
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.analysis.collectors.FirDiagnosticsCollector
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.analysis.collectors.FirDiagnosticsCollector
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor
@@ -29,4 +30,12 @@ fun FirSession.runCheckers(scopeSession: ScopeSession, firFiles: List<FirFile>):
put(file, reporter.diagnostics)
}
}
}
}
@OptIn(ExperimentalStdlibApi::class)
fun FirSession.runCheckers(scopeSession: ScopeSession, firFiles: List<FirFile>, reporter: DiagnosticReporter) {
val collector = FirDiagnosticsCollector.create(this, scopeSession)
for (file in firFiles) {
collector.collectDiagnostics(file, reporter)
}
}