From ec0eeaf69df7efbea07e64ceb82e7e4e9b751d4c Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 15 Oct 2025 15:28:51 +0200 Subject: [PATCH] rope: Assert utf8 boundary of start of `Chunks::new` range (#40253) We seem to run into panics in related code, so better assert early Release Notes: - N/A *or* Added/Fixed/Improved ... --- crates/rope/src/rope.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/rope/src/rope.rs b/crates/rope/src/rope.rs index c349f3f451..db79e6b03f 100644 --- a/crates/rope/src/rope.rs +++ b/crates/rope/src/rope.rs @@ -673,6 +673,12 @@ impl<'a> Chunks<'a> { chunks.seek(&range.start, Bias::Right); range.start }; + let chunk_offset = offset - chunks.start(); + if let Some(chunk) = chunks.item() + && !chunk.text.is_char_boundary(chunk_offset) + { + panic!("byte index {} is not a char boundary", offset); + } Self { chunks, range,