@@ -2,6 +2,7 @@ import syntax::ast::*;
2
2
import syntax:: { visit, ast_util, ast_map} ;
3
3
import driver:: session:: session;
4
4
import std:: map:: hashmap;
5
+ import dvec :: { dvec, extensions} ;
5
6
6
7
fn check_crate ( sess : session , crate : @crate , ast_map : ast_map:: map ,
7
8
def_map : resolve:: def_map ,
@@ -130,15 +131,15 @@ fn check_item_recursion(sess: session, ast_map: ast_map::map,
130
131
sess : session ,
131
132
ast_map : ast_map:: map ,
132
133
def_map : resolve:: def_map ,
133
- idstack : @mut [ node_id ] ,
134
+ idstack : @dvec < node_id > ,
134
135
} ;
135
136
136
137
let env = {
137
138
root_it: it,
138
139
sess: sess,
139
140
ast_map: ast_map,
140
141
def_map: def_map,
141
- idstack: @mut [ ]
142
+ idstack: @dvec ( )
142
143
} ;
143
144
144
145
let visitor = visit:: mk_vt ( @{
@@ -152,9 +153,9 @@ fn check_item_recursion(sess: session, ast_map: ast_map::map,
152
153
if ( * env. idstack ) . contains ( it. id ) {
153
154
env. sess . span_fatal ( env. root_it . span , "recursive constant" ) ;
154
155
}
155
- vec :: push ( * env. idstack , it. id ) ;
156
+ ( * env. idstack ) . push ( it. id ) ;
156
157
visit:: visit_item ( it, env, v) ;
157
- vec :: pop ( * env. idstack ) ;
158
+ ( * env. idstack ) . pop ( ) ;
158
159
}
159
160
160
161
fn visit_expr ( e : @expr, &&env : env , v : visit:: vt < env > ) {
0 commit comments