Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/syntax_editor/edit_algo.rs')
-rw-r--r--crates/syntax/src/syntax_editor/edit_algo.rs5
1 files changed, 2 insertions, 3 deletions
diff --git a/crates/syntax/src/syntax_editor/edit_algo.rs b/crates/syntax/src/syntax_editor/edit_algo.rs
index 27ea03ec09..36f50e3918 100644
--- a/crates/syntax/src/syntax_editor/edit_algo.rs
+++ b/crates/syntax/src/syntax_editor/edit_algo.rs
@@ -111,8 +111,7 @@ pub(super) fn apply_edits(editor: SyntaxEditor) -> SyntaxEdit {
// Check if this change is dependent on another change (i.e. it's contained within another range)
if let Some(index) = changed_ancestors
.iter()
- .rev()
- .position(|ancestor| ancestor.affected_range().contains_range(change.target_range()))
+ .rposition(|ancestor| ancestor.affected_range().contains_range(change.target_range()))
{
// Pop off any ancestors that aren't applicable
changed_ancestors.drain((index + 1)..);
@@ -284,7 +283,7 @@ pub(super) fn apply_edits(editor: SyntaxEditor) -> SyntaxEdit {
}
}
- for DependentChange { parent, child } in dependent_changes.into_iter() {
+ for DependentChange { parent, child } in dependent_changes.into_iter().rev() {
let (input_ancestor, output_ancestor) = match &changes[parent as usize] {
// No change will depend on an insert since changes can only depend on nodes in the root tree
Change::Insert(_, _) | Change::InsertAll(_, _) => unreachable!(),