diff options
| author | bors <bors@rust-lang.org> | 2022-05-18 17:48:46 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-05-18 17:48:46 +0000 |
| commit | 07ae142d77f56dd48f2736605e0a6c015f2aecc6 (patch) | |
| tree | 548d6f2f42fb052207a7c2e0063ddbd608f4ff6e /compiler/rustc_ast_lowering/src | |
| parent | 10d9ecda48f828e174d7a863fc43a155ad086efd (diff) | |
| parent | 303dcfb9cf24091436df7bb77043b149957722c1 (diff) | |
| download | rust-07ae142d77f56dd48f2736605e0a6c015f2aecc6.tar.gz rust-07ae142d77f56dd48f2736605e0a6c015f2aecc6.zip | |
Auto merge of #96863 - SparrowLii:let, r=michaelwoerister
use `hir::Let` in `hir::Guard::IfLet` This PR fixes the FIXME about using `hir::Let` in `hir::Guard::IfLet`
Diffstat (limited to 'compiler/rustc_ast_lowering/src')
| -rw-r--r-- | compiler/rustc_ast_lowering/src/expr.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/rustc_ast_lowering/src/expr.rs b/compiler/rustc_ast_lowering/src/expr.rs index 410ed3f0bdc..3aff04f78fb 100644 --- a/compiler/rustc_ast_lowering/src/expr.rs +++ b/compiler/rustc_ast_lowering/src/expr.rs @@ -505,8 +505,14 @@ impl<'hir> LoweringContext<'_, 'hir> { fn lower_arm(&mut self, arm: &Arm) -> hir::Arm<'hir> { let pat = self.lower_pat(&arm.pat); let guard = arm.guard.as_ref().map(|cond| { - if let ExprKind::Let(ref pat, ref scrutinee, _) = cond.kind { - hir::Guard::IfLet(self.lower_pat(pat), self.lower_expr(scrutinee)) + if let ExprKind::Let(ref pat, ref scrutinee, span) = cond.kind { + hir::Guard::IfLet(self.arena.alloc(hir::Let { + hir_id: self.next_id(), + span: self.lower_span(span), + pat: self.lower_pat(pat), + ty: None, + init: self.lower_expr(scrutinee), + })) } else { hir::Guard::If(self.lower_expr(cond)) } |
