]> git.lizzy.rs Git - rust.git/commitdiff
Unify associated item visitor.
authorMazdak Farrokhzad <twingoow@gmail.com>
Sun, 1 Dec 2019 16:11:07 +0000 (17:11 +0100)
committerMazdak Farrokhzad <twingoow@gmail.com>
Thu, 12 Dec 2019 17:00:00 +0000 (18:00 +0100)
src/librustc/hir/lowering.rs
src/librustc/hir/lowering/item.rs
src/librustc/lint/context.rs
src/librustc_passes/ast_validation.rs
src/librustc_passes/hir_stats.rs
src/librustc_resolve/build_reduced_graph.rs
src/librustc_resolve/def_collector.rs
src/librustc_resolve/late.rs
src/libsyntax/feature_gate/check.rs
src/libsyntax/util/node_count.rs
src/libsyntax/visit.rs

index e2c99f456e988dacfb93f221ebdda3dc354a34d6..1ee02dcf0c1890fdca040d648d6966c49a6dfa69 100644 (file)
@@ -484,11 +484,11 @@ fn visit_trait_item(&mut self, item: &'tcx TraitItem) {
                     TraitItemKind::Method(_, None) => {
                         // Ignore patterns in trait methods without bodies
                         self.with_hir_id_owner(None, |this| {
-                            visit::walk_trait_item(this, item)
+                            visit::walk_assoc_item(this, item)
                         });
                     }
                     _ => self.with_hir_id_owner(Some(item.id), |this| {
-                        visit::walk_trait_item(this, item);
+                        visit::walk_assoc_item(this, item);
                     })
                 }
             }
@@ -496,7 +496,7 @@ fn visit_trait_item(&mut self, item: &'tcx TraitItem) {
             fn visit_impl_item(&mut self, item: &'tcx ImplItem) {
                 self.lctx.allocate_hir_id_counter(item.id);
                 self.with_hir_id_owner(Some(item.id), |this| {
-                    visit::walk_impl_item(this, item);
+                    visit::walk_assoc_item(this, item);
                 });
             }
 
index f77523e63827555594d8eb787365fb642df011fc..c3d2ed6b39cd21cf3cc86be650b7b77b91a4b2a7 100644 (file)
@@ -94,7 +94,7 @@ fn visit_trait_item(&mut self, item: &'tcx TraitItem) {
             lctx.modules.get_mut(&lctx.current_module).unwrap().trait_items.insert(id);
         });
 
-        visit::walk_trait_item(self, item);
+        visit::walk_assoc_item(self, item);
     }
 
     fn visit_impl_item(&mut self, item: &'tcx ImplItem) {
@@ -104,7 +104,7 @@ fn visit_impl_item(&mut self, item: &'tcx ImplItem) {
             lctx.impl_items.insert(id, hir_item);
             lctx.modules.get_mut(&lctx.current_module).unwrap().impl_items.insert(id);
         });
-        visit::walk_impl_item(self, item);
+        visit::walk_assoc_item(self, item);
     }
 }
 
