about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser/expr.rs
diff options
context:
space:
mode:
authorTshepang Mbambo <tshepang@gmail.com>2025-04-28 06:25:10 +0200
committerGitHub <noreply@github.com>2025-04-28 06:25:10 +0200
commit1b53c12753a9ecead0e9728e01dcc2a7c07c18f9 (patch)
tree87e76fd223f1937ee26537e1028d44e7f6b65544 /compiler/rustc_parse/src/parser/expr.rs
parentd91ffb6da5c306150e53f73a361f69837bc39851 (diff)
parentaa15830ee2defbac8e784db5510bb914e6e4c820 (diff)
downloadrust-1b53c12753a9ecead0e9728e01dcc2a7c07c18f9.tar.gz
rust-1b53c12753a9ecead0e9728e01dcc2a7c07c18f9.zip
Merge pull request #2358 from rust-lang/rustc-pull
Rustc pull update
Diffstat (limited to 'compiler/rustc_parse/src/parser/expr.rs')
-rw-r--r--compiler/rustc_parse/src/parser/expr.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs
index 370eb3f402d..f3b53971b29 100644
--- a/compiler/rustc_parse/src/parser/expr.rs
+++ b/compiler/rustc_parse/src/parser/expr.rs
@@ -4073,14 +4073,18 @@ impl MutVisitor for CondChecker<'_> {
         match e.kind {
             ExprKind::Let(_, _, _, ref mut recovered @ Recovered::No) => {
                 if let Some(reason) = self.forbid_let_reason {
-                    *recovered = Recovered::Yes(self.parser.dcx().emit_err(
-                        errors::ExpectedExpressionFoundLet {
+                    let error = match reason {
+                        NotSupportedOr(or_span) => {
+                            self.parser.dcx().emit_err(errors::OrInLetChain { span: or_span })
+                        }
+                        _ => self.parser.dcx().emit_err(errors::ExpectedExpressionFoundLet {
                             span,
                             reason,
                             missing_let: self.missing_let,
                             comparison: self.comparison,
-                        },
-                    ));
+                        }),
+                    };
+                    *recovered = Recovered::Yes(error);
                 } else if self.depth > 1 {
                     // Top level `let` is always allowed; only gate chains
                     match self.let_chains_policy {