From 4dfef6ba6f1f8c6acde05767d83841b127f8b605 Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Thu, 30 Mar 2023 13:32:07 +0200 Subject: [PATCH] [IR] Fix arguments of backend error messages #KT-57662 Fixed --- .../backend/common/CommonBackendErrors.kt | 20 ++++++++++++++----- .../common/actualizer/IrActualizerUtils.kt | 8 ++++++-- .../actualizer/MissingFakeOverridesAdder.kt | 3 ++- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendErrors.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendErrors.kt index 994fffd7142..9c898fa6565 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendErrors.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendErrors.kt @@ -8,15 +8,15 @@ package org.jetbrains.kotlin.backend.common import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.diagnostics.KtDiagnosticFactoryToRendererMap -import org.jetbrains.kotlin.diagnostics.error1 +import org.jetbrains.kotlin.diagnostics.error2 import org.jetbrains.kotlin.diagnostics.rendering.BaseDiagnosticRendererFactory import org.jetbrains.kotlin.diagnostics.rendering.CommonRenderers.STRING import org.jetbrains.kotlin.diagnostics.rendering.Renderers.MODULE_WITH_PLATFORM import org.jetbrains.kotlin.diagnostics.rendering.RootDiagnosticRendererFactory object CommonBackendErrors { - val NO_ACTUAL_FOR_EXPECT by error1() - val MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED by error1() + val NO_ACTUAL_FOR_EXPECT by error2() + val MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED by error2() init { RootDiagnosticRendererFactory.registerFactory(KtDefaultCommonBackendErrorMessages) @@ -25,7 +25,17 @@ object CommonBackendErrors { object KtDefaultCommonBackendErrorMessages : BaseDiagnosticRendererFactory() { override val MAP = KtDiagnosticFactoryToRendererMap("KT").also { map -> - map.put(CommonBackendErrors.NO_ACTUAL_FOR_EXPECT, "Expected {0} has no actual declaration in module {1}", MODULE_WITH_PLATFORM) - map.put(CommonBackendErrors.MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED, "{0} must override {1} because it inherits multiple interface methods of it", STRING) + map.put( + CommonBackendErrors.NO_ACTUAL_FOR_EXPECT, + "Expected {0} has no actual declaration in module {1}", + STRING, + MODULE_WITH_PLATFORM, + ) + map.put( + CommonBackendErrors.MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED, + "{0} must override {1} because it inherits multiple interface methods of it", + STRING, + STRING, + ) } } diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/IrActualizerUtils.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/IrActualizerUtils.kt index cc8e269bd66..743752019dc 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/IrActualizerUtils.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/IrActualizerUtils.kt @@ -150,11 +150,15 @@ private fun appendElementFullName( @OptIn(ObsoleteDescriptorBasedAPI::class) fun KtDiagnosticReporterWithImplicitIrBasedContext.reportMissingActual(irDeclaration: IrDeclaration) { - at(irDeclaration).report(CommonBackendErrors.NO_ACTUAL_FOR_EXPECT, irDeclaration.module) + at(irDeclaration).report( + CommonBackendErrors.NO_ACTUAL_FOR_EXPECT, + (irDeclaration as? IrDeclarationWithName)?.name?.asString().orEmpty(), + irDeclaration.module + ) } internal fun IrElement.containsOptionalExpectation(): Boolean { return this is IrClass && this.kind == ClassKind.ANNOTATION_CLASS && this.hasAnnotation(OptionalAnnotationUtil.OPTIONAL_EXPECTATION_FQ_NAME) -} \ No newline at end of file +} diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/MissingFakeOverridesAdder.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/MissingFakeOverridesAdder.kt index 4f657c0beb7..d1fa846fd39 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/MissingFakeOverridesAdder.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/MissingFakeOverridesAdder.kt @@ -89,6 +89,7 @@ class MissingFakeOverridesAdder( } else { diagnosticsReporter.at(declaration).report( CommonBackendErrors.MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED, + declaration.name.asString(), (actualMember as IrDeclarationWithName).name.asString() ) } @@ -141,4 +142,4 @@ private fun createFakeOverrideFunction( it.overriddenSymbols = listOf(actualFunction.symbol) it.attributeOwnerId = it it.correspondingPropertySymbol = correspondingPropertySymbol -} \ No newline at end of file +}