diff options
| author | bors <bors@rust-lang.org> | 2021-06-22 21:17:12 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-06-22 21:17:12 +0000 |
| commit | 6a758ea7e48416b968955535094479dc2e7cc9e1 (patch) | |
| tree | 8d9992caeb8917c25fa0a728c6e8209f33750fb9 /compiler/rustc_parse/src/parser | |
| parent | b8be3162d734f3583b240977615f3e1bae6b364a (diff) | |
| parent | 8ce761d75ed5132c90bfe28e983d83007b8ce7c3 (diff) | |
| download | rust-6a758ea7e48416b968955535094479dc2e7cc9e1.tar.gz rust-6a758ea7e48416b968955535094479dc2e7cc9e1.zip | |
Auto merge of #85193 - pnkfelix:readd-support-for-inner-attrs-within-match, r=nikomatsakis
Re-add support for parsing (and pretty-printing) inner-attributes in match body
Re-add support for parsing (and pretty-printing) inner-attributes within body of a `match`.
In other words, we can do `match EXPR { #![inner_attr] ARM_1 ARM_2 ... }` again.
I believe this unbreaks the only four crates that crater flagged as broken by PR #83312.
(I am putting this up so that the lang-team can check it out and decide whether it changes their mind about what to do regarding PR #83312.)
Diffstat (limited to 'compiler/rustc_parse/src/parser')
| -rw-r--r-- | compiler/rustc_parse/src/parser/expr.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs index 88ebf4aca23..9dff40ff1ed 100644 --- a/compiler/rustc_parse/src/parser/expr.rs +++ b/compiler/rustc_parse/src/parser/expr.rs @@ -1945,7 +1945,7 @@ impl<'a> Parser<'a> { } /// Parses a `match ... { ... }` expression (`match` token already eaten). - fn parse_match_expr(&mut self, attrs: AttrVec) -> PResult<'a, P<Expr>> { + fn parse_match_expr(&mut self, mut attrs: AttrVec) -> PResult<'a, P<Expr>> { let match_span = self.prev_token.span; let lo = self.prev_token.span; let scrutinee = self.parse_expr_res(Restrictions::NO_STRUCT_LITERAL, None)?; @@ -1960,6 +1960,7 @@ impl<'a> Parser<'a> { } return Err(e); } + attrs.extend(self.parse_inner_attributes()?); let mut arms: Vec<Arm> = Vec::new(); while self.token != token::CloseDelim(token::Brace) { |
