@Override
  public void replaceChildInternal(@NotNull ASTNode child,
                                   @NotNull TreeElement newElement) {
    if (getChildRole(child) == ChildRole.METHOD_EXPRESSION &&
        newElement.getElementType() != JavaElementType.REFERENCE_EXPRESSION) {
      throw new IncorrectOperationException("ReferenceExpression expected; got: " + newElement.getElementType());
    }
    super.replaceChildInternal(child, newElement);
  }
@Override
  public void replaceChildInternal(@NotNull ASTNode child,
                                   @NotNull TreeElement newElement)