Fix using invalidated PSI element in Remove Braces Intention
#EA-142427 fixed
This commit is contained in:
@@ -58,6 +58,7 @@ class RemoveBracesIntention : SelfTargetingIntention<KtElement>(KtElement::class
|
|||||||
|
|
||||||
override fun applyTo(element: KtElement, editor: Editor?) {
|
override fun applyTo(element: KtElement, editor: Editor?) {
|
||||||
val block = element.findChildBlock() ?: return
|
val block = element.findChildBlock() ?: return
|
||||||
|
val factory = KtPsiFactory(element)
|
||||||
val statement = block.statements.single()
|
val statement = block.statements.single()
|
||||||
val caretOnAfterStatement = if (editor != null) editor.caretModel.offset >= statement.endOffset else false
|
val caretOnAfterStatement = if (editor != null) editor.caretModel.offset >= statement.endOffset else false
|
||||||
|
|
||||||
@@ -68,8 +69,6 @@ class RemoveBracesIntention : SelfTargetingIntention<KtElement>(KtElement::class
|
|||||||
val newElement = block.replace(statement.copy())
|
val newElement = block.replace(statement.copy())
|
||||||
editor?.caretModel?.moveToOffset(if (caretOnAfterStatement) newElement.endOffset else newElement.startOffset)
|
editor?.caretModel?.moveToOffset(if (caretOnAfterStatement) newElement.endOffset else newElement.startOffset)
|
||||||
|
|
||||||
val factory = KtPsiFactory(block)
|
|
||||||
|
|
||||||
if (construct is KtDoWhileExpression) {
|
if (construct is KtDoWhileExpression) {
|
||||||
newElement.parent!!.addAfter(factory.createNewLine(), newElement)
|
newElement.parent!!.addAfter(factory.createNewLine(), newElement)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user