[test] Run checkers in metadata-like style to see what diagnostics metadata compilation omits
Review: https://jetbrains.team/p/kt/reviews/14807 Technically, *.ll.kt should have been covering that. But I see that there slight differences
This commit is contained in:
+6
-3
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDiagnosticsForFile
|
||||
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
|
||||
import org.jetbrains.kotlin.fir.AbstractFirAnalyzerFacade
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.MppCheckerKind
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.pipeline.FirResult
|
||||
import org.jetbrains.kotlin.fir.pipeline.ModuleCompilerAnalyzedOutput
|
||||
@@ -20,8 +19,10 @@ import org.jetbrains.kotlin.fir.util.listMultimapOf
|
||||
import org.jetbrains.kotlin.fir.util.plusAssign
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.DiagnosticWithKmpCompilationMode
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.DiagnosticsMap
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticCollectorService
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.KmpCompilationMode
|
||||
import org.jetbrains.kotlin.test.model.TestFile
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
|
||||
@@ -60,11 +61,13 @@ open class LowLevelFirAnalyzerFacade(
|
||||
|
||||
class AnalysisApiFirDiagnosticCollectorService(testServices: TestServices) : FirDiagnosticCollectorService(testServices) {
|
||||
override fun getFrontendDiagnosticsForModule(info: FirOutputArtifact): DiagnosticsMap {
|
||||
val result = listMultimapOf<FirFile, KtDiagnostic>()
|
||||
val result = listMultimapOf<FirFile, DiagnosticWithKmpCompilationMode>()
|
||||
for (part in info.partsForDependsOnModules) {
|
||||
val facade = part.firAnalyzerFacade
|
||||
require(facade is LowLevelFirAnalyzerFacade)
|
||||
result += facade.runCheckers()
|
||||
result += facade.runCheckers().mapValues { entry ->
|
||||
entry.value.map { DiagnosticWithKmpCompilationMode(it, KmpCompilationMode.LOW_LEVEL_API) }
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user