@@ -275,7 +275,7 @@ fn resolve_names(e: &@env, c: &@ast::crate) {
275
275
visit_item: visit_item_with_scope,
276
276
visit_block: visit_block_with_scope,
277
277
visit_decl: visit_decl_with_scope,
278
- visit_arm: walk_arm ,
278
+ visit_arm: visit_arm_with_scope ,
279
279
visit_pat: bind walk_pat ( e, _, _, _) ,
280
280
visit_expr: bind walk_expr ( e, _, _, _) ,
281
281
visit_ty: bind walk_ty ( e, _, _, _) ,
@@ -310,9 +310,6 @@ fn resolve_names(e: &@env, c: &@ast::crate) {
310
310
sc : & scopes , _v : & vt < scopes > ) {
311
311
maybe_insert ( e, id, lookup_path_strict ( * e, sc, sp, p. node , ns_value) ) ;
312
312
}
313
- fn walk_arm ( a : & ast:: arm , sc : & scopes , v : & vt < scopes > ) {
314
- visit_arm_with_scope ( a, sc, v) ;
315
- }
316
313
fn walk_pat ( e : & @env , pat : & @ast:: pat , sc : & scopes , v : & vt < scopes > ) {
317
314
visit:: visit_pat ( pat, sc, v) ;
318
315
alt pat. node {
@@ -398,7 +395,10 @@ fn visit_decl_with_scope(d: &@decl, sc: &scopes, v: &vt<scopes>) {
398
395
}
399
396
400
397
fn visit_arm_with_scope ( a : & ast:: arm , sc : & scopes , v : & vt < scopes > ) {
401
- visit:: visit_arm ( a, cons ( scope_arm ( a) , @sc) , v) ;
398
+ for p: @pat in a. pats { v. visit_pat ( p, sc, v) ; }
399
+ let sc_inner = cons ( scope_arm ( a) , @sc) ;
400
+ visit:: visit_expr_opt ( a. guard , sc_inner, v) ;
401
+ v. visit_block ( a. body , sc_inner, v) ;
402
402
}
403
403
404
404
fn visit_expr_with_scope ( x : & @ast:: expr , sc : & scopes , v : & vt < scopes > ) {
0 commit comments