void (@NotNull ASTNode oldChild, @NotNull ASTNode newChild) { LOG.assertTrue(((TreeElement)oldChild).getTreeParent() == this); TreeElement oldChild1 = (TreeElement)oldChild; TreeElement newChildNext = ((TreeElement)newChild).getTreeNext(); TreeElement newChild1 = (TreeElement)newChild; if(oldChild1 == newChild1) return; removeChildrenInner(newChild1, newChildNext); ChangeUtil.prepareAndRunChangeAction(destinationTreeChange -> { replace((TreeChangeEventImpl)destinationTreeChange, oldChild1, newChild1); repairRemovedElement(this, oldChild1); }, this); }