Extract mutable diagnostic context to separate interface

This commit is contained in:
Ilya Chernikov
2021-09-28 11:07:32 +02:00
parent 9e60c70db7
commit 21ea92cd4a
3 changed files with 14 additions and 12 deletions
@@ -6,12 +6,12 @@
package org.jetbrains.kotlin.fir.analysis.checkers.context
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
import org.jetbrains.kotlin.diagnostics.MutableDiagnosticContext
import org.jetbrains.kotlin.diagnostics.Severity
import org.jetbrains.kotlin.fir.FirAnnotationContainer
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.diagnostics.DiagnosticContext
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.expressions.FirGetClassCall
import org.jetbrains.kotlin.fir.expressions.FirStatement
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.resolve.calls.ImplicitReceiverValue
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
import org.jetbrains.kotlin.name.Name
abstract class CheckerContext : DiagnosticContext {
abstract class CheckerContext : MutableDiagnosticContext() {
// Services
abstract val sessionHolder: SessionHolder
abstract val returnTypeCalculator: ReturnTypeCalculator
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector
fun DiagnosticReporter.reportOnWithSuppression(
element: FirAnnotationContainer,
factory: KtDiagnosticFactory0,
context: DiagnosticContext,
context: MutableDiagnosticContext,
positioningStrategy: SourceElementPositioningStrategy? = null
) {
withSuppressedDiagnostics(element, context) {
@@ -24,7 +24,7 @@ fun <A : Any> DiagnosticReporter.reportOnWithSuppression(
element: FirAnnotationContainer,
factory: KtDiagnosticFactory1<A>,
a: A,
context: DiagnosticContext,
context: MutableDiagnosticContext,
positioningStrategy: SourceElementPositioningStrategy? = null
) {
withSuppressedDiagnostics(element, context) {
@@ -37,7 +37,7 @@ fun <A : Any, B : Any> DiagnosticReporter.reportOnWithSuppression(
factory: KtDiagnosticFactory2<A, B>,
a: A,
b: B,
context: DiagnosticContext,
context: MutableDiagnosticContext,
positioningStrategy: SourceElementPositioningStrategy? = null
) {
withSuppressedDiagnostics(element, context) {
@@ -51,7 +51,7 @@ fun <A : Any, B : Any, C : Any> DiagnosticReporter.reportOnWithSuppression(
a: A,
b: B,
c: C,
context: DiagnosticContext,
context: MutableDiagnosticContext,
positioningStrategy: SourceElementPositioningStrategy? = null
) {
withSuppressedDiagnostics(element, context) {
@@ -66,7 +66,7 @@ fun <A : Any, B : Any, C : Any, D : Any> DiagnosticReporter.reportOnWithSuppress
b: B,
c: C,
d: D,
context: DiagnosticContext,
context: MutableDiagnosticContext,
positioningStrategy: SourceElementPositioningStrategy? = null
) {
withSuppressedDiagnostics(element, context) {
@@ -74,7 +74,7 @@ fun <A : Any, B : Any, C : Any, D : Any> DiagnosticReporter.reportOnWithSuppress
}
}
inline fun <reified C : DiagnosticContext> withSuppressedDiagnostics(
inline fun <reified C : MutableDiagnosticContext> withSuppressedDiagnostics(
annotationContainer: FirAnnotationContainer,
context: C,
f: (C) -> Unit
@@ -10,14 +10,16 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
interface DiagnosticContext {
fun isDiagnosticSuppressed(diagnostic: KtDiagnostic): Boolean
fun addSuppressedDiagnostics(
val languageVersionSettings: LanguageVersionSettings
}
abstract class MutableDiagnosticContext : DiagnosticContext {
abstract fun addSuppressedDiagnostics(
diagnosticNames: Collection<String>,
allInfosSuppressed: Boolean,
allWarningsSuppressed: Boolean,
allErrorsSuppressed: Boolean
): DiagnosticContext
val languageVersionSettings: LanguageVersionSettings
}
abstract class DiagnosticReporter {