| 
42 | 42 | //! example generator inference, and possibly also HIR borrowck.  | 
43 | 43 | 
  | 
44 | 44 | use rustc_target::spec::abi::Abi;  | 
45 |  | -use syntax::ast::{NodeId, CRATE_NODE_ID, Name, Attribute};  | 
 | 45 | +use syntax::ast::{NodeId, CRATE_NODE_ID, Ident, Name, Attribute};  | 
46 | 46 | use syntax_pos::Span;  | 
47 | 47 | use hir::*;  | 
48 | 48 | use hir::def::Def;  | 
@@ -248,6 +248,9 @@ pub trait Visitor<'v> : Sized {  | 
248 | 248 |     fn visit_name(&mut self, _span: Span, _name: Name) {  | 
249 | 249 |         // Nothing to do.  | 
250 | 250 |     }  | 
 | 251 | +    fn visit_ident(&mut self, ident: Ident) {  | 
 | 252 | +        walk_ident(self, ident)  | 
 | 253 | +    }  | 
251 | 254 |     fn visit_mod(&mut self, m: &'v Mod, _s: Span, n: NodeId) {  | 
252 | 255 |         walk_mod(self, m, n)  | 
253 | 256 |     }  | 
@@ -413,6 +416,10 @@ pub fn walk_local<'v, V: Visitor<'v>>(visitor: &mut V, local: &'v Local) {  | 
413 | 416 |     walk_list!(visitor, visit_ty, &local.ty);  | 
414 | 417 | }  | 
415 | 418 | 
 
  | 
 | 419 | +pub fn walk_ident<'v, V: Visitor<'v>>(visitor: &mut V, ident: Ident) {  | 
 | 420 | +    visitor.visit_name(ident.span, ident.name);  | 
 | 421 | +}  | 
 | 422 | + | 
416 | 423 | pub fn walk_label<'v, V: Visitor<'v>>(visitor: &mut V, label: &'v Label) {  | 
417 | 424 |     visitor.visit_name(label.span, label.name);  | 
418 | 425 | }  | 
@@ -662,7 +669,7 @@ pub fn walk_pat<'v, V: Visitor<'v>>(visitor: &mut V, pattern: &'v Pat) {  | 
662 | 669 |             visitor.visit_qpath(qpath, pattern.id, pattern.span);  | 
663 | 670 |             for field in fields {  | 
664 | 671 |                 visitor.visit_id(field.node.id);  | 
665 |  | -                visitor.visit_name(field.span, field.node.name);  | 
 | 672 | +                visitor.visit_ident(field.node.ident);  | 
666 | 673 |                 visitor.visit_pat(&field.node.pat)  | 
667 | 674 |             }  | 
668 | 675 |         }  | 
@@ -915,7 +922,7 @@ pub fn walk_struct_def<'v, V: Visitor<'v>>(visitor: &mut V, struct_definition: &  | 
915 | 922 | pub fn walk_struct_field<'v, V: Visitor<'v>>(visitor: &mut V, struct_field: &'v StructField) {  | 
916 | 923 |     visitor.visit_id(struct_field.id);  | 
917 | 924 |     visitor.visit_vis(&struct_field.vis);  | 
918 |  | -    visitor.visit_name(struct_field.span, struct_field.name);  | 
 | 925 | +    visitor.visit_ident(struct_field.ident);  | 
919 | 926 |     visitor.visit_ty(&struct_field.ty);  | 
920 | 927 |     walk_list!(visitor, visit_attribute, &struct_field.attrs);  | 
921 | 928 | }  | 
@@ -970,7 +977,7 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) {  | 
970 | 977 |             visitor.visit_qpath(qpath, expression.id, expression.span);  | 
971 | 978 |             for field in fields {  | 
972 | 979 |                 visitor.visit_id(field.id);  | 
973 |  | -                visitor.visit_name(field.name.span, field.name.node);  | 
 | 980 | +                visitor.visit_ident(field.ident);  | 
974 | 981 |                 visitor.visit_expr(&field.expr)  | 
975 | 982 |             }  | 
976 | 983 |             walk_list!(visitor, visit_expr, optional_base);  | 
@@ -1035,9 +1042,9 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) {  | 
1035 | 1042 |             visitor.visit_expr(right_expression);  | 
1036 | 1043 |             visitor.visit_expr(left_expression)  | 
1037 | 1044 |         }  | 
1038 |  | -        ExprField(ref subexpression, ref name) => {  | 
 | 1045 | +        ExprField(ref subexpression, ident) => {  | 
1039 | 1046 |             visitor.visit_expr(subexpression);  | 
1040 |  | -            visitor.visit_name(name.span, name.node);  | 
 | 1047 | +            visitor.visit_ident(ident);  | 
1041 | 1048 |         }  | 
1042 | 1049 |         ExprIndex(ref main_expression, ref index_expression) => {  | 
1043 | 1050 |             visitor.visit_expr(main_expression);  | 
 | 
0 commit comments