|
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