FIR checkers: use ScopeSession from resolve when possible
This commit is contained in:
+1
-1
@@ -21,7 +21,7 @@ class FirCheckersResolveProcessor(
|
|||||||
session: FirSession,
|
session: FirSession,
|
||||||
scopeSession: ScopeSession
|
scopeSession: ScopeSession
|
||||||
) : FirTransformerBasedResolveProcessor(session, scopeSession) {
|
) : FirTransformerBasedResolveProcessor(session, scopeSession) {
|
||||||
val diagnosticCollector = FirDiagnosticsCollector.create(session)
|
val diagnosticCollector = FirDiagnosticsCollector.create(session, scopeSession)
|
||||||
|
|
||||||
override val transformer: FirTransformer<Nothing?> = FirCheckersRunnerTransformer(diagnosticCollector)
|
override val transformer: FirTransformer<Nothing?> = FirCheckersRunnerTransformer(diagnosticCollector)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -6,10 +6,11 @@
|
|||||||
package org.jetbrains.kotlin.fir.analysis.collectors
|
package org.jetbrains.kotlin.fir.analysis.collectors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
|
|
||||||
object FirDiagnosticsCollector {
|
object FirDiagnosticsCollector {
|
||||||
fun create(session: FirSession): SimpleDiagnosticsCollector {
|
fun create(session: FirSession, scopeSession: ScopeSession = ScopeSession()): SimpleDiagnosticsCollector {
|
||||||
val collector = SimpleDiagnosticsCollector(session)
|
val collector = SimpleDiagnosticsCollector(session, scopeSession)
|
||||||
collector.registerAllComponents()
|
collector.registerAllComponents()
|
||||||
return collector
|
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.BaseDiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.impl.DiagnosticReporterWithSuppress
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.impl.DiagnosticReporterWithSuppress
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.impl.SimpleDiagnosticReporter
|
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()
|
override var reporter = createDiagnosticReporter()
|
||||||
private set
|
private set
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class FirAnalyzerFacade(
|
|||||||
fun runCheckers(): Map<FirFile, List<FirDiagnostic<*>>> {
|
fun runCheckers(): Map<FirFile, List<FirDiagnostic<*>>> {
|
||||||
if (_scopeSession == null) runResolution()
|
if (_scopeSession == null) runResolution()
|
||||||
if (collectedDiagnostics != null) return collectedDiagnostics!!
|
if (collectedDiagnostics != null) return collectedDiagnostics!!
|
||||||
val collector = FirDiagnosticsCollector.create(session)
|
val collector = FirDiagnosticsCollector.create(session, scopeSession)
|
||||||
collectedDiagnostics = buildMap {
|
collectedDiagnostics = buildMap {
|
||||||
for (file in firFiles!!) {
|
for (file in firFiles!!) {
|
||||||
put(file, collector.collectDiagnostics(file))
|
put(file, collector.collectDiagnostics(file))
|
||||||
|
|||||||
Reference in New Issue
Block a user