@NotNull
  FilePartNode replaceWithFPPN(@NotNull VirtualFile file, @NotNull FilePartNode parent) {
    int nameId = getNameId(file);
    parent.children = ArrayUtil.remove(parent.children, this);
    FilePartNode newNode = parent.findChildByNameId(file, nameId, true, (NewVirtualFileSystem)file.getFileSystem());
    assert newNode.nameId == nameId;
    newNode.children = children; // old children are destroyed when renamed onto their parent
    processPointers(pointer-> newNode.addLeaf(pointer));

    leaves = null;

    return newNode;
  }
@NotNull
  FilePartNode replaceWithFPPN(@NotNull VirtualFile file, @NotNull FilePartNode parent)