diff --git a/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt b/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt index 4fe91029615..784dbeaddf8 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt @@ -16,11 +16,11 @@ package org.jetbrains.kotlin.parcelize.fir.diagnostics -import org.jetbrains.kotlin.diagnostics.KtDiagnostic import org.jetbrains.kotlin.diagnostics.KtDiagnosticFactoryToRendererMap -import org.jetbrains.kotlin.diagnostics.KtDiagnosticRenderer +import org.jetbrains.kotlin.diagnostics.rendering.BaseDiagnosticRendererFactory import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_TYPE import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_CLASS_OR_OBJECT +import org.jetbrains.kotlin.fir.analysis.diagnostics.checkMissingMessages import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.CLASS_SHOULD_BE_PARCELIZE import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.CREATOR_DEFINITION_IS_NOT_ALLOWED import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.DEPRECATED_ANNOTATION @@ -46,13 +46,8 @@ import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.PARCELER import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.PROPERTY_WONT_BE_SERIALIZED import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.REDUNDANT_TYPE_PARCELER -object KtDefaultErrorMessagesParcelize { - fun getRendererForDiagnostic(diagnostic: KtDiagnostic): KtDiagnosticRenderer { - val factory = diagnostic.factory - return MAP[factory] ?: factory.ktRenderer - } - - val MAP = KtDiagnosticFactoryToRendererMap("Parcelize").also { map -> +object KtDefaultErrorMessagesParcelize : BaseDiagnosticRendererFactory() { + override val MAP = KtDiagnosticFactoryToRendererMap("Parcelize").also { map -> map.put( PARCELABLE_SHOULD_BE_CLASS, "'Parcelable' should be a class" @@ -176,5 +171,7 @@ object KtDefaultErrorMessagesParcelize { DEPRECATED_PARCELER, "'kotlinx.android.parcel.Parceler' is deprecated. Use 'kotlinx.parcelize.Parceler' instead" ) + + map.checkMissingMessages(KtErrorsParcelize) } } diff --git a/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtErrorsParcelize.kt b/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtErrorsParcelize.kt index e3b875c9960..0610ee4dbd9 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtErrorsParcelize.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtErrorsParcelize.kt @@ -22,10 +22,9 @@ import org.jetbrains.kotlin.diagnostics.SourceElementPositioningStrategies.DELEG import org.jetbrains.kotlin.diagnostics.SourceElementPositioningStrategies.INNER_MODIFIER import org.jetbrains.kotlin.diagnostics.SourceElementPositioningStrategies.NAME_IDENTIFIER import org.jetbrains.kotlin.diagnostics.SourceElementPositioningStrategies.OVERRIDE_MODIFIER +import org.jetbrains.kotlin.diagnostics.rendering.RootDiagnosticRendererFactory import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType -import org.jetbrains.kotlin.psi.KtClassOrObject object KtErrorsParcelize { val PARCELABLE_SHOULD_BE_CLASS by error0(NAME_IDENTIFIER) @@ -52,4 +51,8 @@ object KtErrorsParcelize { val DEPRECATED_PARCELER by error0() val INAPPLICABLE_IGNORED_ON_PARCEL by warning0() val INAPPLICABLE_IGNORED_ON_PARCEL_CONSTRUCTOR_PROPERTY by warning0() + + init { + RootDiagnosticRendererFactory.registerFactory(KtDefaultErrorMessagesParcelize) + } }