@@ -15,9 +15,9 @@ use syntax::ast::{Crate, NodeId, item, item_fn};
15
15
use syntax:: ast_map;
16
16
use syntax:: attr;
17
17
use syntax:: codemap:: span;
18
- use syntax:: oldvisit:: { default_visitor, mk_vt, vt, Visitor , visit_crate} ;
19
- use syntax:: oldvisit:: { visit_item} ;
20
18
use syntax:: parse:: token:: special_idents;
19
+ use syntax:: visit;
20
+ use syntax:: visit:: Visitor ;
21
21
use std:: util;
22
22
23
23
struct EntryContext {
@@ -39,7 +39,13 @@ struct EntryContext {
39
39
non_main_fns : ~[ ( NodeId , span ) ] ,
40
40
}
41
41
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
+ }
43
49
44
50
pub fn find_entry_point ( session : Session , crate : & Crate , ast_map : ast_map:: map ) {
45
51
@@ -65,15 +71,14 @@ pub fn find_entry_point(session: Session, crate: &Crate, ast_map: ast_map::map)
65
71
non_main_fns : ~[ ] ,
66
72
} ;
67
73
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) ;
72
77
73
78
configure_main ( ctxt) ;
74
79
}
75
80
76
- fn find_item ( item : @item, ctxt : @mut EntryContext , visitor : EntryVisitor ) {
81
+ fn find_item ( item : @item, ctxt : @mut EntryContext , visitor : & mut EntryVisitor ) {
77
82
match item. node {
78
83
item_fn( * ) => {
79
84
if item. ident == special_idents:: main {
@@ -120,7 +125,7 @@ fn find_item(item: @item, ctxt: @mut EntryContext, visitor: EntryVisitor) {
120
125
_ => ( )
121
126
}
122
127
123
- visit_item ( item , ( ctxt , visitor ) ) ;
128
+ visit :: walk_item ( visitor , item , ctxt ) ;
124
129
}
125
130
126
131
fn configure_main ( ctxt : @mut EntryContext ) {
0 commit comments