Skip to content

Commit 6986361

Browse files
committed
Port entry.rs from oldvisit to <V:Visitor> trait API.
1 parent 78dd07b commit 6986361

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/librustc/middle/entry.rs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ use syntax::ast::{Crate, NodeId, item, item_fn};
1515
use syntax::ast_map;
1616
use syntax::attr;
1717
use syntax::codemap::span;
18-
use syntax::oldvisit::{default_visitor, mk_vt, vt, Visitor, visit_crate};
19-
use syntax::oldvisit::{visit_item};
2018
use syntax::parse::token::special_idents;
19+
use syntax::visit;
20+
use syntax::visit::Visitor;
2121
use std::util;
2222

2323
struct EntryContext {
@@ -39,7 +39,13 @@ struct EntryContext {
3939
non_main_fns: ~[(NodeId, span)],
4040
}
4141

42-
type EntryVisitor = vt<@mut EntryContext>;
42+
struct EntryVisitor;
43+
44+
impl Visitor<@mut EntryContext> for EntryVisitor {
45+
fn visit_item(&mut self, item:@item, ctxt:@mut EntryContext) {
46+
find_item(item, ctxt, self);
47+
}
48+
}
4349

4450
pub fn find_entry_point(session: Session, crate: &Crate, ast_map: ast_map::map) {
4551

@@ -65,15 +71,14 @@ pub fn find_entry_point(session: Session, crate: &Crate, ast_map: ast_map::map)
6571
non_main_fns: ~[],
6672
};
6773

68-
visit_crate(crate, (ctxt, mk_vt(@Visitor {
69-
visit_item: |item, (ctxt, visitor)| find_item(item, ctxt, visitor),
70-
.. *default_visitor()
71-
})));
74+
let mut v = EntryVisitor;
75+
76+
visit::walk_crate(&mut v, crate, ctxt);
7277

7378
configure_main(ctxt);
7479
}
7580

76-
fn find_item(item: @item, ctxt: @mut EntryContext, visitor: EntryVisitor) {
81+
fn find_item(item: @item, ctxt: @mut EntryContext, visitor: &mut EntryVisitor) {
7782
match item.node {
7883
item_fn(*) => {
7984
if item.ident == special_idents::main {
@@ -120,7 +125,7 @@ fn find_item(item: @item, ctxt: @mut EntryContext, visitor: EntryVisitor) {
120125
_ => ()
121126
}
122127

123-
visit_item(item, (ctxt, visitor));
128+
visit::walk_item(visitor, item, ctxt);
124129
}
125130

126131
fn configure_main(ctxt: @mut EntryContext) {

0 commit comments

Comments
 (0)