Skip to content

Commit 2b2e4dd

Browse files
committed
Visit visibilities in the ast visitor's walk_* functions
1 parent 4b189e6 commit 2b2e4dd

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/libsyntax/fold.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -850,7 +850,7 @@ pub fn noop_fold_struct_field<T: Folder>(f: StructField, fld: &mut T) -> StructF
850850
span: fld.new_span(f.span),
851851
id: fld.new_id(f.id),
852852
ident: f.ident.map(|ident| fld.fold_ident(ident)),
853-
vis: f.vis,
853+
vis: fld.fold_vis(f.vis),
854854
ty: fld.fold_ty(f.ty),
855855
attrs: fold_attrs(f.attrs, fld),
856856
}

src/libsyntax/visit.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ pub fn walk_trait_ref<'v,V>(visitor: &mut V,
231231
}
232232

233233
pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item) {
234+
visitor.visit_vis(&item.vis);
234235
visitor.visit_ident(item.span, item.ident);
235236
match item.node {
236237
ItemKind::ExternCrate(opt_name) => {
@@ -470,6 +471,7 @@ pub fn walk_pat<'v, V: Visitor<'v>>(visitor: &mut V, pattern: &'v Pat) {
470471

471472
pub fn walk_foreign_item<'v, V: Visitor<'v>>(visitor: &mut V,
472473
foreign_item: &'v ForeignItem) {
474+
visitor.visit_vis(&foreign_item.vis);
473475
visitor.visit_ident(foreign_item.span, foreign_item.ident);
474476

475477
match foreign_item.node {
@@ -592,6 +594,7 @@ pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v Trai
592594
}
593595

594596
pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplItem) {
597+
visitor.visit_vis(&impl_item.vis);
595598
visitor.visit_ident(impl_item.span, impl_item.ident);
596599
walk_list!(visitor, visit_attribute, &impl_item.attrs);
597600
match impl_item.node {
@@ -619,6 +622,7 @@ pub fn walk_struct_def<'v, V: Visitor<'v>>(visitor: &mut V,
619622

620623
pub fn walk_struct_field<'v, V: Visitor<'v>>(visitor: &mut V,
621624
struct_field: &'v StructField) {
625+
visitor.visit_vis(&struct_field.vis);
622626
walk_opt_ident(visitor, struct_field.span, struct_field.ident);
623627
visitor.visit_ty(&struct_field.ty);
624628
walk_list!(visitor, visit_attribute, &struct_field.attrs);
@@ -812,8 +816,7 @@ pub fn walk_arm<'v, V: Visitor<'v>>(visitor: &mut V, arm: &'v Arm) {
812816
}
813817

814818
pub fn walk_vis<'v, V: Visitor<'v>>(visitor: &mut V, vis: &'v Visibility) {
815-
match *vis {
816-
Visibility::Restricted { ref path, id } => visitor.visit_path(path, id),
817-
_ => {}
819+
if let Visibility::Restricted { ref path, id } = *vis {
820+
visitor.visit_path(path, id);
818821
}
819822
}

0 commit comments

Comments
 (0)