about summary refs log tree commit diff
path: root/compiler/rustc_parse/src
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2024-08-12 10:27:19 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2024-08-12 13:00:12 +1000
commit46b4c5adc5698c3e9543e17a1ed0f8073bafd1d3 (patch)
tree8848fa0a76b4e994a1adc220d686eb1173b4ed4b /compiler/rustc_parse/src
parentfac77538022b32b4298833b541feb457ca4548b0 (diff)
downloadrust-46b4c5adc5698c3e9543e17a1ed0f8073bafd1d3.tar.gz
rust-46b4c5adc5698c3e9543e17a1ed0f8073bafd1d3.zip
Fix bug in `Parser::look_ahead`.
The special case was failing to handle invisible delimiters on one path.

Fixes #128895.
Diffstat (limited to 'compiler/rustc_parse/src')
-rw-r--r--compiler/rustc_parse/src/parser/mod.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/rustc_parse/src/parser/mod.rs b/compiler/rustc_parse/src/parser/mod.rs
index 4b8e4c25e16..5e29cee9db6 100644
--- a/compiler/rustc_parse/src/parser/mod.rs
+++ b/compiler/rustc_parse/src/parser/mod.rs
@@ -1166,10 +1166,12 @@ impl<'a> Parser<'a> {
             match self.token_cursor.tree_cursor.look_ahead(0) {
                 Some(tree) => {
                     // Indexing stayed within the current token tree.
-                    return match tree {
-                        TokenTree::Token(token, _) => looker(token),
-                        TokenTree::Delimited(dspan, _, delim, _) => {
-                            looker(&Token::new(token::OpenDelim(*delim), dspan.open))
+                    match tree {
+                        TokenTree::Token(token, _) => return looker(token),
+                        &TokenTree::Delimited(dspan, _, delim, _) => {
+                            if delim != Delimiter::Invisible {
+                                return looker(&Token::new(token::OpenDelim(delim), dspan.open));
+                            }
                         }
                     };
                 }