Fix using invalidated PSI element in Remove Braces Intention

#EA-142427 fixed
This commit is contained in:
Ilya Kirillov
2019-07-30 13:59:55 +03:00
parent 65b0a5f903
commit 46ff959415
@@ -58,6 +58,7 @@ class RemoveBracesIntention : SelfTargetingIntention<KtElement>(KtElement::class
override fun applyTo(element: KtElement, editor: Editor?) {
val block = element.findChildBlock() ?: return
val factory = KtPsiFactory(element)
val statement = block.statements.single()
val caretOnAfterStatement = if (editor != null) editor.caretModel.offset >= statement.endOffset else false
@@ -67,8 +68,6 @@ class RemoveBracesIntention : SelfTargetingIntention<KtElement>(KtElement::class
val newElement = block.replace(statement.copy())
editor?.caretModel?.moveToOffset(if (caretOnAfterStatement) newElement.endOffset else newElement.startOffset)
val factory = KtPsiFactory(block)
if (construct is KtDoWhileExpression) {
newElement.parent!!.addAfter(factory.createNewLine(), newElement)