@Override
  public void deleteChildInternal(@NotNull ASTNode child) {
    if (getChildRole(child) == ChildRole.QUALIFIER) {
      ASTNode dot = findChildByType(JavaTokenType.DOT, child);
      assert dot != null : this;
      deleteChildRange(child.getPsi(), dot.getPsi());

      ASTNode first = getFirstChildNode();
      if (getChildRole(first) == ChildRole.REFERENCE_PARAMETER_LIST && first.getFirstChildNode() == null) {
        ASTNode start = first.getTreeNext();
        if (PsiImplUtil.isWhitespaceOrComment(start)) {
          ASTNode next = PsiImplUtil.skipWhitespaceAndComments(start);
          assert next != null : this;
          CodeEditUtil.removeChildren(this, start, next.getTreePrev());
        }
      }
    }
    else if (child.getElementType() == JavaElementType.REFERENCE_PARAMETER_LIST) {
      replaceChildInternal(child, createEmptyRefParameterList(getProject()));
    }
    else {
      super.deleteChildInternal(child);
    }
  }
@Override
  public void deleteChildInternal(@NotNull ASTNode child)