diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderer.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderer.kt index a440598e486..0a1869d27d6 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderer.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderer.kt @@ -7,13 +7,12 @@ package org.jetbrains.kotlin.fir.analysis.diagnostics import org.jetbrains.kotlin.diagnostics.rendering.* import org.jetbrains.kotlin.fir.FirSourceElement -import java.text.MessageFormat -sealed class FirDiagnosticRenderer> : DiagnosticRenderer { - abstract override fun render(diagnostic: D): String +interface FirDiagnosticRenderer> : DiagnosticRenderer { + override fun render(diagnostic: D): String } -class SimpleFirDiagnosticRenderer(private val message: String) : FirDiagnosticRenderer>() { +class SimpleFirDiagnosticRenderer(private val message: String) : FirDiagnosticRenderer> { override fun render(diagnostic: FirSimpleDiagnostic): String { return message } @@ -21,15 +20,7 @@ class SimpleFirDiagnosticRenderer(private val message: Str sealed class AbstractFirDiagnosticWithParametersRenderer>( protected val message: String -) : FirDiagnosticRenderer() { - private val messageFormat = MessageFormat(message) - - override fun render(diagnostic: D): String { - return messageFormat.format(renderParameters(diagnostic)) - } - - abstract fun renderParameters(diagnostic: D): Array -} +) : FirDiagnosticRenderer, AbstractDiagnosticWithParametersRenderer(message) class FirDiagnosticWithParameters1Renderer( message: String, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/diagnosticsWithParameterRenderers.kt b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/diagnosticsWithParameterRenderers.kt index 3dcac178b75..163207c7b84 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/diagnosticsWithParameterRenderers.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/diagnosticsWithParameterRenderers.kt @@ -23,8 +23,8 @@ import java.text.MessageFormat abstract class AbstractDiagnosticWithParametersRenderer protected constructor(message: String) : DiagnosticRenderer { private val messageFormat = MessageFormat(message) - override fun render(obj: D): String { - return messageFormat.format(renderParameters(obj)) + override fun render(diagnostic: D): String { + return messageFormat.format(renderParameters(diagnostic)) } abstract fun renderParameters(diagnostic: D): Array diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt index 5ee614c7114..9d71824715d 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt @@ -203,6 +203,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() { argument: () -> String, ): FirDiagnosticWithParameters1? { val sourceElement = element.source ?: return null + if (sourceElement.kind != FirRealSourceElementKind) return null val name = name ?: return null if (diagnosedRangesToDiagnosticNames[sourceElement.startOffset..sourceElement.endOffset]?.contains(name) != true) return null