From c099b8b9b453485d85d1bc85b5402cc43886bf14 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Thu, 27 Aug 2020 20:56:44 +0200 Subject: =?UTF-8?q?Fixing=20the=20regression=20=F0=9F=A9=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/syntax/parsing.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/syntax/parsing.rs b/src/syntax/parsing.rs index 1c531cbd..7d3da63e 100644 --- a/src/syntax/parsing.rs +++ b/src/syntax/parsing.rs @@ -431,23 +431,23 @@ impl Parser<'_> { // Parsing primitives. impl<'s> Parser<'s> { - fn start_group(&mut self, delimiter: Group) { + fn start_group(&mut self, group: Group) { let start = self.pos(); - if let Some(start_token) = delimiter.start() { + if let Some(start_token) = group.start() { self.assert(start_token); } - self.delimiters.push((start, delimiter.end())); + self.delimiters.push((start, group.end())); } fn end_group(&mut self) -> Span { + let peeked = self.peek(); + let (start, end_token) = self.delimiters.pop() .expect("group was not started"); - if end_token != Token::Chain { - if self.peek() != None { - self.delimiters.push((start, end_token)); - assert_eq!(self.peek(), None, "unfinished group"); - } + if end_token != Token::Chain && peeked != None { + self.delimiters.push((start, end_token)); + assert_eq!(peeked, None, "unfinished group"); } match self.peeked.unwrap() { -- cgit v1.2.3