Rollup merge of #100307 - nnethercote:fix-96847, r=cjgillot
Fix #96847 r? `@petrochenkov`
This commit is contained in:
commit
e221aafae6
23 changed files with 17 additions and 5 deletions
|
@ -1536,15 +1536,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
hir::MatchSource::ForLoopDesugar,
|
||||
));
|
||||
|
||||
let attrs: Vec<_> = e.attrs.iter().map(|a| self.lower_attr(a)).collect();
|
||||
|
||||
// This is effectively `{ let _result = ...; _result }`.
|
||||
// The construct was introduced in #21984 and is necessary to make sure that
|
||||
// temporaries in the `head` expression are dropped and do not leak to the
|
||||
// surrounding scope of the `match` since the `match` is not a terminating scope.
|
||||
//
|
||||
// Also, add the attributes to the outer returned expr node.
|
||||
self.expr_drop_temps_mut(for_span, match_expr, attrs.into())
|
||||
self.expr_drop_temps_mut(for_span, match_expr, e.attrs.clone())
|
||||
}
|
||||
|
||||
/// Desugar `ExprKind::Try` from: `<expr>?` into:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue