diff options
| author | Dylan DPC <99973273+Dylan-DPC@users.noreply.github.com> | 2022-07-13 19:32:33 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-13 19:32:33 +0530 |
| commit | 0083cd2fd498edb6a4e37bf4c711d11364e0ef20 (patch) | |
| tree | ae0410e11bd58462d2ad36d710b887bf6dcb6dff /compiler/rustc_mir_transform | |
| parent | ca4e39400ef33198e2715973d1c67a1d3cee15e7 (diff) | |
| parent | 947cbda5eb557ee3015b2310adfc80a393e42051 (diff) | |
| download | rust-0083cd2fd498edb6a4e37bf4c711d11364e0ef20.tar.gz rust-0083cd2fd498edb6a4e37bf4c711d11364e0ef20.zip | |
Rollup merge of #98574 - dingxiangfei2009:let-else-thir, r=oli-obk
Lower let-else in MIR This MR will switch to lower let-else statements in MIR building instead. To lower let-else in MIR, we build a mini-switch two branches. One branch leads to the matching case, and the other leads to the `else` block. This arrangement will allow temporary lifetime analysis running as-is so that the temporaries are properly extended according to the same rule applied to regular `let` statements. cc https://github.com/rust-lang/rust/issues/87335 Fix #98672
Diffstat (limited to 'compiler/rustc_mir_transform')
| -rw-r--r-- | compiler/rustc_mir_transform/src/remove_uninit_drops.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/remove_uninit_drops.rs b/compiler/rustc_mir_transform/src/remove_uninit_drops.rs index efa45883eab..c48aa9a90ef 100644 --- a/compiler/rustc_mir_transform/src/remove_uninit_drops.rs +++ b/compiler/rustc_mir_transform/src/remove_uninit_drops.rs @@ -102,7 +102,7 @@ fn is_needs_drop_and_init<'tcx>( let field_needs_drop_and_init = |(f, f_ty, mpi)| { let child = move_path_children_matching(move_data, mpi, |x| x.is_field_to(f)); let Some(mpi) = child else { - return f_ty.needs_drop(tcx, param_env); + return Ty::needs_drop(f_ty, tcx, param_env); }; is_needs_drop_and_init(tcx, param_env, maybe_inits, move_data, f_ty, mpi) |
