This commit is contained in:
Valentin Kipyatkov
2015-08-25 16:41:24 +03:00
parent 9497856d8e
commit dd6702b832
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.renderer.* import org.jetbrains.kotlin.renderer.*
import java.util.ArrayList import java.util.*
public abstract class OverrideImplementMembersHandler : LanguageCodeInsightActionHandler { public abstract class OverrideImplementMembersHandler : LanguageCodeInsightActionHandler {
@@ -202,12 +202,13 @@ public abstract class OverrideImplementMembersHandler : LanguageCodeInsightActio
descriptor.kind, /* copyOverrides = */ true) as PropertyDescriptor descriptor.kind, /* copyOverrides = */ true) as PropertyDescriptor
newDescriptor.addOverriddenDescriptor(descriptor) newDescriptor.addOverriddenDescriptor(descriptor)
val body = StringBuilder() val body = StringBuilder {
body.append("\nget()") append("\nget()")
body.append(" = ") append(" = ")
body.append(generateUnsupportedOrSuperCall(classOrObject, descriptor)) append(generateUnsupportedOrSuperCall(classOrObject, descriptor))
if (descriptor.isVar) { if (descriptor.isVar) {
body.append("\nset(value) {}") append("\nset(value) {}")
}
} }
return JetPsiFactory(classOrObject.project).createProperty(OVERRIDE_RENDERER.render(newDescriptor) + body) return JetPsiFactory(classOrObject.project).createProperty(OVERRIDE_RENDERER.render(newDescriptor) + body)
} }
@@ -234,23 +235,22 @@ public abstract class OverrideImplementMembersHandler : LanguageCodeInsightActio
return "throw UnsupportedOperationException()" return "throw UnsupportedOperationException()"
} }
else { else {
val builder = StringBuilder() return StringBuilder {
builder.append("super") append("super")
if (classOrObject.getDelegationSpecifiers().size() > 1) { if (classOrObject.getDelegationSpecifiers().size() > 1) {
val superClassFqName = IdeDescriptorRenderers.SOURCE_CODE.renderClassifierName(descriptor.containingDeclaration as ClassifierDescriptor) val superClassFqName = IdeDescriptorRenderers.SOURCE_CODE.renderClassifierName(descriptor.containingDeclaration as ClassifierDescriptor)
builder.append("<").append(superClassFqName).append(">") append("<").append(superClassFqName).append(">")
}
builder.append(".").append(descriptor.escapedName())
if (descriptor is FunctionDescriptor) {
val paramTexts = descriptor.valueParameters.map {
val renderedName = it.escapedName()
if (it.varargElementType != null) "*$renderedName" else renderedName
} }
paramTexts.joinTo(builder, prefix="(", postfix=")") append(".").append(descriptor.escapedName())
}
return builder.toString() if (descriptor is FunctionDescriptor) {
val paramTexts = descriptor.valueParameters.map {
val renderedName = it.escapedName()
if (it.varargElementType != null) "*$renderedName" else renderedName
}
paramTexts.joinTo(this, prefix="(", postfix=")")
}
}.toString()
} }
} }