Skip to content

Commit 0d8a9d7

Browse files
committed
Unify associated item visitor.
1 parent c6c17e3 commit 0d8a9d7

File tree

11 files changed

+43
-71
lines changed

11 files changed

+43
-71
lines changed

src/librustc/hir/lowering.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -484,19 +484,19 @@ impl<'a> LoweringContext<'a> {
484484
TraitItemKind::Method(_, None) => {
485485
// Ignore patterns in trait methods without bodies
486486
self.with_hir_id_owner(None, |this| {
487-
visit::walk_trait_item(this, item)
487+
visit::walk_assoc_item(this, item)
488488
});
489489
}
490490
_ => self.with_hir_id_owner(Some(item.id), |this| {
491-
visit::walk_trait_item(this, item);
491+
visit::walk_assoc_item(this, item);
492492
})
493493
}
494494
}
495495

496496
fn visit_impl_item(&mut self, item: &'tcx ImplItem) {
497497
self.lctx.allocate_hir_id_counter(item.id);
498498
self.with_hir_id_owner(Some(item.id), |this| {
499-
visit::walk_impl_item(this, item);
499+
visit::walk_assoc_item(this, item);
500500
});
501501
}
502502

src/librustc/hir/lowering/item.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ impl<'tcx, 'interner> Visitor<'tcx> for ItemLowerer<'tcx, 'interner> {
9494
lctx.modules.get_mut(&lctx.current_module).unwrap().trait_items.insert(id);
9595
});
9696

97-
visit::walk_trait_item(self, item);
97+
visit::walk_assoc_item(self, item);
9898
}
9999

100100
fn visit_impl_item(&mut self, item: &'tcx ImplItem) {
@@ -104,7 +104,7 @@ impl<'tcx, 'interner> Visitor<'tcx> for ItemLowerer<'tcx, 'interner> {
104104
lctx.impl_items.insert(id, hir_item);
105105
lctx.modules.get_mut(&lctx.current_module).unwrap().impl_items.insert(id);
106106
});
107-
visit::walk_impl_item(self, item);
107+
visit::walk_assoc_item(self, item);
108108
}
109109
}
110110

src/librustc/lint/context.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,15 +1252,15 @@ impl<'a, T: EarlyLintPass> ast_visit::Visitor<'a> for EarlyContextAndPass<'a, T>
12521252
fn visit_trait_item(&mut self, trait_item: &'a ast::TraitItem) {
12531253
self.with_lint_attrs(trait_item.id, &trait_item.attrs, |cx| {
12541254
run_early_pass!(cx, check_trait_item, trait_item);
1255-
ast_visit::walk_trait_item(cx, trait_item);
1255+
ast_visit::walk_assoc_item(cx, trait_item);
12561256
run_early_pass!(cx, check_trait_item_post, trait_item);
12571257
});
12581258
}
12591259

12601260
fn visit_impl_item(&mut self, impl_item: &'a ast::ImplItem) {
12611261
self.with_lint_attrs(impl_item.id, &impl_item.attrs, |cx| {
12621262
run_early_pass!(cx, check_impl_item, impl_item);
1263-
ast_visit::walk_impl_item(cx, impl_item);
1263+
ast_visit::walk_assoc_item(cx, impl_item);
12641264
run_early_pass!(cx, check_impl_item_post, impl_item);
12651265
});
12661266
}

src/librustc_passes/ast_validation.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -772,28 +772,28 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
772772
|this| visit::walk_enum_def(this, enum_definition, generics, item_id))
773773
}
774774

