diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2019-07-22 18:29:49 -0700 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2019-07-22 18:29:49 -0700 |
| commit | 5b3b6b8d00df27c46d6254c737b40e79bebcced2 (patch) | |
| tree | 84338ba1b682290252c5b3bdfa8ba667be55b414 /src/libsyntax/parse/parser.rs | |
| parent | 4bc1ce7bdb7f5dc9ea07c0b630c087d8e11140e4 (diff) | |
| download | rust-5b3b6b8d00df27c46d6254c737b40e79bebcced2.tar.gz rust-5b3b6b8d00df27c46d6254c737b40e79bebcced2.zip | |
Make the parser TokenStream more resilient after mismatched delimiter recovery
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 1d4d02c7325..197a9078b18 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -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 }; |
