diff --git a/compiler/fir/analysis-tests/testData/resolve/enum.fir.diag.txt b/compiler/fir/analysis-tests/testData/resolve/enum.fir.diag.txt index ce766e69ef6..b5e025bab39 100644 --- a/compiler/fir/analysis-tests/testData/resolve/enum.fir.diag.txt +++ b/compiler/fir/analysis-tests/testData/resolve/enum.fir.diag.txt @@ -1,3 +1,3 @@ -/enum.kt:(506,508): error: 'static enum entry E2: EnumClass = object : EnumClass' does not implement abstract members: [fun foo(): Int, val bar: String]. +/enum.kt:(506,508): error: Enum entry 'EnumClass.E2' does not implement abstract members: [fun foo(): Int, val bar: String]. -/enum.kt:(524,526): error: 'static enum entry E3: EnumClass = object : EnumClass' does not implement abstract members: [fun foo(): Int, val bar: String]. +/enum.kt:(524,526): error: Enum entry 'EnumClass.E3' does not implement abstract members: [fun foo(): Int, val bar: String]. diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt index 7cc36bb5ddd..e209db3b50d 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt @@ -109,7 +109,15 @@ object FirDiagnosticRenderers { ClassKind.INTERFACE -> "Interface" else -> "Class" } - "$classOrObject $name" + "$classOrObject '$name'" + } + + val RENDER_ENUM_ENTRY = Renderer { enumEntry: FirEnumEntrySymbol -> + var name = enumEntry.callableId.callableName.asString() + enumEntry.callableId.classId?.let { + name = "${it.shortClassName.asString()}.$name" + } + "Enum entry '$name'" } val RENDER_CLASS_OR_OBJECT_NAME = Renderer { firClassLike: FirClassLikeSymbol<*> -> diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt index 81cff9c7911..3a10c9030ee 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt @@ -36,6 +36,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.OPTI import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_CLASS_OR_OBJECT import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_CLASS_OR_OBJECT_NAME import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_COLLECTION_OF_TYPES +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_ENUM_ENTRY import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_TYPE import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.REQUIRE_KOTLIN_VERSION import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.SYMBOL @@ -1600,19 +1601,19 @@ object FirErrorsDefaultMessages : BaseDiagnosticRendererFactory() { map.put( ABSTRACT_MEMBER_NOT_IMPLEMENTED, - "''{0}'' is not abstract and does not implement abstract member ''{1}''.", + "{0} is not abstract and does not implement abstract member ''{1}''.", RENDER_CLASS_OR_OBJECT, DECLARATION_NAME ) map.put( ABSTRACT_MEMBER_NOT_IMPLEMENTED_BY_ENUM_ENTRY, - "''{0}'' does not implement abstract members: {1}.", - SYMBOL, + "{0} does not implement abstract members: {1}.", + RENDER_ENUM_ENTRY, SYMBOLS, ) map.put( ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED, - "''{0}'' is not abstract and does not implement abstract base class member ''{1}''.", + "{0} is not abstract and does not implement abstract base class member ''{1}''.", RENDER_CLASS_OR_OBJECT, DECLARATION_NAME ) @@ -1625,13 +1626,13 @@ object FirErrorsDefaultMessages : BaseDiagnosticRendererFactory() { map.put(AMBIGUOUS_ANONYMOUS_TYPE_INFERRED, "Right-hand side has an anonymous type. Please specify the type explicitly.", NOT_RENDERED) map.put( MANY_IMPL_MEMBER_NOT_IMPLEMENTED, - "''{0}'' must override ''{1}'' because it inherits multiple implementations for it.", + "{0} must override ''{1}'' because it inherits multiple implementations for it.", RENDER_CLASS_OR_OBJECT, DECLARATION_NAME ) map.put( MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED, - "''{0}'' must override ''{1}'' because it inherits multiple interface methods for it.", + "{0} must override ''{1}'' because it inherits multiple interface methods for it.", RENDER_CLASS_OR_OBJECT, DECLARATION_NAME ) @@ -1663,7 +1664,7 @@ object FirErrorsDefaultMessages : BaseDiagnosticRendererFactory() { ) map.put( VAR_IMPLEMENTED_BY_INHERITED_VAL, - "''{0}'' overrides ''var'' property ''{1}'' with inherited ''val'' property ''{2}''.", + "{0} overrides ''var'' property ''{1}'' with inherited ''val'' property ''{2}''.", RENDER_CLASS_OR_OBJECT, DECLARATION_NAME, FQ_NAMES_IN_TYPES diff --git a/compiler/testData/cli/jvm/internalArgEnableLanguageFeature.out b/compiler/testData/cli/jvm/internalArgEnableLanguageFeature.out index 21380366520..e72e9b1f61d 100644 --- a/compiler/testData/cli/jvm/internalArgEnableLanguageFeature.out +++ b/compiler/testData/cli/jvm/internalArgEnableLanguageFeature.out @@ -1,4 +1,4 @@ -compiler/testData/cli/jvm/internalArgEnableLanguageFeature.kt:9:1: error: 'Class Impl' overrides 'var' property 'a' with inherited 'val' property 'public final val /Open.a: kotlin/String +compiler/testData/cli/jvm/internalArgEnableLanguageFeature.kt:9:1: error: class 'Impl' overrides 'var' property 'a' with inherited 'val' property 'public final val /Open.a: kotlin/String public get(): kotlin/String'. class Impl : Open(), Interface ^ diff --git a/compiler/testData/cli/jvm/twoDiagnosticsOnSingleElement.out b/compiler/testData/cli/jvm/twoDiagnosticsOnSingleElement.out index 0974c1d9f9e..a4004d4732a 100644 --- a/compiler/testData/cli/jvm/twoDiagnosticsOnSingleElement.out +++ b/compiler/testData/cli/jvm/twoDiagnosticsOnSingleElement.out @@ -1,4 +1,4 @@ -compiler/testData/cli/jvm/twoDiagnosticsOnSingleElement.kt:11:1: error: 'Class C' is not abstract and does not implement abstract member 'foo'. +compiler/testData/cli/jvm/twoDiagnosticsOnSingleElement.kt:11:1: error: class 'C' is not abstract and does not implement abstract member 'foo'. class C : I1, I2 ^ compiler/testData/cli/jvm/twoDiagnosticsOnSingleElement.kt:11:1: error: 'C' inherits conflicting members: foo, foo. diff --git a/compiler/testData/diagnostics/tests/annotations/rendering/notImplementedMembers.fir.kt b/compiler/testData/diagnostics/tests/annotations/rendering/notImplementedMembers.fir.kt index ec0ea3ac401..e2808e339da 100644 --- a/compiler/testData/diagnostics/tests/annotations/rendering/notImplementedMembers.fir.kt +++ b/compiler/testData/diagnostics/tests/annotations/rendering/notImplementedMembers.fir.kt @@ -23,8 +23,8 @@ abstract class D { abstract val d: @An Int } -class E : D(), A -class F : A +class E : D(), A +class F : A @An interface G { @@ -44,5 +44,5 @@ interface GI : G { override fun a(@An arg: @An Int) {} } -class AG1(val a: A, val g: G) : A by a, G by g -class AG2() : AI, GI +class AG1(val a: A, val g: G) : A by a, G by g +class AG2() : AI, GI