Fixing the regression 🩹

This commit is contained in:
Martin Haug 2020-08-27 20:56:44 +02:00
parent 3abb9ec319
commit c099b8b9b4

View File

@ -431,23 +431,23 @@ impl Parser<'_> {
// Parsing primitives. // Parsing primitives.
impl<'s> Parser<'s> { impl<'s> Parser<'s> {
fn start_group(&mut self, delimiter: Group) { fn start_group(&mut self, group: Group) {
let start = self.pos(); let start = self.pos();
if let Some(start_token) = delimiter.start() { if let Some(start_token) = group.start() {
self.assert(start_token); self.assert(start_token);
} }
self.delimiters.push((start, delimiter.end())); self.delimiters.push((start, group.end()));
} }
fn end_group(&mut self) -> Span { fn end_group(&mut self) -> Span {
let peeked = self.peek();
let (start, end_token) = self.delimiters.pop() let (start, end_token) = self.delimiters.pop()
.expect("group was not started"); .expect("group was not started");
if end_token != Token::Chain { if end_token != Token::Chain && peeked != None {
if self.peek() != None { self.delimiters.push((start, end_token));
self.delimiters.push((start, end_token)); assert_eq!(peeked, None, "unfinished group");
assert_eq!(self.peek(), None, "unfinished group");
}
} }
match self.peeked.unwrap() { match self.peeked.unwrap() {