escape identifiers in generated super method call in Override/Implement

#KT-6669 Fixed
This commit is contained in:
Dmitry Jemerov
2015-04-15 15:44:11 +02:00
parent 66aa15f470
commit d32ff50579
4 changed files with 23 additions and 3 deletions
@@ -248,9 +248,9 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append("super"); builder.append("super");
if (classOrObject.getDelegationSpecifiers().size() > 1) { 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) { if (descriptor instanceof FunctionDescriptor) {
builder.append("("); builder.append("(");
@@ -260,7 +260,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
builder.append(", "); builder.append(", ");
} }
first = false; first = false;
builder.append(parameterDescriptor.getName()); builder.append(DescriptorRenderer.COMPACT.renderName(parameterDescriptor.getName()));
} }
builder.append(")"); builder.append(")");
} }
@@ -0,0 +1,7 @@
open class A {
open fun foo(`object` : Any): Int = 0
}
class C : A {
<caret>
}
@@ -0,0 +1,9 @@
open class A {
open fun foo(`object` : Any): Int = 0
}
class C : A {
override fun foo(`object`: Any): Int {
<selection><caret>return super.foo(`object`)</selection>
}
}
@@ -201,4 +201,8 @@ public final class OverrideImplementTest extends AbstractOverrideImplementTest {
public void testStarProjections() { public void testStarProjections() {
doImplementFileTest(); doImplementFileTest();
} }
public void testEscapeIdentifiers() {
doOverrideFileTest();
}
} }