diff options
| author | bors <bors@rust-lang.org> | 2023-12-12 18:20:37 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-12-12 18:20:37 +0000 |
| commit | 028b6d152e904bbc02dc3cd67e4cbdffcbd039e1 (patch) | |
| tree | 6dea1bd60836bdea9b162bb56e86ee6eb55e74cd /compiler/rustc_parse/src/parser | |
| parent | 835ed0021e149cacb2d464cdbc35816b5d551c0e (diff) | |
| parent | 010f30150a4cd26599bc59b8b3d7bc12c103fca2 (diff) | |
| download | rust-028b6d152e904bbc02dc3cd67e4cbdffcbd039e1.tar.gz rust-028b6d152e904bbc02dc3cd67e4cbdffcbd039e1.zip | |
Auto merge of #118881 - matthiaskrgr:rollup-0rl3tir, r=matthiaskrgr
Rollup of 9 pull requests Successful merges: - #116740 (dont ICE when ConstKind::Expr for is_const_evaluatable) - #117914 (On borrow return type, suggest borrowing from arg or owned return type) - #117927 (Clarify how to choose a FutureIncompatibilityReason variant.) - #118855 (Improve an error involving attribute values.) - #118856 (rustdoc-search: clean up parser) - #118865 (rustc_codegen_llvm: Enforce `rustc::potential_query_instability` lint) - #118866 (llvm-wrapper: adapt for LLVM API change) - #118868 (Correctly gate the parsing of match arms without body) - #118877 (tests: CGU tests require build-pass, not check-pass (remove FIXME)) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_parse/src/parser')
| -rw-r--r-- | compiler/rustc_parse/src/parser/expr.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs index 3c0627526be..5b0011e9f70 100644 --- a/compiler/rustc_parse/src/parser/expr.rs +++ b/compiler/rustc_parse/src/parser/expr.rs @@ -2918,7 +2918,15 @@ impl<'a> Parser<'a> { let mut result = if !is_fat_arrow && !is_almost_fat_arrow { // A pattern without a body, allowed for never patterns. arm_body = None; - this.expect_one_of(&[token::Comma], &[token::CloseDelim(Delimiter::Brace)]) + this.expect_one_of(&[token::Comma], &[token::CloseDelim(Delimiter::Brace)]).map( + |x| { + // Don't gate twice + if !pat.contains_never_pattern() { + this.sess.gated_spans.gate(sym::never_patterns, pat.span); + } + x + }, + ) } else { if let Err(mut err) = this.expect(&token::FatArrow) { // We might have a `=>` -> `=` or `->` typo (issue #89396). |
