K2: add more accurate & more automatic control of diagnostic suppression

#KT-51363 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-07-20 16:46:23 +02:00
committed by Space
parent 179b267d9f
commit 9add6f3d55
21 changed files with 194 additions and 101 deletions
@@ -6,8 +6,6 @@
package org.jetbrains.kotlin.fir.pipeline
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
@@ -20,19 +18,6 @@ fun FirSession.runResolution(firFiles: List<FirFile>): Pair<ScopeSession, List<F
return resolveProcessor.scopeSession to firFiles
}
@OptIn(ExperimentalStdlibApi::class)
fun FirSession.runCheckers(scopeSession: ScopeSession, firFiles: List<FirFile>): Map<FirFile, List<KtDiagnostic>> {
val collector = FirDiagnosticsCollector.create(this, scopeSession)
return buildMap {
for (file in firFiles) {
val reporter = DiagnosticReporterFactory.createReporter()
collector.collectDiagnostics(file, reporter)
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) {