Skip to content

Commit 09f774d

Browse files
committed
Mark all arms as being from a desugaring when lowering ? and for loops.
1 parent 94b49fd commit 09f774d

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

  • compiler/rustc_ast_lowering/src

compiler/rustc_ast_lowering/src/expr.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -941,14 +941,14 @@ impl<'hir> LoweringContext<'_, 'hir> {
941941
hir::ExprKind::Break(this.lower_loop_destination(None), Some(x_expr));
942942
this.arena.alloc(this.expr(gen_future_span, expr_break))
943943
});
944-
self.arm(ready_pat, break_x)
944+
self.arm(ready_pat, break_x, span)
945945
};
946946

947947
// `::std::task::Poll::Pending => {}`
948948
let pending_arm = {
949949
let pending_pat = self.pat_lang_item_variant(span, hir::LangItem::PollPending, &[]);
950950
let empty_block = self.expr_block_empty(span);
951-
self.arm(pending_pat, empty_block)
951+
self.arm(pending_pat, empty_block, span)
952952
};
953953

954954
let inner_match_stmt = {
@@ -1002,7 +1002,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
10021002
});
10031003

10041004
// mut __awaitee => loop { ... }
1005-
let awaitee_arm = self.arm(awaitee_pat, loop_expr);
1005+
let awaitee_arm = self.arm(awaitee_pat, loop_expr, span);
10061006

10071007
// `match ::std::future::IntoFuture::into_future(<expr>) { ... }`
10081008
let into_future_expr = match await_kind {
@@ -1788,7 +1788,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
17881788
let break_expr =
17891789
self.with_loop_scope(loop_hir_id, |this| this.expr_break_alloc(for_span));
17901790
let pat = self.pat_none(for_span);
1791-
self.arm(pat, break_expr)
1791+
self.arm(pat, break_expr, for_span)
17921792
};
17931793

17941794
// Some(<pat>) => <body>,
@@ -1797,7 +1797,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
17971797
let body_block =
17981798
self.with_loop_scope(loop_hir_id, |this| this.lower_block(body, false));
17991799
let body_expr = self.arena.alloc(self.expr_block(body_block));
1800-
self.arm(some_pat, body_expr)
1800+
self.arm(some_pat, body_expr, for_span)
18011801
};
18021802

18031803
// `mut iter`
@@ -1856,7 +1856,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
18561856
let loop_expr = self.arena.alloc(hir::Expr { hir_id: loop_hir_id, kind, span: for_span });
18571857

18581858
// `mut iter => { ... }`
1859-
let iter_arm = self.arm(iter_pat, loop_expr);
1859+
let iter_arm = self.arm(iter_pat, loop_expr, for_span);
18601860

18611861
let match_expr = match loop_kind {
18621862
ForLoopKind::For => {
@@ -1901,7 +1901,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
19011901
hir::LangItem::IntoAsyncIterIntoIter,
19021902
arena_vec![self; head],
19031903
);
1904-
let iter_arm = self.arm(async_iter_pat, inner_match_expr);
1904+
let iter_arm = self.arm(async_iter_pat, inner_match_expr, for_span);
19051905
self.arena.alloc(self.expr_match(
19061906
for_span,
19071907
iter,
@@ -1968,7 +1968,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
19681968
let val_expr = self.expr_ident(span, val_ident, val_pat_nid);
19691969
self.lower_attrs(val_expr.hir_id, &attrs, span, Target::Expression);
19701970
let continue_pat = self.pat_cf_continue(unstable_span, val_pat);
1971-
self.arm(continue_pat, val_expr)
1971+
self.arm(continue_pat, val_expr, try_span)
19721972
};
19731973

19741974
// `ControlFlow::Break(residual) =>
@@ -2004,7 +2004,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
20042004
self.lower_attrs(ret_expr.hir_id, &attrs, span, Target::Expression);
20052005

20062006
let break_pat = self.pat_cf_break(try_span, residual_local);
2007-
self.arm(break_pat, ret_expr)
2007+
self.arm(break_pat, ret_expr, try_span)
20082008
};
20092009

20102010
hir::ExprKind::Match(
@@ -2329,12 +2329,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
23292329
&mut self,
23302330
pat: &'hir hir::Pat<'hir>,
23312331
expr: &'hir hir::Expr<'hir>,
2332+
span: Span,
23322333
) -> hir::Arm<'hir> {
23332334
hir::Arm {
23342335
hir_id: self.next_id(),
23352336
pat,
23362337
guard: None,
2337-
span: self.lower_span(expr.span),
2338+
span: self.lower_span(span),
23382339
body: expr,
23392340
}
23402341
}

0 commit comments

Comments
 (0)