Rename SumTree::push_tree to ::append

This commit is contained in:
Nathan Sobo 2023-06-18 18:37:21 -06:00
parent 05d69c804c
commit 8c298a9da5
12 changed files with 60 additions and 60 deletions

View File

@ -243,7 +243,7 @@ impl BlockMap {
// Preserve any old transforms that precede this edit. // Preserve any old transforms that precede this edit.
let old_start = WrapRow(edit.old.start); let old_start = WrapRow(edit.old.start);
let new_start = WrapRow(edit.new.start); let new_start = WrapRow(edit.new.start);
new_transforms.push_tree(cursor.slice(&old_start, Bias::Left, &()), &()); new_transforms.append(cursor.slice(&old_start, Bias::Left, &()), &());
if let Some(transform) = cursor.item() { if let Some(transform) = cursor.item() {
if transform.is_isomorphic() && old_start == cursor.end(&()) { if transform.is_isomorphic() && old_start == cursor.end(&()) {
new_transforms.push(transform.clone(), &()); new_transforms.push(transform.clone(), &());
@ -425,7 +425,7 @@ impl BlockMap {
push_isomorphic(&mut new_transforms, extent_after_edit); push_isomorphic(&mut new_transforms, extent_after_edit);
} }
new_transforms.push_tree(cursor.suffix(&()), &()); new_transforms.append(cursor.suffix(&()), &());
debug_assert_eq!( debug_assert_eq!(
new_transforms.summary().input_rows, new_transforms.summary().input_rows,
wrap_snapshot.max_point().row() + 1 wrap_snapshot.max_point().row() + 1

View File

@ -115,10 +115,10 @@ impl<'a> FoldMapWriter<'a> {
let mut new_tree = SumTree::new(); let mut new_tree = SumTree::new();
let mut cursor = self.0.folds.cursor::<Fold>(); let mut cursor = self.0.folds.cursor::<Fold>();
for fold in folds { for fold in folds {
new_tree.push_tree(cursor.slice(&fold, Bias::Right, &buffer), &buffer); new_tree.append(cursor.slice(&fold, Bias::Right, &buffer), &buffer);
new_tree.push(fold, &buffer); new_tree.push(fold, &buffer);
} }
new_tree.push_tree(cursor.suffix(&buffer), &buffer); new_tree.append(cursor.suffix(&buffer), &buffer);
new_tree new_tree
}; };
@ -165,10 +165,10 @@ impl<'a> FoldMapWriter<'a> {
let mut cursor = self.0.folds.cursor::<usize>(); let mut cursor = self.0.folds.cursor::<usize>();
let mut folds = SumTree::new(); let mut folds = SumTree::new();
for fold_ix in fold_ixs_to_delete { for fold_ix in fold_ixs_to_delete {
folds.push_tree(cursor.slice(&fold_ix, Bias::Right, &buffer), &buffer); folds.append(cursor.slice(&fold_ix, Bias::Right, &buffer), &buffer);
cursor.next(&buffer); cursor.next(&buffer);
} }
folds.push_tree(cursor.suffix(&buffer), &buffer); folds.append(cursor.suffix(&buffer), &buffer);
folds folds
}; };
@ -302,7 +302,7 @@ impl FoldMap {
cursor.seek(&0, Bias::Right, &()); cursor.seek(&0, Bias::Right, &());
while let Some(mut edit) = buffer_edits_iter.next() { while let Some(mut edit) = buffer_edits_iter.next() {
new_transforms.push_tree(cursor.slice(&edit.old.start, Bias::Left, &()), &()); new_transforms.append(cursor.slice(&edit.old.start, Bias::Left, &()), &());
edit.new.start -= edit.old.start - cursor.start(); edit.new.start -= edit.old.start - cursor.start();
edit.old.start = *cursor.start(); edit.old.start = *cursor.start();
@ -412,7 +412,7 @@ impl FoldMap {
} }
} }
new_transforms.push_tree(cursor.suffix(&()), &()); new_transforms.append(cursor.suffix(&()), &());
if new_transforms.is_empty() { if new_transforms.is_empty() {
let text_summary = new_buffer.text_summary(); let text_summary = new_buffer.text_summary();
new_transforms.push( new_transforms.push(

View File

@ -353,7 +353,7 @@ impl WrapSnapshot {
} }
old_cursor.next(&()); old_cursor.next(&());
new_transforms.push_tree( new_transforms.append(
old_cursor.slice(&next_edit.old.start, Bias::Right, &()), old_cursor.slice(&next_edit.old.start, Bias::Right, &()),
&(), &(),
); );
@ -366,7 +366,7 @@ impl WrapSnapshot {
new_transforms.push_or_extend(Transform::isomorphic(summary)); new_transforms.push_or_extend(Transform::isomorphic(summary));
} }
old_cursor.next(&()); old_cursor.next(&());
new_transforms.push_tree(old_cursor.suffix(&()), &()); new_transforms.append(old_cursor.suffix(&()), &());
} }
} }
} }
@ -500,7 +500,7 @@ impl WrapSnapshot {
new_transforms.push_or_extend(Transform::isomorphic(summary)); new_transforms.push_or_extend(Transform::isomorphic(summary));
} }
old_cursor.next(&()); old_cursor.next(&());
new_transforms.push_tree( new_transforms.append(
old_cursor.slice( old_cursor.slice(
&TabPoint::new(next_edit.old_rows.start, 0), &TabPoint::new(next_edit.old_rows.start, 0),
Bias::Right, Bias::Right,
@ -517,7 +517,7 @@ impl WrapSnapshot {
new_transforms.push_or_extend(Transform::isomorphic(summary)); new_transforms.push_or_extend(Transform::isomorphic(summary));
} }
old_cursor.next(&()); old_cursor.next(&());
new_transforms.push_tree(old_cursor.suffix(&()), &()); new_transforms.append(old_cursor.suffix(&()), &());
} }
} }
} }

