syntax/hir: give loop labels a span
This makes the "shadowing labels" warning *not* print the entire loop as a span, but only the lifetime. Also makes #31719 go away, but does not fix its root cause (the span of the expanded loop is still wonky, but not used anymore).
This commit is contained in:
committed by
Georg Brandl
parent
dd6e8d45e1
commit
2e812e10f4
@@ -1212,23 +1212,27 @@ pub fn noop_fold_expr<T: Folder>(Expr {id, node, span, attrs}: Expr, folder: &mu
|
||||
ExprKind::While(cond, body, opt_ident) => {
|
||||
ExprKind::While(folder.fold_expr(cond),
|
||||
folder.fold_block(body),
|
||||
opt_ident.map(|i| folder.fold_ident(i)))
|
||||
opt_ident.map(|label| respan(folder.new_span(label.span),
|
||||
folder.fold_ident(label.node))))
|
||||
}
|
||||
ExprKind::WhileLet(pat, expr, body, opt_ident) => {
|
||||
ExprKind::WhileLet(folder.fold_pat(pat),
|
||||
folder.fold_expr(expr),
|
||||
folder.fold_block(body),
|
||||
opt_ident.map(|i| folder.fold_ident(i)))
|
||||
opt_ident.map(|label| respan(folder.new_span(label.span),
|
||||
folder.fold_ident(label.node))))
|
||||
}
|
||||
ExprKind::ForLoop(pat, iter, body, opt_ident) => {
|
||||
ExprKind::ForLoop(folder.fold_pat(pat),
|
||||
folder.fold_expr(iter),
|
||||
folder.fold_block(body),
|
||||
opt_ident.map(|i| folder.fold_ident(i)))
|
||||
opt_ident.map(|label| respan(folder.new_span(label.span),
|
||||
folder.fold_ident(label.node))))
|
||||
}
|
||||
ExprKind::Loop(body, opt_ident) => {
|
||||
ExprKind::Loop(folder.fold_block(body),
|
||||
opt_ident.map(|i| folder.fold_ident(i)))
|
||||
opt_ident.map(|label| respan(folder.new_span(label.span),
|
||||
folder.fold_ident(label.node))))
|
||||
}
|
||||
ExprKind::Match(expr, arms) => {
|
||||
ExprKind::Match(folder.fold_expr(expr),
|
||||
|
||||
Reference in New Issue
Block a user