FIR checkers: use ScopeSession from resolve when possible
This commit is contained in:
+1
-1
@@ -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)
|
||||
}
|
||||
|
||||
+3
-2
@@ -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
|
||||
}
|
||||
|
||||
+6
-1
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user