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();
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(")");
}
@@ -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() {
doImplementFileTest();
}
public void testEscapeIdentifiers() {
doOverrideFileTest();
}
}