diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2013-09-06 20:29:16 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2013-09-08 20:05:12 -0700 |
| commit | 02a0fb94ee685381b08d138454052b062c8b4f6e (patch) | |
| tree | 2756bb9fe47d0fc3776bb7f01c46dad8608b5b1d /src/libsyntax | |
| parent | bb30f047f6dbb5c8a73d105b25c2dc23d814b9ba (diff) | |
| download | rust-02a0fb94ee685381b08d138454052b062c8b4f6e.tar.gz rust-02a0fb94ee685381b08d138454052b062c8b4f6e.zip | |
rustpkg: Use workcache
rustpkg now uses the workcache library to avoid recompilation. Hooray!
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 } } |
