From 77652a9df817ae5074c6e92170c2d3f51f2b69d5 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 28 Mar 2012 21:34:22 +0400 Subject: [PATCH] KT-1254 "Implement members" gives strange result when implementing a method returning function type #KT-1254 fixed --- .../codeInsight/OverrideImplementMethodsHandler.java | 2 +- .../codeInsight/overrideImplement/functionMethod.kt | 8 ++++++++ .../overrideImplement/functionMethod.kt.after | 11 +++++++++++ .../jet/plugin/codeInsight/OverrideImplementTest.java | 4 ++++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 idea/testData/codeInsight/overrideImplement/functionMethod.kt create mode 100644 idea/testData/codeInsight/overrideImplement/functionMethod.kt.after diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java index 58f11204410..3ef448d69ce 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java @@ -162,7 +162,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns final JetStandardLibrary stdlib = JetStandardLibrary.getInstance(); if (returnType != null && !stdlib.getTuple0Type().equals(returnType)) { - bodyBuilder.append(" : ").append(returnType.toString()); + bodyBuilder.append(" : ").append(DescriptorRenderer.COMPACT.renderTypeWithShortNames(returnType)); ImportInsertHelper.addImportDirectiveIfNeeded(returnType, file); } diff --git a/idea/testData/codeInsight/overrideImplement/functionMethod.kt b/idea/testData/codeInsight/overrideImplement/functionMethod.kt new file mode 100644 index 00000000000..34ac85eab84 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/functionMethod.kt @@ -0,0 +1,8 @@ +// From KT-1254 +trait T { + fun Foo() : (String) -> Unit +} + +class C : T { + +} \ No newline at end of file diff --git a/idea/testData/codeInsight/overrideImplement/functionMethod.kt.after b/idea/testData/codeInsight/overrideImplement/functionMethod.kt.after new file mode 100644 index 00000000000..8326c925641 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/functionMethod.kt.after @@ -0,0 +1,11 @@ +// From KT-1254 +trait T { + fun Foo() : (String) -> Unit +} + +class C : T { + + override fun Foo() : (String) -> Unit { + throw UnsupportedOperationException() + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java index 83a8cb9a83d..b25cbc8641f 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java @@ -49,6 +49,10 @@ public class OverrideImplementTest extends LightCodeInsightFixtureTestCase { myFixture.setTestDataPath(PluginTestCaseBase.getTestDataPathBase() + "/codeInsight/overrideImplement"); } + public void testFunctionMethod() { + doFileTest(); + } + public void testFunctionProperty() { doFileTest(); }