summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-09-09 20:16:02 -0700
committerbors <bors@rust-lang.org>2013-09-09 20:16:02 -0700
commit8c7c0b41d7b1a3f240301387fa4152a060d532e4 (patch)
treeda1d90f6d315261b32c84958ab80c14ac8b7c65a /src/libsyntax
parentaf259a651d52e7243c74a833b2b39a61890e89fe (diff)
parenta8194edef8c446d441a8bafba97a7bd961e63f10 (diff)
downloadrust-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.rs87
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
     }
 }