diff options
| author | bors <bors@rust-lang.org> | 2013-09-09 20:16:02 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-09-09 20:16:02 -0700 |
| commit | 8c7c0b41d7b1a3f240301387fa4152a060d532e4 (patch) | |
| tree | da1d90f6d315261b32c84958ab80c14ac8b7c65a /src/libsyntax | |
| parent | af259a651d52e7243c74a833b2b39a61890e89fe (diff) | |
| parent | a8194edef8c446d441a8bafba97a7bd961e63f10 (diff) | |
| download | rust-8c7c0b41d7b1a3f240301387fa4152a060d532e4.tar.gz rust-8c7c0b41d7b1a3f240301387fa4152a060d532e4.zip | |
auto merge of #9034 : catamorphism/rust/rustpkg-workcache, r=metajack
r? @metajack or @brson - This pull request makes rustpkg use the workcache library to avoid recompilation.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast_util.rs | 87 |
1 files changed, 9 insertions, 78 deletions
diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index ee898c182e0..dcf655871df 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -14,7 +14,7 @@ use ast_util; use codemap::{Span, dummy_sp}; use opt_vec; use parse::token; -use visit::{SimpleVisitor, SimpleVisitorVisitor, Visitor}; +use visit::{SimpleVisitor, Visitor}; use visit; use std::hashmap::HashMap; @@ -684,94 +684,25 @@ pub fn walk_pat(pat: @Pat, it: &fn(@Pat) -> bool) -> bool { } pub trait EachViewItem { - fn each_view_item(&self, f: @fn(&ast::view_item) -> bool) -> bool; + fn each_view_item(&self, f: &fn(&ast::view_item) -> bool) -> bool; } -struct EachViewItemData { - callback: @fn(&ast::view_item) -> bool, +struct EachViewItemData<'self> { + callback: &'self fn(&ast::view_item) -> bool, } -impl SimpleVisitor for EachViewItemData { - fn visit_mod(&mut self, _: &_mod, _: Span, _: NodeId) { - // XXX: Default method. - } - fn visit_view_item(&mut self, view_item: &view_item) { +impl<'self> Visitor<()> for EachViewItemData<'self> { + fn visit_view_item(&mut self, view_item: &ast::view_item, _: ()) { let _ = (self.callback)(view_item); } - fn visit_foreign_item(&mut self, _: @foreign_item) { - // XXX: Default method. - } - fn visit_item(&mut self, _: @item) { - // XXX: Default method. - } - fn visit_local(&mut self, _: @Local) { - // XXX: Default method. - } - fn visit_block(&mut self, _: &Block) { - // XXX: Default method. - } - fn visit_stmt(&mut self, _: @Stmt) { - // XXX: Default method. - } - fn visit_arm(&mut self, _: &Arm) { - // XXX: Default method. - } - fn visit_pat(&mut self, _: @Pat) { - // XXX: Default method. - } - fn visit_decl(&mut self, _: @Decl) { - // XXX: Default method. - } - fn visit_expr(&mut self, _: @Expr) { - // XXX: Default method. - } - fn visit_expr_post(&mut self, _: @Expr) { - // XXX: Default method. - } - fn visit_ty(&mut self, _: &Ty) { - // XXX: Default method. - } - fn visit_generics(&mut self, _: &Generics) { - // XXX: Default method. - } - fn visit_fn(&mut self, - _: &visit::fn_kind, - _: &fn_decl, - _: &Block, - _: Span, - _: NodeId) { - // XXX: Default method. - } - fn visit_ty_method(&mut self, _: &TypeMethod) { - // XXX: Default method. - } - fn visit_trait_method(&mut self, _: &trait_method) { - // XXX: Default method. - } - fn visit_struct_def(&mut self, - _: @struct_def, - _: Ident, - _: &Generics, - _: NodeId) { - // XXX: Default method. - } - fn visit_struct_field(&mut self, _: @struct_field) { - // XXX: Default method. - } - fn visit_struct_method(&mut self, _: @method) { - // XXX: Default method. - } } impl EachViewItem for ast::Crate { - fn each_view_item(&self, f: @fn(&ast::view_item) -> bool) -> bool { - let data = @mut EachViewItemData { + fn each_view_item(&self, f: &fn(&ast::view_item) -> bool) -> bool { + let mut visit = EachViewItemData { callback: f, }; - let visitor = @mut SimpleVisitorVisitor { - simple_visitor: data as @mut SimpleVisitor, - }; - visit::walk_crate(visitor, self, ()); + visit::walk_crate(&mut visit, self, ()); true } } |