775-
fn visit_impl_item(&mut self, ii: &'a ImplItem) {
775+
fn visit_impl_item(&mut self, ii: &'a AssocItem) {
776776
match &ii.kind {
777-
ImplItemKind::Const(_, body) => {
777+
AssocItemKind::Const(_, body) => {
778778
self.check_impl_item_provided(ii.span, body, "constant", " = <expr>;");
779779
}
780-
ImplItemKind::Method(sig, body) => {
780+
AssocItemKind::Method(sig, body) => {
781781
self.check_impl_item_provided(ii.span, body, "function", " { <body> }");
782782
self.check_fn_decl(&sig.decl);
783783
}
784-
ImplItemKind::TyAlias(bounds, body) => {
784+
AssocItemKind::TyAlias(bounds, body) => {
785785
self.check_impl_item_provided(ii.span, body, "type", " = <type>;");
786786
self.check_impl_assoc_type_no_bounds(bounds);
787787
}
788788
_ => {}
789789
}
790-
visit::walk_impl_item(self, ii);
790+
visit::walk_assoc_item(self, ii);
791791
}
792792

793-
fn visit_trait_item(&mut self, ti: &'a TraitItem) {
793+
fn visit_trait_item(&mut self, ti: &'a AssocItem) {
794794
self.invalid_visibility(&ti.vis, None);
795795
self.check_defaultness(ti.span, ti.defaultness);
796-
visit::walk_trait_item(self, ti);
796+
visit::walk_assoc_item(self, ti);
797797
}
798798
}
799799

src/librustc_passes/hir_stats.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,12 +316,12 @@ impl<'v> ast_visit::Visitor<'v> for StatCollector<'v> {
316316

317317
fn visit_trait_item(&mut self, ti: &'v ast::TraitItem) {
318318
self.record("TraitItem", Id::None, ti);
319-
ast_visit::walk_trait_item(self, ti)
319+
ast_visit::walk_assoc_item(self, ti)
320320
}
321321

322322
fn visit_impl_item(&mut self, ii: &'v ast::ImplItem) {
323323
self.record("ImplItem", Id::None, ii);
324-
ast_visit::walk_impl_item(self, ii)
324+
ast_visit::walk_assoc_item(self, ii)
325325
}
326326

327327
fn visit_param_bound(&mut self, bounds: &'v ast::GenericBound) {

src/librustc_resolve/build_reduced_graph.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1190,15 +1190,15 @@ impl<'a, 'b> Visitor<'b> for BuildReducedGraphVisitor<'a, 'b> {
11901190
let expansion = self.parent_scope.expansion;
11911191
self.r.define(parent, item.ident, ns, (res, vis, item.span, expansion));
11921192

1193-
visit::walk_trait_item(self, item);
1193+
visit::walk_assoc_item(self, item);
11941194
}
11951195

11961196
fn visit_impl_item(&mut self, item: &'b ast::ImplItem) {
11971197
if let ast::ImplItemKind::Macro(..) = item.kind {
11981198
self.visit_invoc(item.id);
11991199
} else {
12001200
self.resolve_visibility(&item.vis);
1201-
visit::walk_impl_item(self, item);
1201+
visit::walk_assoc_item(self, item);
12021202
}
12031203
}
12041204

src/librustc_resolve/def_collector.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ impl<'a> visit::Visitor<'a> for DefCollector<'a> {
223223
};
224224

225225
let def = self.create_def(ti.id, def_data, ti.span);
226-
self.with_parent(def, |this| visit::walk_trait_item(this, ti));
226+
self.with_parent(def, |this| visit::walk_assoc_item(this, ti));
227227
}
228228

229229
fn visit_impl_item(&mut self, ii: &'a ImplItem) {
@@ -249,7 +249,7 @@ impl<'a> visit::Visitor<'a> for DefCollector<'a> {
249249
};
250250

251251
let def = self.create_def(ii.id, def_data, ii.span);
252-
self.with_parent(def, |this| visit::walk_impl_item(this, ii));
252+
self.with_parent(def, |this| visit::walk_assoc_item(this, ii));
253253
}
254254

255255
fn visit_pat(&mut self, pat: &'a Pat) {

src/librustc_resolve/late.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -819,10 +819,10 @@ impl<'a, 'b> LateResolutionVisitor<'a, '_> {
819819
}
820820
}
821821
TraitItemKind::Method(_, _) => {
822-
visit::walk_trait_item(this, trait_item)
822+
visit::walk_assoc_item(this, trait_item)
823823
}
824824
TraitItemKind::TyAlias(..) => {
825-
visit::walk_trait_item(this, trait_item)
825+
visit::walk_assoc_item(this, trait_item)
826826
}
827827
TraitItemKind::Macro(_) => {
828828
panic!("unexpanded macro in resolve!")
@@ -1106,7 +1106,7 @@ impl<'a, 'b> LateResolutionVisitor<'a, '_> {
11061106
);
11071107

11081108
this.with_constant_rib(|this| {
1109-
visit::walk_impl_item(this, impl_item)
1109+
visit::walk_assoc_item(this, impl_item)
11101110
});
11111111
}
11121112
ImplItemKind::Method(..) => {
@@ -1117,7 +1117,7 @@ impl<'a, 'b> LateResolutionVisitor<'a, '_> {
11171117
impl_item.span,
11181118
|n, s| MethodNotMemberOfTrait(n, s));
11191119

1120-
visit::walk_impl_item(this, impl_item);
1120+
visit::walk_assoc_item(this, impl_item);
11211121
}
11221122
ImplItemKind::TyAlias(_, Some(ref ty)) => {
11231123
// If this is a trait impl, ensure the type

src/libsyntax/feature_gate/check.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
595595
}
596596
_ => {}
597597
}
598-
visit::walk_trait_item(self, ti)
598+
visit::walk_assoc_item(self, ti)
599599
}
600600

601601
fn visit_impl_item(&mut self, ii: &'a ast::ImplItem) {
@@ -620,7 +620,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
620620
}
621621
_ => {}
622622
}
623-
visit::walk_impl_item(self, ii)
623+
visit::walk_assoc_item(self, ii)
624624
}
625625

