@@ -25,7 +25,7 @@ use syntax::codemap::{span, dummy_sp};
25
25
use syntax:: diagnostic:: span_handler;
26
26
use syntax:: parse:: token;
27
27
use syntax:: parse:: token:: ident_interner;
28
- use syntax:: oldvisit ;
28
+ use syntax:: visit ;
29
29
30
30
// Traverses an AST, reading all the information about use'd crates and extern
31
31
// libraries necessary for later resolving, typechecking, linking, etc.
@@ -46,17 +46,25 @@ pub fn read_crates(diag: @mut span_handler,
46
46
next_crate_num : 1 ,
47
47
intr : intr
48
48
} ;
49
- let v =
50
- oldvisit:: mk_simple_visitor ( @oldvisit:: SimpleVisitor {
51
- visit_view_item : |a| visit_view_item ( e, a) ,
52
- visit_item : |a| visit_item ( e, a) ,
53
- .. * oldvisit:: default_simple_visitor ( ) } ) ;
49
+ let mut v = ReadCrateVisitor { e : e } ;
54
50
visit_crate ( e, crate ) ;
55
- oldvisit :: visit_crate ( crate , ( ( ) , v ) ) ;
51
+ visit :: walk_crate ( & mut v , crate , ( ) ) ;
56
52
dump_crates ( * e. crate_cache ) ;
57
53
warn_if_multiple_versions ( e, diag, * e. crate_cache ) ;
58
54
}
59
55
56
+ struct ReadCrateVisitor { e : @mut Env }
57
+ impl visit:: Visitor < ( ) > for ReadCrateVisitor {
58
+ fn visit_view_item ( & mut self , a : & ast:: view_item , _: ( ) ) {
59
+ visit_view_item ( self . e , a) ;
60
+ visit:: walk_view_item ( self , a, ( ) ) ;
61
+ }
62
+ fn visit_item ( & mut self , a : @ast:: item , _: ( ) ) {
63
+ visit_item ( self . e , a) ;
64
+ visit:: walk_item ( self , a, ( ) ) ;
65
+ }
66
+ }
67
+
60
68
#[ deriving( Clone ) ]
61
69
struct cache_entry {
62
70
cnum : int ,
0 commit comments