Make the parser TokenStream more resilient after mismatched delimiter recovery

This commit is contained in:
Esteban Küber
2019-07-22 18:29:49 -07:00
parent 4bc1ce7bdb
commit 5b3b6b8d00
3 changed files with 38 additions and 0 deletions

View File

@@ -7670,6 +7670,9 @@ impl<'a> Parser<'a> {
let ret = f(self);
let last_token = if self.token_cursor.stack.len() == prev {
&mut self.token_cursor.frame.last_token
} else if self.token_cursor.stack.is_empty() {//&& !self.unclosed_delims.is_empty() {
// This can happen with mismatched delimiters (#62881)
return Ok((ret?, TokenStream::new(vec![])));
} else {
&mut self.token_cursor.stack[prev].last_token
};