pub use self::SawExprComponent::*;
pub use self::SawStmtComponent::*;
use self::SawAbiComponent::*;
- use syntax::ast::{self, NodeId, Ident};
+ use syntax::ast::{self, Name, NodeId};
use syntax::codemap::Span;
use syntax::parse::token;
use rustc_front::visit;
SawIdent(token::InternedString),
SawStructDef(token::InternedString),
- SawLifetimeRef(token::InternedString),
+ SawLifetime(token::InternedString),
SawLifetimeDef(token::InternedString),
SawMod,
SawVariant,
SawExplicitSelf,
SawPath,
- SawOptLifetimeRef,
SawBlock,
SawPat,
SawLocal,
SawExprTup,
SawExprBinary(hir::BinOp_),
SawExprUnary(hir::UnOp),
- SawExprLit(hir::Lit_),
+ SawExprLit(ast::Lit_),
SawExprCast,
SawExprIf,
SawExprWhile,
SawExprInlineAsm(&'a hir::InlineAsm),
SawExprStruct,
SawExprRepeat,
- SawExprParen,
}
fn saw_expr<'a>(node: &'a Expr_) -> SawExprComponent<'a> {
ExprBlock(..) => SawExprBlock,
ExprAssign(..) => SawExprAssign,
ExprAssignOp(op, _, _) => SawExprAssignOp(op.node),
- ExprField(_, id) => SawExprField(id.node.name.as_str()),
+ ExprField(_, name) => SawExprField(name.node.as_str()),
ExprTupField(_, id) => SawExprTupField(id.node),
ExprIndex(..) => SawExprIndex,
ExprRange(..) => SawExprRange,
ExprInlineAsm(ref asm) => SawExprInlineAsm(asm),
ExprStruct(..) => SawExprStruct,
ExprRepeat(..) => SawExprRepeat,
- ExprParen(..) => SawExprParen,
}
}
}
impl<'a, 'v> Visitor<'v> for StrictVersionHashVisitor<'a> {
- fn visit_struct_def(&mut self, s: &StructDef, ident: Ident,
+ fn visit_struct_def(&mut self, s: &StructDef, name: Name,
g: &Generics, _: NodeId) {
- SawStructDef(ident.name.as_str()).hash(self.st);
+ SawStructDef(name.as_str()).hash(self.st);
visit::walk_generics(self, g);
visit::walk_struct_def(self, s)
}
visit::walk_variant(self, v, g)
}
- fn visit_opt_lifetime_ref(&mut self, _: Span, l: &Option<Lifetime>) {
- SawOptLifetimeRef.hash(self.st);
- // (This is a strange method in the visitor trait, in that
- // it does not expose a walk function to do the subroutine
- // calls.)
- match *l {
- Some(ref l) => self.visit_lifetime_ref(l),
- None => ()
- }
- }
-
// All of the remaining methods just record (in the hash
// SipHasher) that the visitor saw that particular variant
// (with its payload), and continue walking as the default
// (If you edit a method such that it deviates from the
// pattern, please move that method up above this comment.)
- fn visit_ident(&mut self, _: Span, ident: Ident) {
- SawIdent(ident.name.as_str()).hash(self.st);
+ fn visit_name(&mut self, _: Span, name: Name) {
+ SawIdent(name.as_str()).hash(self.st);
}
- fn visit_lifetime_ref(&mut self, l: &Lifetime) {
- SawLifetimeRef(l.name.as_str()).hash(self.st);
+ fn visit_lifetime(&mut self, l: &Lifetime) {
+ SawLifetime(l.name.as_str()).hash(self.st);
}
fn visit_lifetime_def(&mut self, l: &LifetimeDef) {
SawPath.hash(self.st); visit::walk_path(self, path)
}
+ fn visit_path_list_item(&mut self, prefix: &Path, item: &'v PathListItem) {
+ SawPath.hash(self.st); visit::walk_path_list_item(self, prefix, item)
+ }
+
fn visit_block(&mut self, b: &Block) {
SawBlock.hash(self.st); visit::walk_block(self, b)
}