@Override
  public PsiElement addBefore(@NotNull PsiElement psiElement, PsiElement anchor) throws IncorrectOperationException {
    final ASTNode child = psiElement.getNode();
    assert child != null;

    final ASTNode anchorNode = anchor.getNode();
    assert anchorNode != null;

    getNode().addChild(child, anchorNode);
    final PsiElement r = anchorNode.getTreePrev().getPsi();

    assert r.getClass() == psiElement.getClass();
    return r;
  }
@Override
  public PsiElement addBefore(@NotNull PsiElement psiElement, PsiElement anchor)