about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2013-09-10 11:24:04 +0200
committerFelix S. Klock II <pnkfelix@pnkfx.org>2013-09-10 11:25:10 +0200
commited37da2f799bd95c6398b92a51f7eaf65c62c5fe (patch)
tree253464ed3f679bc9096a34c22527532ceda9acab /src
parent6724317dad11856d6467ca2374e8c8bb6e749612 (diff)
downloadrust-ed37da2f799bd95c6398b92a51f7eaf65c62c5fe.tar.gz
rust-ed37da2f799bd95c6398b92a51f7eaf65c62c5fe.zip
middle/entry.rs Visitor refactoring (#7081): unify Entry{Context,Visitor}.
Diffstat (limited to 'src')
-rw-r--r--src/librustc/middle/entry.rs23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/librustc/middle/entry.rs b/src/librustc/middle/entry.rs
index 22e6bc3ac2f..4f9c9bdc62b 100644
--- a/src/librustc/middle/entry.rs
+++ b/src/librustc/middle/entry.rs
@@ -39,11 +39,9 @@ struct EntryContext {
     non_main_fns: ~[(NodeId, Span)],
 }
 
-struct EntryVisitor;
-
-impl Visitor<@mut EntryContext> for EntryVisitor {
-    fn visit_item(&mut self, item:@item, ctxt:@mut EntryContext) {
-        find_item(item, ctxt, self);
+impl Visitor<()> for EntryContext {
+    fn visit_item(&mut self, item:@item, _:()) {
+        find_item(item, self);
     }
 }
 
@@ -62,7 +60,7 @@ pub fn find_entry_point(session: Session, crate: &Crate, ast_map: ast_map::map)
         return
     }
 
-    let ctxt = @mut EntryContext {
+    let mut ctxt = EntryContext {
         session: session,
         ast_map: ast_map,
         main_fn: None,
@@ -71,14 +69,12 @@ pub fn find_entry_point(session: Session, crate: &Crate, ast_map: ast_map::map)
         non_main_fns: ~[],
     };
 
-    let mut v = EntryVisitor;
-
-    visit::walk_crate(&mut v, crate, ctxt);
+    visit::walk_crate(&mut ctxt, crate, ());
 
-    configure_main(ctxt);
+    configure_main(&mut ctxt);
 }
 
-fn find_item(item: @item, ctxt: @mut EntryContext, visitor: &mut EntryVisitor) {
+fn find_item(item: @item, ctxt: &mut EntryContext) {
     match item.node {
         item_fn(*) => {
             if item.ident.name == special_idents::main.name {
@@ -125,11 +121,10 @@ fn find_item(item: @item, ctxt: @mut EntryContext, visitor: &mut EntryVisitor) {
         _ => ()
     }
 
-    visit::walk_item(visitor, item, ctxt);
+    visit::walk_item(ctxt, item, ());
 }
 
-fn configure_main(ctxt: @mut EntryContext) {
-    let this = &mut *ctxt;
+fn configure_main(this: &mut EntryContext) {
     if this.start_fn.is_some() {
         *this.session.entry_fn = this.start_fn;
         *this.session.entry_type = Some(session::EntryStart);