提交 b6f1a442 编写于 作者: M Mikhail Glukhikh

FIR checkers: use ScopeSession from resolve when possible

上级 a26a195c
......@@ -21,7 +21,7 @@ class FirCheckersResolveProcessor(
session: FirSession,
scopeSession: ScopeSession
) : FirTransformerBasedResolveProcessor(session, scopeSession) {
val diagnosticCollector = FirDiagnosticsCollector.create(session)
val diagnosticCollector = FirDiagnosticsCollector.create(session, scopeSession)
override val transformer: FirTransformer<Nothing?> = FirCheckersRunnerTransformer(diagnosticCollector)
}
......
......@@ -6,10 +6,11 @@
package org.jetbrains.kotlin.fir.analysis.collectors
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.resolve.ScopeSession
object FirDiagnosticsCollector {
fun create(session: FirSession): SimpleDiagnosticsCollector {
val collector = SimpleDiagnosticsCollector(session)
fun create(session: FirSession, scopeSession: ScopeSession = ScopeSession()): SimpleDiagnosticsCollector {
val collector = SimpleDiagnosticsCollector(session, scopeSession)
collector.registerAllComponents()
return collector
}
......
......@@ -10,8 +10,13 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnostic
import org.jetbrains.kotlin.fir.analysis.diagnostics.impl.BaseDiagnosticReporter
import org.jetbrains.kotlin.fir.analysis.diagnostics.impl.DiagnosticReporterWithSuppress
import org.jetbrains.kotlin.fir.analysis.diagnostics.impl.SimpleDiagnosticReporter
import org.jetbrains.kotlin.fir.resolve.ScopeSession
class SimpleDiagnosticsCollector(session: FirSession, private val disableSuppress: Boolean = false) : AbstractDiagnosticCollector(session) {
class SimpleDiagnosticsCollector(
session: FirSession,
scopeSession: ScopeSession,
private val disableSuppress: Boolean = false
) : AbstractDiagnosticCollector(session, scopeSession) {
override var reporter = createDiagnosticReporter()
private set
......
......@@ -75,7 +75,7 @@ class FirAnalyzerFacade(
fun runCheckers(): Map<FirFile, List<FirDiagnostic<*>>> {
if (_scopeSession == null) runResolution()
if (collectedDiagnostics != null) return collectedDiagnostics!!
val collector = FirDiagnosticsCollector.create(session)
val collector = FirDiagnosticsCollector.create(session, scopeSession)
collectedDiagnostics = buildMap {
for (file in firFiles!!) {
put(file, collector.collectDiagnostics(file))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册