626626
fn visit_vis(&mut self, vis: &'a ast::Visibility) {

src/libsyntax/util/node_count.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ impl<'ast> Visitor<'ast> for NodeCounter {
7575
}
7676
fn visit_trait_item(&mut self, ti: &TraitItem) {
7777
self.count += 1;
78-
walk_trait_item(self, ti)
78+
walk_assoc_item(self, ti)
7979
}
8080
fn visit_impl_item(&mut self, ii: &ImplItem) {
8181
self.count += 1;
82-
walk_impl_item(self, ii)
82+
walk_assoc_item(self, ii)
8383
}
8484
fn visit_trait_ref(&mut self, t: &TraitRef) {
8585
self.count += 1;

src/libsyntax/visit.rs

Lines changed: 15 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ pub trait Visitor<'ast>: Sized {
8383
fn visit_fn(&mut self, fk: FnKind<'ast>, fd: &'ast FnDecl, s: Span, _: NodeId) {
8484
walk_fn(self, fk, fd, s)
8585
}
86-
fn visit_trait_item(&mut self, ti: &'ast TraitItem) { walk_trait_item(self, ti) }
87-
fn visit_impl_item(&mut self, ii: &'ast ImplItem) { walk_impl_item(self, ii) }
86+
fn visit_trait_item(&mut self, i: &'ast AssocItem) { walk_assoc_item(self, i) }
87+
fn visit_impl_item(&mut self, i: &'ast AssocItem) { walk_assoc_item(self, i) }
8888
fn visit_trait_ref(&mut self, t: &'ast TraitRef) { walk_trait_ref(self, t) }
8989
fn visit_param_bound(&mut self, bounds: &'ast GenericBound) {
9090
walk_param_bound(self, bounds)
@@ -581,57 +581,29 @@ pub fn walk_fn<'a, V>(visitor: &mut V, kind: FnKind<'a>, declaration: &'a FnDecl
581581
}
582582
}
583583

584-
pub fn walk_trait_item<'a, V: Visitor<'a>>(visitor: &mut V, trait_item: &'a TraitItem) {
585-
visitor.visit_vis(&trait_item.vis);
586-
visitor.visit_ident(trait_item.ident);
587-
walk_list!(visitor, visit_attribute, &trait_item.attrs);
588-
visitor.visit_generics(&trait_item.generics);
589-
match trait_item.kind {
590-
TraitItemKind::Const(ref ty, ref default) => {
591-
visitor.visit_ty(ty);
592-
walk_list!(visitor, visit_expr, default);
593-
}
594-
TraitItemKind::Method(ref sig, None) => {
595-
visitor.visit_fn_header(&sig.header);
596-
walk_fn_decl(visitor, &sig.decl);
597-
}
598-
TraitItemKind::Method(ref sig, Some(ref body)) => {
599-
visitor.visit_fn(FnKind::Method(trait_item.ident, sig, &trait_item.vis, body),
600-
&sig.decl, trait_item.span, trait_item.id);
601-
}
602-
TraitItemKind::TyAlias(ref bounds, ref default) => {
603-
walk_list!(visitor, visit_param_bound, bounds);
604-
walk_list!(visitor, visit_ty, default);
605-
}
606-
TraitItemKind::Macro(ref mac) => {
607-
visitor.visit_mac(mac);
608-
}
609-
}
610-
}
611-
612-
pub fn walk_impl_item<'a, V: Visitor<'a>>(visitor: &mut V, impl_item: &'a ImplItem) {
613-
visitor.visit_vis(&impl_item.vis);
614-
visitor.visit_ident(impl_item.ident);
615-
walk_list!(visitor, visit_attribute, &impl_item.attrs);
616-
visitor.visit_generics(&impl_item.generics);
617-
match impl_item.kind {
618-
ImplItemKind::Const(ref ty, ref expr) => {
584+
pub fn walk_assoc_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a AssocItem) {
585+
visitor.visit_vis(&item.vis);
586+
visitor.visit_ident(item.ident);
587+
walk_list!(visitor, visit_attribute, &item.attrs);
588+
visitor.visit_generics(&item.generics);
589+
match item.kind {
590+
AssocItemKind::Const(ref ty, ref expr) => {
619591
visitor.visit_ty(ty);
620592
walk_list!(visitor, visit_expr, expr);
621593
}
622-
ImplItemKind::Method(ref sig, None) => {
594+
AssocItemKind::Method(ref sig, None) => {
623595
visitor.visit_fn_header(&sig.header);
624596
walk_fn_decl(visitor, &sig.decl);
625597
}
626-
ImplItemKind::Method(ref sig, Some(ref body)) => {
627-
visitor.visit_fn(FnKind::Method(impl_item.ident, sig, &impl_item.vis, body),
628-
&sig.decl, impl_item.span, impl_item.id);
598+
AssocItemKind::Method(ref sig, Some(ref body)) => {
599+
visitor.visit_fn(FnKind::Method(item.ident, sig, &item.vis, body),
600+
&sig.decl, item.span, item.id);
629601
}
630-
ImplItemKind::TyAlias(ref bounds, ref ty) => {
602+
AssocItemKind::TyAlias(ref bounds, ref ty) => {
631603
walk_list!(visitor, visit_param_bound, bounds);
632604
walk_list!(visitor, visit_ty, ty);
633605
}
634-
ImplItemKind::Macro(ref mac) => {
606+
AssocItemKind::Macro(ref mac) => {
635607
visitor.visit_mac(mac);
636608
}
637609
}

0 commit comments

Comments
 (0)