void (@NotNull ASTNode child) { if (getChildRole(child) == ChildRole.QUALIFIER) { ASTNode dot = findChildByType(JavaTokenType.DOT, child); assert dot != null : this; deleteChildRange(child.getPsi(), dot.getPsi()); ASTNode ref = findChildByRole(ChildRole.REFERENCE_NAME); assert ref != null : this; PsiElement lastChild = ref.getPsi().getPrevSibling(); if (lastChild != null) { PsiElement modifierList = PsiImplUtil.findNeighbourModifierList(this); if (modifierList != null) { modifierList.addRange(getFirstChild(), lastChild); } else { getParent().addRangeBefore(getFirstChild(), lastChild, this); } // during previous operations, formatter support could have altered the children (if they're whitespace), // so we retrieve and check them again if (ref != getFirstChild()) { deleteChildRange(getFirstChild(), ref.getPsi().getPrevSibling()); } } } else if (child.getElementType() == JavaElementType.REFERENCE_PARAMETER_LIST) { replaceChildInternal(child, PsiReferenceExpressionImpl.createEmptyRefParameterList(getProject())); } else { super.deleteChildInternal(child); } }