From bce2202ea383b7697364cf4f2da5074c27497766 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Thu, 10 Oct 2019 20:45:36 +0700 Subject: [PATCH] LetImplementInterfaceFix: fix PIEAE #EA-214415 Fixed --- .../kotlin/idea/quickfix/LetImplementInterfaceFix.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/LetImplementInterfaceFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/LetImplementInterfaceFix.kt index 0d169f3d1cb..c12b6a76987 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/LetImplementInterfaceFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/LetImplementInterfaceFix.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtPsiFactory +import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer import org.jetbrains.kotlin.psi.psiUtil.isObjectLiteral import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.TypeUtils @@ -73,14 +74,17 @@ class LetImplementInterfaceFix( override fun invoke(project: Project, editor: Editor?, file: KtFile) { val element = element ?: return + val point = element.createSmartPointer() + val superTypeEntry = KtPsiFactory(element).createSuperTypeEntry(expectedTypeNameSourceCode) runWriteAction { val entryElement = element.addSuperTypeListEntry(superTypeEntry) ShortenReferences.DEFAULT.process(entryElement) } + val newElement = point.element ?: return val implementMembersHandler = ImplementMembersHandler() - if (implementMembersHandler.collectMembersToGenerate(element).isEmpty()) return + if (implementMembersHandler.collectMembersToGenerate(newElement).isEmpty()) return if (editor != null) { editor.caretModel.moveToOffset(element.textRange.startOffset)