diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-08-28 00:57:50 +0200 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-09-05 08:33:09 +0200 |
| commit | 998060ba3f7149145db095bc01e7bd2e396f3f2f (patch) | |
| tree | 05431268ef06c03fed9c9992b03b9a5fe734a1d8 /src/libsyntax | |
| parent | ca968a10d8d5155a067d9f9da98a90a3abf741cb (diff) | |
| download | rust-998060ba3f7149145db095bc01e7bd2e396f3f2f.tar.gz rust-998060ba3f7149145db095bc01e7bd2e396f3f2f.zip | |
or-patterns: syntax: adjust `visit` and `mut_visit`.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/mut_visit.rs | 13 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 17 |
2 files changed, 13 insertions, 17 deletions
diff --git a/src/libsyntax/mut_visit.rs b/src/libsyntax/mut_visit.rs index e14ca4b06a0..6023c5149d0 100644 --- a/src/libsyntax/mut_visit.rs +++ b/src/libsyntax/mut_visit.rs @@ -402,14 +402,11 @@ pub fn noop_visit_use_tree<T: MutVisitor>(use_tree: &mut UseTree, vis: &mut T) { vis.visit_span(span); } -pub fn noop_flat_map_arm<T: MutVisitor>( - mut arm: Arm, - vis: &mut T, -) -> SmallVec<[Arm; 1]> { - let Arm { attrs, pats, guard, body, span, id } = &mut arm; +pub fn noop_flat_map_arm<T: MutVisitor>(mut arm: Arm, vis: &mut T) -> SmallVec<[Arm; 1]> { + let Arm { attrs, pat, guard, body, span, id } = &mut arm; visit_attrs(attrs, vis); vis.visit_id(id); - visit_vec(pats, |pat| vis.visit_pat(pat)); + vis.visit_pat(pat); visit_opt(guard, |guard| vis.visit_expr(guard)); vis.visit_expr(body); vis.visit_span(span); @@ -1132,8 +1129,8 @@ pub fn noop_visit_expr<T: MutVisitor>(Expr { node, id, span, attrs }: &mut Expr, vis.visit_ty(ty); } ExprKind::AddrOf(_m, ohs) => vis.visit_expr(ohs), - ExprKind::Let(pats, scrutinee) => { - visit_vec(pats, |pat| vis.visit_pat(pat)); + ExprKind::Let(pat, scrutinee) => { + vis.visit_pat(pat); vis.visit_expr(scrutinee); } ExprKind::If(cond, tr, fl) => { diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index ce1568316f8..e64123c2382 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -678,9 +678,8 @@ pub fn walk_anon_const<'a, V: Visitor<'a>>(visitor: &mut V, constant: &'a AnonCo } pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) { - for attr in expression.attrs.iter() { - visitor.visit_attribute(attr); - } + walk_list!(visitor, visit_attribute, expression.attrs.iter()); + match expression.node { ExprKind::Box(ref subexpression) => { visitor.visit_expr(subexpression) @@ -719,8 +718,8 @@ pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) { visitor.visit_expr(subexpression); visitor.visit_ty(typ) } - ExprKind::Let(ref pats, ref scrutinee) => { - walk_list!(visitor, visit_pat, pats); + ExprKind::Let(ref pat, ref scrutinee) => { + visitor.visit_pat(pat); visitor.visit_expr(scrutinee); } ExprKind::If(ref head_expression, ref if_block, ref optional_else) => { @@ -831,10 +830,10 @@ pub fn walk_param<'a, V: Visitor<'a>>(visitor: &mut V, param: &'a Param) { } pub fn walk_arm<'a, V: Visitor<'a>>(visitor: &mut V, arm: &'a Arm) { - walk_list!(visitor, visit_pat, &arm.pats); - if let Some(ref e) = &arm.guard { - visitor.visit_expr(e); - } + visitor.visit_pat(&arm.pat); + // HACK(or_patterns; Centril | dlrobertson): + // If you change this, also change the hack in `lowering.rs`. + walk_list!(visitor, visit_expr, &arm.guard); visitor.visit_expr(&arm.body); walk_list!(visitor, visit_attribute, &arm.attrs); } |
