diff --git a/crates/rope/src/rope.rs b/crates/rope/src/rope.rs index c349f3f4513ae0f229ac866cfae36c63734a5c22..db79e6b03f5e0705a67f7acec5bf20eaaa875cd8 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,