diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-08-29 17:35:35 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-08-29 17:35:35 +0200 |
| commit | a71a2057f286677b5bf2e064fea05024aeca0dd2 (patch) | |
| tree | 716d85481aca232abdb6c2e01a0a545c003f4c6b /crates/typst-syntax/src/node.rs | |
| parent | 7bdf1f57b09ea605045254013a8200373451baf0 (diff) | |
More type safety for spans
Diffstat (limited to 'crates/typst-syntax/src/node.rs')
| -rw-r--r-- | crates/typst-syntax/src/node.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/crates/typst-syntax/src/node.rs b/crates/typst-syntax/src/node.rs index 8e4e056e..77c73f58 100644 --- a/crates/typst-syntax/src/node.rs +++ b/crates/typst-syntax/src/node.rs @@ -202,7 +202,7 @@ impl SyntaxNode { return Err(Unnumberable); } - let mid = Span::new(id, (within.start + within.end) / 2); + let mid = Span::new(id, (within.start + within.end) / 2).unwrap(); match &mut self.0 { Repr::Leaf(leaf) => leaf.span = mid, Repr::Inner(inner) => Arc::make_mut(inner).numberize(id, None, within)?, @@ -424,7 +424,7 @@ impl InnerNode { let mut start = within.start; if range.is_none() { let end = start + stride; - self.span = Span::new(id, (start + end) / 2); + self.span = Span::new(id, (start + end) / 2).unwrap(); self.upper = within.end; start = end; } @@ -448,6 +448,7 @@ impl InnerNode { mut range: Range<usize>, replacement: Vec<SyntaxNode>, ) -> NumberingResult { + let Some(id) = self.span.id() else { return Err(Unnumberable) }; let superseded = &self.children[range.clone()]; // Compute the new byte length. @@ -505,7 +506,6 @@ impl InnerNode { // Try to renumber. let within = start_number..end_number; - let id = self.span.id(); if self.numberize(id, Some(renumber), within).is_ok() { return Ok(()); } |
