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)