Tighten spans for async blocks
This commit is contained in:
parent
036b38ced3
commit
789ee88bd0
43 changed files with 173 additions and 204 deletions
|
@ -1454,7 +1454,10 @@ pub enum ExprKind {
|
|||
Block(P<Block>, Option<Label>),
|
||||
/// An `async` block (`async move { ... }`),
|
||||
/// or a `gen` block (`gen move { ... }`)
|
||||
Gen(CaptureBy, P<Block>, GenBlockKind),
|
||||
///
|
||||
/// The span is the "decl", which is the header before the body `{ }`
|
||||
/// including the `asyng`/`gen` keywords and possibly `move`.
|
||||
Gen(CaptureBy, P<Block>, GenBlockKind, Span),
|
||||
/// An await expression (`my_future.await`). Span is of await keyword.
|
||||
Await(P<Expr>, Span),
|
||||
|
||||
|
|
|
@ -1528,8 +1528,9 @@ pub fn noop_visit_expr<T: MutVisitor>(
|
|||
visit_opt(label, |label| vis.visit_label(label));
|
||||
vis.visit_block(blk);
|
||||
}
|
||||
ExprKind::Gen(_capture_by, body, _kind) => {
|
||||
ExprKind::Gen(_capture_by, body, _kind, decl_span) => {
|
||||
vis.visit_block(body);
|
||||
vis.visit_span(decl_span);
|
||||
}
|
||||
ExprKind::Await(expr, await_kw_span) => {
|
||||
vis.visit_expr(expr);
|
||||
|
|
|
@ -1122,7 +1122,7 @@ pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) -> V
|
|||
visit_opt!(visitor, visit_label, opt_label);
|
||||
try_visit!(visitor.visit_block(block));
|
||||
}
|
||||
ExprKind::Gen(_capt, body, _kind) => try_visit!(visitor.visit_block(body)),
|
||||
ExprKind::Gen(_capt, body, _kind, _decl_span) => try_visit!(visitor.visit_block(body)),
|
||||
ExprKind::Await(expr, _span) => try_visit!(visitor.visit_expr(expr)),
|
||||
ExprKind::Assign(lhs, rhs, _span) => {
|
||||
try_visit!(visitor.visit_expr(lhs));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue