diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 1a1bf7cc66b9580e2328a29ae07d294654ca1447..df7a6c7eba716b766651862909617f4efb0f0fce 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -4952,6 +4952,9 @@ impl Editor { ); let offsets = snapshot.summaries_for_anchors::(anchors_with_status.iter().map(|a| &a.1)); + assert_eq!(anchors_with_status.len(), 2 * self.selections.len()); + assert_eq!(offsets.len(), anchors_with_status.len()); + let offsets = offsets.chunks(2); let statuses = anchors_with_status .chunks(2) @@ -4992,6 +4995,11 @@ impl Editor { pending_selection: Option, cx: &mut ViewContext, ) { + assert!( + !selections.is_empty() || pending_selection.is_some(), + "must have at least one selection" + ); + let old_cursor_position = self.newest_anchor_selection().head(); self.selections = selections; diff --git a/crates/editor/src/multi_buffer.rs b/crates/editor/src/multi_buffer.rs index fa35ad206b7cec6091af7a470c1d339df921021c..4a6169e5d362833acbed6eaa228443081b404d0f 100644 --- a/crates/editor/src/multi_buffer.rs +++ b/crates/editor/src/multi_buffer.rs @@ -3357,7 +3357,7 @@ mod tests { } 40..=44 if !anchors.is_empty() => { let multibuffer = multibuffer.read(cx).read(cx); - + let prev_len = anchors.len(); anchors = multibuffer .refresh_anchors(&anchors) .into_iter() @@ -3366,6 +3366,7 @@ mod tests { // Ensure the newly-refreshed anchors point to a valid excerpt and don't // overshoot its boundaries. + assert_eq!(anchors.len(), prev_len); let mut cursor = multibuffer.excerpts.cursor::>(); for anchor in &anchors { if anchor.excerpt_id == ExcerptId::min() @@ -3663,10 +3664,9 @@ mod tests { } // Anchor resolution - for (anchor, resolved_offset) in anchors - .iter() - .zip(snapshot.summaries_for_anchors::(&anchors)) - { + let summaries = snapshot.summaries_for_anchors::(&anchors); + assert_eq!(anchors.len(), summaries.len()); + for (anchor, resolved_offset) in anchors.iter().zip(summaries) { assert!(resolved_offset <= snapshot.len()); assert_eq!( snapshot.summary_for_anchor::(anchor),