fn visit_fn(&mut self, fk: FnKind<'v>, fd: &'v FnDecl, b: BodyId, s: Span, id: NodeId) {
walk_fn(self, fk, fd, b, s, id)
}
+ fn visit_use(&mut self, path: &'v Path, id: NodeId, hir_id: HirId) {
+ walk_use(self, path, id, hir_id)
+ }
fn visit_trait_item(&mut self, ti: &'v TraitItem) {
walk_trait_item(self, ti)
}
visitor.visit_ident(ident);
}
LifetimeName::Param(ParamName::Fresh(_)) |
+ LifetimeName::Param(ParamName::Error) |
LifetimeName::Static |
+ LifetimeName::Error |
LifetimeName::Implicit |
LifetimeName::Underscore => {}
}
}
}
ItemKind::Use(ref path, _) => {
- visitor.visit_id(item.id);
- visitor.visit_path(path, item.hir_id);
+ visitor.visit_use(path, item.id, item.hir_id);
}
ItemKind::Static(ref typ, _, body) |
ItemKind::Const(ref typ, body) => {
walk_list!(visitor, visit_attribute, &item.attrs);
}
+pub fn walk_use<'v, V: Visitor<'v>>(visitor: &mut V,
+ path: &'v Path,
+ item_id: NodeId,
+ hir_id: HirId) {
+ visitor.visit_id(item_id);
+ visitor.visit_path(path, hir_id);
+}
+
pub fn walk_enum_def<'v, V: Visitor<'v>>(visitor: &mut V,
enum_definition: &'v EnumDef,
generics: &'v Generics,
path_span: Span,
segment: &'v PathSegment) {
visitor.visit_ident(segment.ident);
+ if let Some(id) = segment.id {
+ visitor.visit_id(id);
+ }
if let Some(ref args) = segment.args {
visitor.visit_generic_args(path_span, args);
}
walk_list!(visitor, visit_attribute, ¶m.attrs);
match param.name {
ParamName::Plain(ident) => visitor.visit_ident(ident),
- ParamName::Fresh(_) => {}
+ ParamName::Error | ParamName::Fresh(_) => {}
}
match param.kind {
GenericParamKind::Lifetime { .. } => {}