View File

@ -1010,7 +1010,7 @@ impl MultiBuffer {
let suffix = cursor.suffix(&()); let suffix = cursor.suffix(&());
let changed_trailing_excerpt = suffix.is_empty(); let changed_trailing_excerpt = suffix.is_empty();
new_excerpts.push_tree(suffix, &()); new_excerpts.append(suffix, &());
drop(cursor); drop(cursor);
snapshot.excerpts = new_excerpts; snapshot.excerpts = new_excerpts;
snapshot.excerpt_ids = new_excerpt_ids; snapshot.excerpt_ids = new_excerpt_ids;
@ -1193,7 +1193,7 @@ impl MultiBuffer {
while let Some(excerpt_id) = excerpt_ids.next() { while let Some(excerpt_id) = excerpt_ids.next() {
// Seek to the next excerpt to remove, preserving any preceding excerpts. // Seek to the next excerpt to remove, preserving any preceding excerpts.
let locator = snapshot.excerpt_locator_for_id(excerpt_id); let locator = snapshot.excerpt_locator_for_id(excerpt_id);
new_excerpts.push_tree(cursor.slice(&Some(locator), Bias::Left, &()), &()); new_excerpts.append(cursor.slice(&Some(locator), Bias::Left, &()), &());
if let Some(mut excerpt) = cursor.item() { if let Some(mut excerpt) = cursor.item() {
if excerpt.id != excerpt_id { if excerpt.id != excerpt_id {
@ -1245,7 +1245,7 @@ impl MultiBuffer {
} }
let suffix = cursor.suffix(&()); let suffix = cursor.suffix(&());
let changed_trailing_excerpt = suffix.is_empty(); let changed_trailing_excerpt = suffix.is_empty();
new_excerpts.push_tree(suffix, &()); new_excerpts.append(suffix, &());
drop(cursor); drop(cursor);
snapshot.excerpts = new_excerpts; snapshot.excerpts = new_excerpts;
@ -1509,7 +1509,7 @@ impl MultiBuffer {
let mut cursor = snapshot.excerpts.cursor::<(Option<&Locator>, usize)>(); let mut cursor = snapshot.excerpts.cursor::<(Option<&Locator>, usize)>();
for (locator, buffer, buffer_edited) in excerpts_to_edit { for (locator, buffer, buffer_edited) in excerpts_to_edit {
new_excerpts.push_tree(cursor.slice(&Some(locator), Bias::Left, &()), &()); new_excerpts.append(cursor.slice(&Some(locator), Bias::Left, &()), &());
let old_excerpt = cursor.item().unwrap(); let old_excerpt = cursor.item().unwrap();
let buffer = buffer.read(cx); let buffer = buffer.read(cx);
let buffer_id = buffer.remote_id(); let buffer_id = buffer.remote_id();
@ -1549,7 +1549,7 @@ impl MultiBuffer {
new_excerpts.push(new_excerpt, &()); new_excerpts.push(new_excerpt, &());
cursor.next(&()); cursor.next(&());
} }
new_excerpts.push_tree(cursor.suffix(&()), &()); new_excerpts.append(cursor.suffix(&()), &());
drop(cursor); drop(cursor);
snapshot.excerpts = new_excerpts; snapshot.excerpts = new_excerpts;

View File

@ -211,7 +211,7 @@ impl<V: View> Element<V> for List<V> {
let mut cursor = old_items.cursor::<Count>(); let mut cursor = old_items.cursor::<Count>();
if state.rendered_range.start < new_rendered_range.start { if state.rendered_range.start < new_rendered_range.start {
new_items.push_tree( new_items.append(
cursor.slice(&Count(state.rendered_range.start), Bias::Right, &()), cursor.slice(&Count(state.rendered_range.start), Bias::Right, &()),
&(), &(),
); );
@ -221,7 +221,7 @@ impl<V: View> Element<V> for List<V> {
cursor.next(&()); cursor.next(&());
} }
} }
new_items.push_tree( new_items.append(
cursor.slice(&Count(new_rendered_range.start), Bias::Right, &()), cursor.slice(&Count(new_rendered_range.start), Bias::Right, &()),
&(), &(),
); );
@ -230,7 +230,7 @@ impl<V: View> Element<V> for List<V> {
cursor.seek(&Count(new_rendered_range.end), Bias::Right, &()); cursor.seek(&Count(new_rendered_range.end), Bias::Right, &());
if new_rendered_range.end < state.rendered_range.start { if new_rendered_range.end < state.rendered_range.start {
new_items.push_tree( new_items.append(
cursor.slice(&Count(state.rendered_range.start), Bias::Right, &()), cursor.slice(&Count(state.rendered_range.start), Bias::Right, &()),
&(), &(),
); );
@ -240,7 +240,7 @@ impl<V: View> Element<V> for List<V> {
cursor.next(&()); cursor.next(&());
} }
new_items.push_tree(cursor.suffix(&()), &()); new_items.append(cursor.suffix(&()), &());
state.items = new_items; state.items = new_items;
state.rendered_range = new_rendered_range; state.rendered_range = new_rendered_range;
@ -413,7 +413,7 @@ impl<V: View> ListState<V> {
old_heights.seek_forward(&Count(old_range.end), Bias::Right, &()); old_heights.seek_forward(&Count(old_range.end), Bias::Right, &());
new_heights.extend((0..count).map(|_| ListItem::Unrendered), &()); new_heights.extend((0..count).map(|_| ListItem::Unrendered), &());
new_heights.push_tree(old_heights.suffix(&()), &()); new_heights.append(old_heights.suffix(&()), &());
drop(old_heights); drop(old_heights);
state.items = new_heights; state.items = new_heights;
} }

View File

@ -288,7 +288,7 @@ impl SyntaxSnapshot {
}; };
if target.cmp(&cursor.start(), text).is_gt() { if target.cmp(&cursor.start(), text).is_gt() {
let slice = cursor.slice(&target, Bias::Left, text); let slice = cursor.slice(&target, Bias::Left, text);
layers.push_tree(slice, text); layers.append(slice, text);
} }
} }
// If this layer follows all of the edits, then preserve it and any // If this layer follows all of the edits, then preserve it and any
@ -303,7 +303,7 @@ impl SyntaxSnapshot {
Bias::Left, Bias::Left,
text, text,
); );
layers.push_tree(slice, text); layers.append(slice, text);
continue; continue;
}; };
@ -369,7 +369,7 @@ impl SyntaxSnapshot {
cursor.next(text); cursor.next(text);
} }
layers.push_tree(cursor.suffix(&text), &text); layers.append(cursor.suffix(&text), &text);
drop(cursor); drop(cursor);
self.layers = layers; self.layers = layers;
} }
@ -478,7 +478,7 @@ impl SyntaxSnapshot {
if bounded_position.cmp(&cursor.start(), &text).is_gt() { if bounded_position.cmp(&cursor.start(), &text).is_gt() {
let slice = cursor.slice(&bounded_position, Bias::Left, text); let slice = cursor.slice(&bounded_position, Bias::Left, text);
if !slice.is_empty() { if !slice.is_empty() {
layers.push_tree(slice, &text); layers.append(slice, &text);
if changed_regions.prune(cursor.end(text), text) { if changed_regions.prune(cursor.end(text), text) {
done = false; done = false;
} }

View File

@ -1470,7 +1470,7 @@ impl Snapshot {
break; break;
} }
} }
new_entries_by_path.push_tree(cursor.suffix(&()), &()); new_entries_by_path.append(cursor.suffix(&()), &());
new_entries_by_path new_entries_by_path
}; };
@ -2259,7 +2259,7 @@ impl BackgroundScannerState {
let mut cursor = self.snapshot.entries_by_path.cursor::<TraversalProgress>(); let mut cursor = self.snapshot.entries_by_path.cursor::<TraversalProgress>();
new_entries = cursor.slice(&TraversalTarget::Path(path), Bias::Left, &()); new_entries = cursor.slice(&TraversalTarget::Path(path), Bias::Left, &());
removed_entries = cursor.slice(&TraversalTarget::PathSuccessor(path), Bias::Left, &()); removed_entries = cursor.slice(&TraversalTarget::PathSuccessor(path), Bias::Left, &());
new_entries.push_tree(cursor.suffix(&()), &()); new_entries.append(cursor.suffix(&()), &());
} }
self.snapshot.entries_by_path = new_entries; self.snapshot.entries_by_path = new_entries;

