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/visit.rs | |
| parent | ca968a10d8d5155a067d9f9da98a90a3abf741cb (diff) | |
| download | rust-998060ba3f7149145db095bc01e7bd2e396f3f2f.tar.gz rust-998060ba3f7149145db095bc01e7bd2e396f3f2f.zip | |
or-patterns: syntax: adjust `visit` and `mut_visit`.
Diffstat (limited to 'src/libsyntax/visit.rs')
| -rw-r--r-- | src/libsyntax/visit.rs | 17 |
1 files changed, 8 insertions, 9 deletions
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); } |
