Ensure top of cursor stack is either empty or a leaf node

Antonio Scandurra , Nathan Sobo , and Max Brunsfeld created

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Change summary

zed/src/sum_tree/cursor.rs | 2 ++
1 file changed, 2 insertions(+)

Detailed changes

zed/src/sum_tree/cursor.rs 🔗

@@ -271,6 +271,7 @@ where
         }
 
         self.at_end = self.stack.is_empty();
+        debug_assert!(self.stack.is_empty() || self.stack.last().unwrap().tree.0.is_leaf());
     }
 
     pub fn descend_to_first_item<F>(&mut self, mut subtree: &'a SumTree<T>, filter_node: F)
@@ -656,6 +657,7 @@ where
         }
 
         self.at_end = self.stack.is_empty();
+        debug_assert!(self.stack.is_empty() || self.stack.last().unwrap().tree.0.is_leaf());
         if bias == SeekBias::Left {
             let mut end = self.seek_dimension.clone();
             if let Some(summary) = self.item_summary() {