From df6c20efa4158df80b17de5cf513d2845316e2fe Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 18 May 2015 13:37:06 +0300 Subject: [PATCH] KT-7689 Wrong error message format for type of ... doesn't match to the type of overridden var-property #KT-7689 Fixed --- .../diagnostics/rendering/DefaultErrorMessages.java | 4 ++-- .../testData/checker/ReturnTypeMismatchOnOverride.kt | 12 ++++++++++++ .../kotlin/checkers/JetPsiCheckerTestGenerated.java | 6 ++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 idea/testData/checker/ReturnTypeMismatchOnOverride.kt diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java index 459356b0ced..a7546dc4708 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java @@ -487,10 +487,10 @@ public class DefaultErrorMessages { MAP.put(CANNOT_WEAKEN_ACCESS_PRIVILEGE, "Cannot weaken access privilege ''{0}'' for ''{1}'' in ''{2}''", TO_STRING, NAME, NAME); MAP.put(CANNOT_CHANGE_ACCESS_PRIVILEGE, "Cannot change access privilege ''{0}'' for ''{1}'' in ''{2}''", TO_STRING, NAME, NAME); - MAP.put(RETURN_TYPE_MISMATCH_ON_OVERRIDE, "Return type of ''{0}'' is not a subtype of the return type of overridden member {1}", + MAP.put(RETURN_TYPE_MISMATCH_ON_OVERRIDE, "Return type of ''{0}'' is not a subtype of the return type of the overridden member ''{1}''", NAME, FQ_NAMES_IN_TYPES); - MAP.put(PROPERTY_TYPE_MISMATCH_ON_OVERRIDE, "Type of ''{0}'' doesn't match to the type of overridden var-property {1}", + MAP.put(PROPERTY_TYPE_MISMATCH_ON_OVERRIDE, "Type of ''{0}'' doesn''t match the type of the overridden var-property ''{1}''", NAME, FQ_NAMES_IN_TYPES); MAP.put(VAR_OVERRIDDEN_BY_VAL, "Var-property {0} cannot be overridden by val-property {1}", FQ_NAMES_IN_TYPES, FQ_NAMES_IN_TYPES); diff --git a/idea/testData/checker/ReturnTypeMismatchOnOverride.kt b/idea/testData/checker/ReturnTypeMismatchOnOverride.kt new file mode 100644 index 00000000000..c3ccbe0aa0c --- /dev/null +++ b/idea/testData/checker/ReturnTypeMismatchOnOverride.kt @@ -0,0 +1,12 @@ +interface Base { + fun foo(): Int + + var bar: Int +} + +class Derived : Base { + + override fun foo(): String = "" + + override var bar: String = "" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/checkers/JetPsiCheckerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/checkers/JetPsiCheckerTestGenerated.java index 54febaa28d0..c3240f98feb 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/JetPsiCheckerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/JetPsiCheckerTestGenerated.java @@ -283,6 +283,12 @@ public class JetPsiCheckerTestGenerated extends AbstractJetPsiCheckerTest { doTest(fileName); } + @TestMetadata("ReturnTypeMismatchOnOverride.kt") + public void testReturnTypeMismatchOnOverride() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/checker/ReturnTypeMismatchOnOverride.kt"); + doTest(fileName); + } + @TestMetadata("Shadowing.kt") public void testShadowing() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/checker/Shadowing.kt");