@@ -8,6 +8,7 @@ tag ast_node {
8
8
node_obj_ctor ( @item) ;
9
9
node_native_item ( @native_item) ;
10
10
node_expr ( @expr) ;
11
+ node_arg ( arg) ;
11
12
}
12
13
13
14
type map = std:: map:: hashmap < node_id , ast_node > ;
@@ -18,32 +19,35 @@ fn map_crate(c: crate) -> map {
18
19
// convert everything to use the smallintmap.
19
20
let map = new_smallintmap_int_adapter :: < ast_node > ( ) ;
20
21
21
- let v_map =
22
- @{ visit_item : bind map_item( map, _, _, _) ,
23
- visit_native_item: bind map_native_item ( map, _, _, _) ,
24
- visit_expr: bind map_expr ( map, _, _, _)
25
- with * visit:: default_visitor :: < ( ) > ( ) } ;
26
- visit:: visit_crate ( c, ( ) , visit:: mk_vt ( v_map) ) ;
22
+ let v_map = visit:: mk_simple_visitor
23
+ ( @{ visit_item : bind map_item( map, _) ,
24
+ visit_native_item : bind map_native_item( map, _) ,
25
+ visit_expr : bind map_expr( map, _) ,
26
+ visit_fn : bind map_fn( map, _, _, _, _, _)
27
+ with * visit:: default_simple_visitor ( ) } ) ;
28
+ visit:: visit_crate ( c, ( ) , v_map) ;
27
29
ret map;
28
30
}
29
31
30
- fn map_item ( map : map , i: @item, e : ( ) , v : vt < ( ) > ) {
32
+ fn map_fn ( map : map , f : _fn , _tp : [ ty_param ] , _sp : codemap:: span ,
33
+ _name : fn_ident , _id : node_id ) {
34
+ for a in f. decl . inputs { map. insert ( a. id , node_arg ( a) ) ; }
35
+ }
36
+
37
+ fn map_item ( map : map , i: @item) {
31
38
map. insert ( i. id , node_item ( i) ) ;
32
39
alt i. node {
33
40
item_obj ( _, _, ctor_id) { map. insert ( ctor_id, node_obj_ctor ( i) ) ; }
34
41
_ { }
35
42
}
36
- visit:: visit_item ( i, e, v) ;
37
43
}
38
44
39
- fn map_native_item ( map : map , i : @native_item , e : ( ) , v : vt < ( ) > ) {
45
+ fn map_native_item ( map : map , i : @native_item ) {
40
46
map. insert ( i. id , node_native_item ( i) ) ;
41
- visit:: visit_native_item ( i, e, v) ;
42
47
}
43
48
44
- fn map_expr ( map : map , ex: @expr, e : ( ) , v : vt < ( ) > ) {
49
+ fn map_expr ( map : map , ex: @expr) {
45
50
map. insert ( ex. id , node_expr ( ex) ) ;
46
- visit:: visit_expr ( ex, e, v) ;
47
51
}
48
52
49
53
fn new_smallintmap_int_adapter < @V > ( ) -> std:: map:: hashmap < int , V > {
0 commit comments