@@ -494,7 +494,13 @@ impl Syntax {
496 for layer in &mut self.layers.values_mut() {
496 for layer in &mut self.layers.values_mut() {
497+ // The root layer always covers the whole range (0..usize::MAX)
498+ if layer.depth == 0 {
497 for range in &mut layer.ranges {
502 for range in &mut layer.ranges {
503+ // Roughly based on https://github.com/tree-sitter/tree-sitter/blob/ddeaa0c7f534268b35b4f6cb39b52df082754413/lib/src/subtree.c#L691-L720
498 for edit in edits.iter().rev() {
504 for edit in edits.iter().rev() {
499 let is_pure_insertion = edit.old_end_byte == edit.start_byte;
505 let is_pure_insertion = edit.old_end_byte == edit.start_byte;