K2: introduce infrastructure for LanguageVersionSettings checkers
This commit is contained in:
committed by
Space Team
parent
ba75ee4c03
commit
8c305d6143
@@ -19,12 +19,14 @@ fun FirSessionConfigurator.registerCommonCheckers() {
|
||||
useCheckers(CommonDeclarationCheckers)
|
||||
useCheckers(CommonExpressionCheckers)
|
||||
useCheckers(CommonTypeCheckers)
|
||||
useCheckers(CommonLanguageVersionSettingsCheckers)
|
||||
}
|
||||
|
||||
fun FirSessionConfigurator.registerExtendedCommonCheckers() {
|
||||
useCheckers(ExtendedExpressionCheckers)
|
||||
useCheckers(ExtendedDeclarationCheckers)
|
||||
useCheckers(ExtendedTypeCheckers)
|
||||
useCheckers(ExtendedLanguageVersionSettingsCheckers)
|
||||
}
|
||||
|
||||
fun FirSessionConfigurator.registerJvmCheckers() {
|
||||
|
||||
@@ -21,6 +21,7 @@ fun FirSession.runResolution(firFiles: List<FirFile>): Pair<ScopeSession, List<F
|
||||
|
||||
fun FirSession.runCheckers(scopeSession: ScopeSession, firFiles: List<FirFile>, reporter: DiagnosticReporter) {
|
||||
val collector = FirDiagnosticsCollector.create(this, scopeSession)
|
||||
collector.collectDiagnosticsInSettings(reporter)
|
||||
for (file in firFiles) {
|
||||
withFileAnalysisExceptionWrapping(file) {
|
||||
collector.collectDiagnostics(file, reporter)
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.session
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.SessionConfiguration
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.LanguageVersionSettingsCheckers
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.type.TypeCheckers
|
||||
@@ -36,6 +37,11 @@ class FirSessionConfigurator(private val session: FirSession) {
|
||||
session.checkersComponent.register(checkers)
|
||||
}
|
||||
|
||||
@OptIn(SessionConfiguration::class)
|
||||
fun useCheckers(checkers: LanguageVersionSettingsCheckers) {
|
||||
session.checkersComponent.register(checkers)
|
||||
}
|
||||
|
||||
@OptIn(PluginServicesInitialization::class)
|
||||
@SessionConfiguration
|
||||
fun configure() {
|
||||
|
||||
Reference in New Issue
Block a user