diff options
Diffstat (limited to '')
| -rw-r--r-- | src/util/slice.rs | 24 | 
1 files changed, 10 insertions, 14 deletions
| diff --git a/src/util/slice.rs b/src/util/slice.rs index 4c942b9..869ecca 100644 --- a/src/util/slice.rs +++ b/src/util/slice.rs @@ -29,18 +29,14 @@ impl<'a> Position<'a> {          debug_assert_eq!(exit.kind, Kind::Exit, "expected `exit` event");          let mut enter_index = index - 1; -        loop { -            let enter = &events[enter_index]; -            if enter.kind == Kind::Enter && enter.name == exit.name { -                let position = Position { -                    start: &enter.point, -                    end: &exit.point, -                }; -                return position; -            } - +        while events[enter_index].kind != Kind::Enter || events[enter_index].name != exit.name {              enter_index -= 1;          } + +        Position { +            start: &events[enter_index].point, +            end: &exit.point, +        }      }      /// Turn a position into indices. @@ -122,6 +118,10 @@ impl<'a> Slice<'a> {      ///      /// Supports virtual spaces.      pub fn serialize(&self) -> String { +        debug_assert_eq!(self.after, 0, "expected no trailing vs"); +        // If the above ever starts erroring, handle the same as `self.before` +        // above but with `self.after`. +        // It’d currently be unused code.          let mut string = String::with_capacity(self.len());          let mut index = self.before;          while index > 0 { @@ -129,10 +129,6 @@ impl<'a> Slice<'a> {              index -= 1;          }          string.push_str(self.as_str()); -        debug_assert_eq!(self.after, 0, "expected no trailing vs"); -        // If the above ever starts erroring, handle the same as `self.before` -        // above but with `self.after`. -        // It’d currently be unused code.          string      }  } | 