index 7f72154e42c61eb0f7fcb447d12e04a295a4c33a..e0ec9e62645d4590b7ca290cb15ac9a8082416fe 100644 (file)
@@ -1252,7 +1252,7 @@ fn visit_poly_trait_ref(&mut self, t: &'a ast::PolyTraitRef, m: &'a ast::TraitBo
     fn visit_trait_item(&mut self, trait_item: &'a ast::TraitItem) {
         self.with_lint_attrs(trait_item.id, &trait_item.attrs, |cx| {
             run_early_pass!(cx, check_trait_item, trait_item);
-            ast_visit::walk_trait_item(cx, trait_item);
+            ast_visit::walk_assoc_item(cx, trait_item);
             run_early_pass!(cx, check_trait_item_post, trait_item);
         });
     }
@@ -1260,7 +1260,7 @@ fn visit_trait_item(&mut self, trait_item: &'a ast::TraitItem) {
     fn visit_impl_item(&mut self, impl_item: &'a ast::ImplItem) {
         self.with_lint_attrs(impl_item.id, &impl_item.attrs, |cx| {
             run_early_pass!(cx, check_impl_item, impl_item);
-            ast_visit::walk_impl_item(cx, impl_item);
+            ast_visit::walk_assoc_item(cx, impl_item);
             run_early_pass!(cx, check_impl_item_post, impl_item);
         });
     }
index 8be97155d8c61fcd8e5821d97a25bc7cde185048..34534d6cca510b1192fd8a4bf20344f8d0edd59d 100644 (file)
@@ -772,28 +772,28 @@ fn visit_enum_def(&mut self, enum_definition: &'a EnumDef,
             |this| visit::walk_enum_def(this, enum_definition, generics, item_id))
     }
 
-    fn visit_impl_item(&mut self, ii: &'a ImplItem) {
+    fn visit_impl_item(&mut self, ii: &'a AssocItem) {
         match &ii.kind {
-            ImplItemKind::Const(_, body) => {
+            AssocItemKind::Const(_, body) => {
                 self.check_impl_item_provided(ii.span, body, "constant", " = <expr>;");
             }
-            ImplItemKind::Method(sig, body) => {
+            AssocItemKind::Method(sig, body) => {
                 self.check_impl_item_provided(ii.span, body, "function", " { <body> }");
                 self.check_fn_decl(&sig.decl);
             }
-            ImplItemKind::TyAlias(bounds, body) => {
+            AssocItemKind::TyAlias(bounds, body) => {
                 self.check_impl_item_provided(ii.span, body, "type", " = <type>;");
                 self.check_impl_assoc_type_no_bounds(bounds);
             }
             _ => {}
         }
-        visit::walk_impl_item(self, ii);
+        visit::walk_assoc_item(self, ii);
     }
 
-    fn visit_trait_item(&mut self, ti: &'a TraitItem) {
+    fn visit_trait_item(&mut self, ti: &'a AssocItem) {
         self.invalid_visibility(&ti.vis, None);
         self.check_defaultness(ti.span, ti.defaultness);
-        visit::walk_trait_item(self, ti);
+        visit::walk_assoc_item(self, ti);
     }
 }
 
index a5924efefc2af57db13ff21a4f8bf48d4a4929bf..071ed0db87020b098b45a8b4b3f6eb29f648598b 100644 (file)
@@ -316,12 +316,12 @@ fn visit_fn(&mut self,
 
     fn visit_trait_item(&mut self, ti: &'v ast::TraitItem) {
         self.record("TraitItem", Id::None, ti);
-        ast_visit::walk_trait_item(self, ti)
+        ast_visit::walk_assoc_item(self, ti)
     }
 
     fn visit_impl_item(&mut self, ii: &'v ast::ImplItem) {
         self.record("ImplItem", Id::None, ii);
-        ast_visit::walk_impl_item(self, ii)
+        ast_visit::walk_assoc_item(self, ii)
     }
 
     fn visit_param_bound(&mut self, bounds: &'v ast::GenericBound) {
index d2d5a33ec7aa9d8912fe509d918a16265fd64e87..abed4b326a5f72dd76186a13747cc00371ddc154 100644 (file)
@@ -1190,7 +1190,7 @@ fn visit_trait_item(&mut self, item: &'b TraitItem) {
         let expansion = self.parent_scope.expansion;
         self.r.define(parent, item.ident, ns, (res, vis, item.span, expansion));
 
-        visit::walk_trait_item(self, item);
+        visit::walk_assoc_item(self, item);
     }
 
     fn visit_impl_item(&mut self, item: &'b ast::ImplItem) {
@@ -1198,7 +1198,7 @@ fn visit_impl_item(&mut self, item: &'b ast::ImplItem) {
             self.visit_invoc(item.id);
         } else {
             self.resolve_visibility(&item.vis);
-            visit::walk_impl_item(self, item);
+            visit::walk_assoc_item(self, item);
         }
     }
 
index 471e2634b8acfd1765c175dab77069ae612ce4d7..248027a91ab3d61e4cfdc4fe80a8219ec22b125c 100644 (file)
@@ -223,7 +223,7 @@ fn visit_trait_item(&mut self, ti: &'a TraitItem) {
         };
 
         let def = self.create_def(ti.id, def_data, ti.span);
-        self.with_parent(def, |this| visit::walk_trait_item(this, ti));
+        self.with_parent(def, |this| visit::walk_assoc_item(this, ti));
     }
 
     fn visit_impl_item(&mut self, ii: &'a ImplItem) {
@@ -249,7 +249,7 @@ fn visit_impl_item(&mut self, ii: &'a ImplItem) {
         };
 
         let def = self.create_def(ii.id, def_data, ii.span);
-        self.with_parent(def, |this| visit::walk_impl_item(this, ii));
+        self.with_parent(def, |this| visit::walk_assoc_item(this, ii));
     }
 
     fn visit_pat(&mut self, pat: &'a Pat) {
index 33e24c8cfd4a778ec7e1be8b0efae4d0efe9be26..682ddc421c2878fd27e44e923f7b739516f7a9d3 100644 (file)
@@ -819,10 +819,10 @@ fn resolve_item(&mut self, item: &Item) {
                                                 }
                                             }
                                             TraitItemKind::Method(_, _) => {
-                                                visit::walk_trait_item(this, trait_item)
+                                                visit::walk_assoc_item(this, trait_item)
                                             }
                                             TraitItemKind::TyAlias(..) => {
-                                                visit::walk_trait_item(this, trait_item)
+                                                visit::walk_assoc_item(this, trait_item)
                                             }
                                             TraitItemKind::Macro(_) => {
                                                 panic!("unexpanded macro in resolve!")
@@ -1106,7 +1106,7 @@ fn resolve_implementation(&mut self,
                                                 );
 
                                                 this.with_constant_rib(|this| {
-                                                    visit::walk_impl_item(this, impl_item)
+                                                    visit::walk_assoc_item(this, impl_item)
                                                 });
                                             }
                                             ImplItemKind::Method(..) => {
@@ -1117,7 +1117,7 @@ fn resolve_implementation(&mut self,
                                                                       impl_item.span,
                                                     |n, s| MethodNotMemberOfTrait(n, s));
 
-                                                visit::walk_impl_item(this, impl_item);
+                                                visit::walk_assoc_item(this, impl_item);
                                             }
                                             ImplItemKind::TyAlias(_, Some(ref ty)) => {
                                                 // If this is a trait impl, ensure the type
index f786de6401a6e69208aca4f7aa416185b6e27dd5..226719c746061eba2326f1b6aa876a14e94f78c6 100644 (file)
@@ -595,7 +595,7 @@ fn visit_trait_item(&mut self, ti: &'a ast::TraitItem) {
             }
             _ => {}
         }
-        visit::walk_trait_item(self, ti)
+        visit::walk_assoc_item(self, ti)
     }
 
     fn visit_impl_item(&mut self, ii: &'a ast::ImplItem) {
@@ -620,7 +620,7 @@ fn visit_impl_item(&mut self, ii: &'a ast::ImplItem) {
             }
             _ => {}
         }
-        visit::walk_impl_item(self, ii)
+        visit::walk_assoc_item(self, ii)
     }
 
     fn visit_vis(&mut self, vis: &'a ast::Visibility) {
index a64fec7096132303f403d2edda33f05674fa949f..14ca7a7eff30d96a1032876a31e9c6c9e3b107b5 100644 (file)
@@ -75,11 +75,11 @@ fn visit_fn(&mut self, fk: FnKind<'_>, fd: &FnDecl, s: Span, _: NodeId) {
     }
     fn visit_trait_item(&mut self, ti: &TraitItem) {
         self.count += 1;
-        walk_trait_item(self, ti)
+        walk_assoc_item(self, ti)
     }
     fn visit_impl_item(&mut self, ii: &ImplItem) {
         self.count += 1;
-        walk_impl_item(self, ii)
+        walk_assoc_item(self, ii)
     }
     fn visit_trait_ref(&mut self, t: &TraitRef) {
         self.count += 1;
index 74df808b37e3634fd748d9165a8398b8ba7b22bb..8fe8e136c10b149ed08a5e29c5814cad2153e114 100644 (file)
@@ -83,8 +83,8 @@ fn visit_where_predicate(&mut self, p: &'ast WherePredicate) {
     fn visit_fn(&mut self, fk: FnKind<'ast>, fd: &'ast FnDecl, s: Span, _: NodeId) {
         walk_fn(self, fk, fd, s)
     }
-    fn visit_trait_item(&mut self, ti: &'ast TraitItem) { walk_trait_item(self, ti) }
-    fn visit_impl_item(&mut self, ii: &'ast ImplItem) { walk_impl_item(self, ii) }
+    fn visit_trait_item(&mut self, i: &'ast AssocItem) { walk_assoc_item(self, i) }
+    fn visit_impl_item(&mut self, i: &'ast AssocItem) { walk_assoc_item(self, i) }
     fn visit_trait_ref(&mut self, t: &'ast TraitRef) { walk_trait_ref(self, t) }
     fn visit_param_bound(&mut self, bounds: &'ast GenericBound) {
         walk_param_bound(self, bounds)
@@ -581,57 +581,29 @@ pub fn walk_fn<'a, V>(visitor: &mut V, kind: FnKind<'a>, declaration: &'a FnDecl
     }
 }
 
-pub fn walk_trait_item<'a, V: Visitor<'a>>(visitor: &mut V, trait_item: &'a TraitItem) {
-    visitor.visit_vis(&trait_item.vis);
-    visitor.visit_ident(trait_item.ident);
-    walk_list!(visitor, visit_attribute, &trait_item.attrs);
-    visitor.visit_generics(&trait_item.generics);
-    match trait_item.kind {
-        TraitItemKind::Const(ref ty, ref default) => {
-            visitor.visit_ty(ty);
-            walk_list!(visitor, visit_expr, default);
-        }
-        TraitItemKind::Method(ref sig, None) => {
-            visitor.visit_fn_header(&sig.header);
-            walk_fn_decl(visitor, &sig.decl);
-        }
-        TraitItemKind::Method(ref sig, Some(ref body)) => {
-            visitor.visit_fn(FnKind::Method(trait_item.ident, sig, &trait_item.vis, body),
-                             &sig.decl, trait_item.span, trait_item.id);
-        }
-        TraitItemKind::TyAlias(ref bounds, ref default) => {
-            walk_list!(visitor, visit_param_bound, bounds);
-            walk_list!(visitor, visit_ty, default);
-        }
-        TraitItemKind::Macro(ref mac) => {
-            visitor.visit_mac(mac);
-        }
-    }
-}
-
-pub fn walk_impl_item<'a, V: Visitor<'a>>(visitor: &mut V, impl_item: &'a ImplItem) {
-    visitor.visit_vis(&impl_item.vis);
-    visitor.visit_ident(impl_item.ident);
-    walk_list!(visitor, visit_attribute, &impl_item.attrs);
-    visitor.visit_generics(&impl_item.generics);
-    match impl_item.kind {
-        ImplItemKind::Const(ref ty, ref expr) => {
+pub fn walk_assoc_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a AssocItem) {
+    visitor.visit_vis(&item.vis);
+    visitor.visit_ident(item.ident);
+    walk_list!(visitor, visit_attribute, &item.attrs);
+    visitor.visit_generics(&item.generics);
+    match item.kind {
+        AssocItemKind::Const(ref ty, ref expr) => {
             visitor.visit_ty(ty);
             walk_list!(visitor, visit_expr, expr);
         }
-        ImplItemKind::Method(ref sig, None) => {
+        AssocItemKind::Method(ref sig, None) => {
             visitor.visit_fn_header(&sig.header);
             walk_fn_decl(visitor, &sig.decl);
         }
-        ImplItemKind::Method(ref sig, Some(ref body)) => {
-            visitor.visit_fn(FnKind::Method(impl_item.ident, sig, &impl_item.vis, body),
-                             &sig.decl, impl_item.span, impl_item.id);
+        AssocItemKind::Method(ref sig, Some(ref body)) => {
+            visitor.visit_fn(FnKind::Method(item.ident, sig, &item.vis, body),
+                             &sig.decl, item.span, item.id);
         }
-        ImplItemKind::TyAlias(ref bounds, ref ty) => {
+        AssocItemKind::TyAlias(ref bounds, ref ty) => {
             walk_list!(visitor, visit_param_bound, bounds);
             walk_list!(visitor, visit_ty, ty);
         }
-        ImplItemKind::Macro(ref mac) => {
+        AssocItemKind::Macro(ref mac) => {
             visitor.visit_mac(mac);
         }
     }