about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser/expr.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-10-24 19:23:32 +0000
committerbors <bors@rust-lang.org>2020-10-24 19:23:32 +0000
commitffa2e7ae8fbf9badc035740db949b9dae271c29f (patch)
tree828c3a5e26b4b35d40aa7cd43ecabcf972892c89 /compiler/rustc_parse/src/parser/expr.rs
parent89fdb30892dbe330730ad1a1c1fe45b9046c2973 (diff)
parent5c7d8d049c88fe58fb4cf67f47e69ad5e6995e28 (diff)
downloadrust-ffa2e7ae8fbf9badc035740db949b9dae271c29f.tar.gz
rust-ffa2e7ae8fbf9badc035740db949b9dae271c29f.zip
Auto merge of #77255 - Aaron1011:feature/collect-attr-tokens, r=petrochenkov
Unconditionally capture tokens for attributes.

This allows us to avoid synthesizing tokens in `prepend_attr`, since we
have the original tokens available.

We still need to synthesize tokens when expanding `cfg_attr`,
but this is an unavoidable consequence of the syntax of `cfg_attr` -
the user does not supply the `#` and `[]` tokens that a `cfg_attr`
expands to.

This is based on PR https://github.com/rust-lang/rust/pull/77250 - this PR exposes a bug in the current `collect_tokens` implementation, which is fixed by the rewrite.
Diffstat (limited to 'compiler/rustc_parse/src/parser/expr.rs')
-rw-r--r--compiler/rustc_parse/src/parser/expr.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs
index 78c95428c72..c44e00f861d 100644
--- a/compiler/rustc_parse/src/parser/expr.rs
+++ b/compiler/rustc_parse/src/parser/expr.rs
@@ -1116,7 +1116,7 @@ impl<'a> Parser<'a> {
     ) -> PResult<'a, P<Expr>> {
         if needs_tokens {
             let (mut expr, tokens) = self.collect_tokens(f)?;
-            expr.tokens = Some(tokens);
+            expr.tokens = tokens;
             Ok(expr)
         } else {
             f(self)