about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2021-01-24 16:41:12 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2021-01-24 17:11:56 +0300
commitbd07165690481aaa4c99b9c3ab6e20fbebae8f54 (patch)
treeaeac2d99b9bdae79f1c90ddceb1a41b78ea94a2e /compiler/rustc_parse/src/parser
parent72c7b7026742766998655eba95fca984046c0288 (diff)
downloadrust-bd07165690481aaa4c99b9c3ab6e20fbebae8f54.tar.gz
rust-bd07165690481aaa4c99b9c3ab6e20fbebae8f54.zip
parser: Collect tokens for values in key-value attributes
Diffstat (limited to 'compiler/rustc_parse/src/parser')
-rw-r--r--compiler/rustc_parse/src/parser/mod.rs8
1 files changed, 2 insertions, 6 deletions
diff --git a/compiler/rustc_parse/src/parser/mod.rs b/compiler/rustc_parse/src/parser/mod.rs
index f11c6591de9..c575c821964 100644
--- a/compiler/rustc_parse/src/parser/mod.rs
+++ b/compiler/rustc_parse/src/parser/mod.rs
@@ -980,12 +980,8 @@ impl<'a> Parser<'a> {
                         }
                     }
 
-                    // The value here is never passed to macros as tokens by itself (not as a part
-                    // of the whole attribute), so we don't collect tokens here. If this changes,
-                    // then token will need to be collected. One catch here is that we are using
-                    // a nonterminal for keeping the expression, but this nonterminal should not
-                    // be wrapped into a group when converting to token stream.
-                    let expr = self.parse_expr()?;
+                    // Collect tokens because they are used during lowering to HIR.
+                    let expr = self.collect_tokens(|this| this.parse_expr())?;
                     let span = expr.span;
 
                     match &expr.kind {