From d32ff50579b4f1a72b1b65639ca2643d83d2fb4d Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 15 Apr 2015 15:44:11 +0200 Subject: [PATCH] escape identifiers in generated super method call in Override/Implement #KT-6669 Fixed --- .../codeInsight/OverrideImplementMethodsHandler.java | 6 +++--- .../codeInsight/overrideImplement/escapeIdentifiers.kt | 7 +++++++ .../overrideImplement/escapeIdentifiers.kt.after | 9 +++++++++ .../kotlin/idea/codeInsight/OverrideImplementTest.java | 4 ++++ 4 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 idea/testData/codeInsight/overrideImplement/escapeIdentifiers.kt create mode 100644 idea/testData/codeInsight/overrideImplement/escapeIdentifiers.kt.after diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.java index e52b9d2b7e5..8183fb425d7 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.java +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.java @@ -248,9 +248,9 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns StringBuilder builder = new StringBuilder(); builder.append("super"); if (classOrObject.getDelegationSpecifiers().size() > 1) { - builder.append("<").append(descriptor.getContainingDeclaration().getName()).append(">"); + builder.append("<").append(DescriptorRenderer.COMPACT.renderName(descriptor.getContainingDeclaration().getName())).append(">"); } - builder.append(".").append(descriptor.getName()); + builder.append(".").append(DescriptorRenderer.COMPACT.renderName(descriptor.getName())); if (descriptor instanceof FunctionDescriptor) { builder.append("("); @@ -260,7 +260,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns builder.append(", "); } first = false; - builder.append(parameterDescriptor.getName()); + builder.append(DescriptorRenderer.COMPACT.renderName(parameterDescriptor.getName())); } builder.append(")"); } diff --git a/idea/testData/codeInsight/overrideImplement/escapeIdentifiers.kt b/idea/testData/codeInsight/overrideImplement/escapeIdentifiers.kt new file mode 100644 index 00000000000..80dd444501c --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/escapeIdentifiers.kt @@ -0,0 +1,7 @@ +open class A { + open fun foo(`object` : Any): Int = 0 +} + +class C : A { + +} diff --git a/idea/testData/codeInsight/overrideImplement/escapeIdentifiers.kt.after b/idea/testData/codeInsight/overrideImplement/escapeIdentifiers.kt.after new file mode 100644 index 00000000000..69769498632 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/escapeIdentifiers.kt.after @@ -0,0 +1,9 @@ +open class A { + open fun foo(`object` : Any): Int = 0 +} + +class C : A { + override fun foo(`object`: Any): Int { + return super.foo(`object`) + } +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.java index d74c4068eb0..ca6b98577ce 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.java @@ -201,4 +201,8 @@ public final class OverrideImplementTest extends AbstractOverrideImplementTest { public void testStarProjections() { doImplementFileTest(); } + + public void testEscapeIdentifiers() { + doOverrideFileTest(); + } }