View File

@ -53,7 +53,7 @@ impl Rope {
} }
} }
self.chunks.push_tree(chunks.suffix(&()), &()); self.chunks.append(chunks.suffix(&()), &());
self.check_invariants(); self.check_invariants();
} }

View File

@ -669,7 +669,7 @@ impl<'a, T: Item> SeekAggregate<'a, T> for () {
impl<'a, T: Item> SeekAggregate<'a, T> for SliceSeekAggregate<T> { impl<'a, T: Item> SeekAggregate<'a, T> for SliceSeekAggregate<T> {
fn begin_leaf(&mut self) {} fn begin_leaf(&mut self) {}
fn end_leaf(&mut self, cx: &<T::Summary as Summary>::Context) { fn end_leaf(&mut self, cx: &<T::Summary as Summary>::Context) {
self.tree.push_tree( self.tree.append(
SumTree(Arc::new(Node::Leaf { SumTree(Arc::new(Node::Leaf {
summary: mem::take(&mut self.leaf_summary), summary: mem::take(&mut self.leaf_summary),
items: mem::take(&mut self.leaf_items), items: mem::take(&mut self.leaf_items),
@ -689,7 +689,7 @@ impl<'a, T: Item> SeekAggregate<'a, T> for SliceSeekAggregate<T> {
_: &T::Summary, _: &T::Summary,
cx: &<T::Summary as Summary>::Context, cx: &<T::Summary as Summary>::Context,
) { ) {
self.tree.push_tree(tree.clone(), cx); self.tree.append(tree.clone(), cx);
} }
} }

View File

@ -268,7 +268,7 @@ impl<T: Item> SumTree<T> {
for item in iter { for item in iter {
if leaf.is_some() && leaf.as_ref().unwrap().items().len() == 2 * TREE_BASE { if leaf.is_some() && leaf.as_ref().unwrap().items().len() == 2 * TREE_BASE {
self.push_tree(SumTree(Arc::new(leaf.take().unwrap())), cx); self.append(SumTree(Arc::new(leaf.take().unwrap())), cx);
} }
if leaf.is_none() { if leaf.is_none() {
@ -295,13 +295,13 @@ impl<T: Item> SumTree<T> {
} }
if leaf.is_some() { if leaf.is_some() {
self.push_tree(SumTree(Arc::new(leaf.take().unwrap())), cx); self.append(SumTree(Arc::new(leaf.take().unwrap())), cx);
} }
} }
pub fn push(&mut self, item: T, cx: &<T::Summary as Summary>::Context) { pub fn push(&mut self, item: T, cx: &<T::Summary as Summary>::Context) {
let summary = item.summary(); let summary = item.summary();
self.push_tree( self.append(
SumTree(Arc::new(Node::Leaf { SumTree(Arc::new(Node::Leaf {
summary: summary.clone(), summary: summary.clone(),
items: ArrayVec::from_iter(Some(item)), items: ArrayVec::from_iter(Some(item)),
@ -311,11 +311,11 @@ impl<T: Item> SumTree<T> {
); );
} }
pub fn push_tree(&mut self, other: Self, cx: &<T::Summary as Summary>::Context) { pub fn append(&mut self, other: Self, cx: &<T::Summary as Summary>::Context) {
if !other.0.is_leaf() || !other.0.items().is_empty() { if !other.0.is_leaf() || !other.0.items().is_empty() {
if self.0.height() < other.0.height() { if self.0.height() < other.0.height() {
for tree in other.0.child_trees() { for tree in other.0.child_trees() {
self.push_tree(tree.clone(), cx); self.append(tree.clone(), cx);
} }
} else if let Some(split_tree) = self.push_tree_recursive(other, cx) { } else if let Some(split_tree) = self.push_tree_recursive(other, cx) {
*self = Self::from_child_trees(self.clone(), split_tree, cx); *self = Self::from_child_trees(self.clone(), split_tree, cx);
@ -512,7 +512,7 @@ impl<T: KeyedItem> SumTree<T> {
} }
} }
new_tree.push(item, cx); new_tree.push(item, cx);
new_tree.push_tree(cursor.suffix(cx), cx); new_tree.append(cursor.suffix(cx), cx);
new_tree new_tree
}; };
replaced replaced
@ -529,7 +529,7 @@ impl<T: KeyedItem> SumTree<T> {
cursor.next(cx); cursor.next(cx);
} }
} }
new_tree.push_tree(cursor.suffix(cx), cx); new_tree.append(cursor.suffix(cx), cx);
new_tree new_tree
}; };
removed removed
@ -563,7 +563,7 @@ impl<T: KeyedItem> SumTree<T> {
{ {
new_tree.extend(buffered_items.drain(..), cx); new_tree.extend(buffered_items.drain(..), cx);
let slice = cursor.slice(&new_key, Bias::Left, cx); let slice = cursor.slice(&new_key, Bias::Left, cx);
new_tree.push_tree(slice, cx); new_tree.append(slice, cx);
old_item = cursor.item(); old_item = cursor.item();
} }
@ -583,7 +583,7 @@ impl<T: KeyedItem> SumTree<T> {
} }
new_tree.extend(buffered_items, cx); new_tree.extend(buffered_items, cx);
new_tree.push_tree(cursor.suffix(cx), cx); new_tree.append(cursor.suffix(cx), cx);
new_tree new_tree
}; };
@ -719,7 +719,7 @@ mod tests {
let mut tree2 = SumTree::new(); let mut tree2 = SumTree::new();
tree2.extend(50..100, &()); tree2.extend(50..100, &());
tree1.push_tree(tree2, &()); tree1.append(tree2, &());
assert_eq!( assert_eq!(
tree1.items(&()), tree1.items(&()),
(0..20).chain(50..100).collect::<Vec<u8>>() (0..20).chain(50..100).collect::<Vec<u8>>()
@ -766,7 +766,7 @@ mod tests {
let mut new_tree = cursor.slice(&Count(splice_start), Bias::Right, &()); let mut new_tree = cursor.slice(&Count(splice_start), Bias::Right, &());
new_tree.extend(new_items, &()); new_tree.extend(new_items, &());
cursor.seek(&Count(splice_end), Bias::Right, &()); cursor.seek(&Count(splice_end), Bias::Right, &());
new_tree.push_tree(cursor.slice(&tree_end, Bias::Right, &()), &()); new_tree.append(cursor.slice(&tree_end, Bias::Right, &()), &());
new_tree new_tree
}; };

View File

@ -67,7 +67,7 @@ impl<K: Clone + Debug + Default + Ord, V: Clone + Debug> TreeMap<K, V> {
removed = Some(cursor.item().unwrap().value.clone()); removed = Some(cursor.item().unwrap().value.clone());
cursor.next(&()); cursor.next(&());
} }
new_tree.push_tree(cursor.suffix(&()), &()); new_tree.append(cursor.suffix(&()), &());
drop(cursor); drop(cursor);
self.0 = new_tree; self.0 = new_tree;
removed removed
@ -79,7 +79,7 @@ impl<K: Clone + Debug + Default + Ord, V: Clone + Debug> TreeMap<K, V> {
let mut cursor = self.0.cursor::<MapKeyRef<'_, K>>(); let mut cursor = self.0.cursor::<MapKeyRef<'_, K>>();
let mut new_tree = cursor.slice(&start, Bias::Left, &()); let mut new_tree = cursor.slice(&start, Bias::Left, &());
cursor.seek(&end, Bias::Left, &()); cursor.seek(&end, Bias::Left, &());
new_tree.push_tree(cursor.suffix(&()), &()); new_tree.append(cursor.suffix(&()), &());
drop(cursor); drop(cursor);
self.0 = new_tree; self.0 = new_tree;
} }
@ -117,7 +117,7 @@ impl<K: Clone + Debug + Default + Ord, V: Clone + Debug> TreeMap<K, V> {
new_tree.push(updated, &()); new_tree.push(updated, &());
cursor.next(&()); cursor.next(&());
} }
new_tree.push_tree(cursor.suffix(&()), &()); new_tree.append(cursor.suffix(&()), &());
drop(cursor); drop(cursor);
self.0 = new_tree; self.0 = new_tree;
result result

View File

@ -600,7 +600,7 @@ impl Buffer {
let mut old_fragments = self.fragments.cursor::<FragmentTextSummary>(); let mut old_fragments = self.fragments.cursor::<FragmentTextSummary>();
let mut new_fragments = let mut new_fragments =
old_fragments.slice(&edits.peek().unwrap().0.start, Bias::Right, &None); old_fragments.slice(&edits.peek().unwrap().0.start, Bias::Right, &None);
new_ropes.push_tree(new_fragments.summary().text); new_ropes.append(new_fragments.summary().text);
let mut fragment_start = old_fragments.start().visible; let mut fragment_start = old_fragments.start().visible;
for (range, new_text) in edits { for (range, new_text) in edits {
@ -625,8 +625,8 @@ impl Buffer {
} }
let slice = old_fragments.slice(&range.start, Bias::Right, &None); let slice = old_fragments.slice(&range.start, Bias::Right, &None);
new_ropes.push_tree(slice.summary().text); new_ropes.append(slice.summary().text);
new_fragments.push_tree(slice, &None); new_fragments.append(slice, &None);
fragment_start = old_fragments.start().visible; fragment_start = old_fragments.start().visible;
} }
@ -728,8 +728,8 @@ impl Buffer {
} }
let suffix = old_fragments.suffix(&None); let suffix = old_fragments.suffix(&None);
new_ropes.push_tree(suffix.summary().text); new_ropes.append(suffix.summary().text);
new_fragments.push_tree(suffix, &None); new_fragments.append(suffix, &None);
let (visible_text, deleted_text) = new_ropes.finish(); let (visible_text, deleted_text) = new_ropes.finish();
drop(old_fragments); drop(old_fragments);
@ -828,7 +828,7 @@ impl Buffer {
Bias::Left, Bias::Left,
&cx, &cx,
); );
new_ropes.push_tree(new_fragments.summary().text); new_ropes.append(new_fragments.summary().text);
let mut fragment_start = old_fragments.start().0.full_offset(); let mut fragment_start = old_fragments.start().0.full_offset();
for (range, new_text) in edits { for (range, new_text) in edits {
@ -854,8 +854,8 @@ impl Buffer {
let slice = let slice =
old_fragments.slice(&VersionedFullOffset::Offset(range.start), Bias::Left, &cx); old_fragments.slice(&VersionedFullOffset::Offset(range.start), Bias::Left, &cx);
new_ropes.push_tree(slice.summary().text); new_ropes.append(slice.summary().text);
new_fragments.push_tree(slice, &None); new_fragments.append(slice, &None);
fragment_start = old_fragments.start().0.full_offset(); fragment_start = old_fragments.start().0.full_offset();
} }
@ -986,8 +986,8 @@ impl Buffer {
} }
let suffix = old_fragments.suffix(&cx); let suffix = old_fragments.suffix(&cx);
new_ropes.push_tree(suffix.summary().text); new_ropes.append(suffix.summary().text);
new_fragments.push_tree(suffix, &None); new_fragments.append(suffix, &None);
let (visible_text, deleted_text) = new_ropes.finish(); let (visible_text, deleted_text) = new_ropes.finish();
drop(old_fragments); drop(old_fragments);
@ -1056,8 +1056,8 @@ impl Buffer {
for fragment_id in self.fragment_ids_for_edits(undo.counts.keys()) { for fragment_id in self.fragment_ids_for_edits(undo.counts.keys()) {
let preceding_fragments = old_fragments.slice(&Some(fragment_id), Bias::Left, &None); let preceding_fragments = old_fragments.slice(&Some(fragment_id), Bias::Left, &None);
new_ropes.push_tree(preceding_fragments.summary().text); new_ropes.append(preceding_fragments.summary().text);
new_fragments.push_tree(preceding_fragments, &None); new_fragments.append(preceding_fragments, &None);
if let Some(fragment) = old_fragments.item() { if let Some(fragment) = old_fragments.item() {
let mut fragment = fragment.clone(); let mut fragment = fragment.clone();
@ -1087,8 +1087,8 @@ impl Buffer {
} }
let suffix = old_fragments.suffix(&None); let suffix = old_fragments.suffix(&None);
new_ropes.push_tree(suffix.summary().text); new_ropes.append(suffix.summary().text);
new_fragments.push_tree(suffix, &None); new_fragments.append(suffix, &None);
drop(old_fragments); drop(old_fragments);
let (visible_text, deleted_text) = new_ropes.finish(); let (visible_text, deleted_text) = new_ropes.finish();
@ -2070,7 +2070,7 @@ impl<'a> RopeBuilder<'a> {
} }
} }
fn push_tree(&mut self, len: FragmentTextSummary) { fn append(&mut self, len: FragmentTextSummary) {
self.push(len.visible, true, true); self.push(len.visible, true, true);
self.push(len.deleted, false, false); self.push(len.deleted, false, false);
} }