@@ -16,7 +16,6 @@ use middle::ty;
16
16
use middle:: typeck;
17
17
use util:: ppaux;
18
18
19
- use core:: dvec:: DVec ;
20
19
use core:: option;
21
20
use std:: oldmap:: HashMap ;
22
21
use syntax:: ast:: * ;
@@ -212,20 +211,20 @@ pub fn check_item_recursion(sess: Session,
212
211
ast_map : ast_map:: map ,
213
212
def_map : resolve:: DefMap ,
214
213
it: @item) {
215
- type env = {
214
+ struct env {
216
215
root_it : @item,
217
216
sess : Session ,
218
217
ast_map : ast_map:: map ,
219
218
def_map : resolve:: DefMap ,
220
- idstack : @DVec < node_id > ,
221
- } ;
219
+ idstack : @mut ~ [ node_id ]
220
+ }
222
221
223
- let env = {
222
+ let env = env {
224
223
root_it : it,
225
224
sess : sess,
226
225
ast_map : ast_map,
227
226
def_map : def_map,
228
- idstack: @DVec ( )
227
+ idstack : @mut ~ [ ]
229
228
} ;
230
229
231
230
let visitor = visit:: mk_vt ( @visit:: Visitor {
@@ -236,12 +235,12 @@ pub fn check_item_recursion(sess: Session,
236
235
( visitor. visit_item ) ( it, env, visitor) ;
237
236
238
237
fn visit_item ( it : @item, &&env : env , v : visit:: vt < env > ) {
239
- if ( * env. idstack ) . contains ( & ( it. id ) ) {
238
+ if env. idstack . contains ( & ( it. id ) ) {
240
239
env. sess . span_fatal ( env. root_it . span , ~"recursive constant") ;
241
240
}
242
- ( * env. idstack ) . push ( it. id ) ;
241
+ env. idstack . push ( it. id ) ;
243
242
visit:: visit_item ( it, env, v) ;
244
- ( * env. idstack ) . pop ( ) ;
243
+ env. idstack . pop ( ) ;
245
244
}
246
245
247
246
fn visit_expr ( e : @expr, &&env : env , v : visit:: vt < env > ) {
0 commit comments