about summary refs log tree commit diff
diff options
context:
space:
mode:
authorjDomantas <djadenkus@gmail.com>2023-09-17 12:26:22 +0300
committerjDomantas <djadenkus@gmail.com>2023-09-17 12:46:41 +0300
commita0c31b73d8b81090e12605ca0392f3d4f677f55a (patch)
tree381afd0bf8becd5907ae813a6148a570979b0aa2
parenta77789e7aa50a652cbd15cfd400acdfc4602167c (diff)
downloadrust-a0c31b73d8b81090e12605ca0392f3d4f677f55a.tar.gz
rust-a0c31b73d8b81090e12605ca0392f3d4f677f55a.zip
don't skip the rest of the block after let-else
-rw-r--r--crates/hir-ty/src/infer/closure.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/crates/hir-ty/src/infer/closure.rs b/crates/hir-ty/src/infer/closure.rs
index 1f040393f1f..13d6b5643ac 100644
--- a/crates/hir-ty/src/infer/closure.rs
+++ b/crates/hir-ty/src/infer/closure.rs
@@ -469,13 +469,13 @@ impl InferenceContext<'_> {
                         Statement::Let { pat, type_ref: _, initializer, else_branch } => {
                             if let Some(else_branch) = else_branch {
                                 self.consume_expr(*else_branch);
-                                if let Some(initializer) = initializer {
-                                    self.consume_expr(*initializer);
-                                }
-                                return;
                             }
                             if let Some(initializer) = initializer {
-                                self.walk_expr(*initializer);
+                                if else_branch.is_some() {
+                                    self.consume_expr(*initializer);
+                                } else {
+                                    self.walk_expr(*initializer);
+                                }
                                 if let Some(place) = self.place_of_expr(*initializer) {
                                     self.consume_with_pat(place, *pat);
                                 }