@@ -966,13 +966,8 @@ mod writeback {
966
966
fn visit_stmt_pre( @fn_ctxt fcx, & @ast:: stmt s) {
967
967
resolve_type_vars_for_node( fcx, s. span, ty:: stmt_node_id( s) ) ;
968
968
}
969
- fn visit_expr_pre( @mutable bool ignore , @ fn_ctxt fcx, & @ast:: expr e) {
969
+ fn visit_expr_pre( @fn_ctxt fcx, & @ast:: expr e) {
970
970
resolve_type_vars_for_node( fcx, e. span, e. id) ;
971
- alt ( e. node) {
972
- // We don't want to recurse down into lambdas.
973
- case ( ast:: expr_fn( _) ) { * ignore = true; }
974
- case ( _) { }
975
- }
976
971
}
977
972
fn visit_expr_post( @mutable bool ignore, & @ast:: expr e) {
978
973
* ignore = false;
@@ -1000,23 +995,31 @@ mod writeback {
1000
995
}
1001
996
}
1002
997
fn resolve_type_vars_in_block( & @fn_ctxt fcx, & ast:: block block) {
1003
- // A trick to ignore any contained items.
1004
-
998
+ // A trick to ignore any contained items and lambdas.
1005
999
auto ignore = @mutable false;
1006
1000
fn visit_item_pre( @mutable bool ignore, & @ast:: item item) {
1007
1001
* ignore = true;
1008
1002
}
1009
1003
fn visit_item_post( @mutable bool ignore, & @ast:: item item) {
1010
1004
* ignore = false;
1011
1005
}
1006
+ fn visit_fn_pre( @mutable bool ignore, & ast:: _fn f, & span sp,
1007
+ & ast:: fn_ident i, ast:: node_id d) {
1008
+ * ignore = true;
1009
+ }
1010
+ fn visit_fn_post( @mutable bool ignore, & ast:: _fn f, & span sp,
1011
+ & ast:: fn_ident i, ast:: node_id d) {
1012
+ * ignore = false;
1013
+ }
1012
1014
fn keep_going( @mutable bool ignore) -> bool { ret !* ignore; }
1013
1015
auto visit =
1014
1016
rec( keep_going=bind keep_going( ignore) ,
1015
1017
visit_item_pre=bind visit_item_pre( ignore, _) ,
1016
1018
visit_item_post=bind visit_item_post( ignore, _) ,
1019
+ visit_fn_pre=bind visit_fn_pre( ignore, _, _, _, _) ,
1020
+ visit_fn_post=bind visit_fn_post( ignore, _, _, _, _) ,
1017
1021
visit_stmt_pre=bind visit_stmt_pre( fcx, _) ,
1018
- visit_expr_pre=bind visit_expr_pre( ignore, fcx, _) ,
1019
- visit_expr_post=bind visit_expr_post( ignore, _) ,
1022
+ visit_expr_pre=bind visit_expr_pre( fcx, _) ,
1020
1023
visit_block_pre=bind visit_block_pre( fcx, _) ,
1021
1024
visit_pat_pre=bind visit_pat_pre( fcx, _) ,
1022
1025
visit_local_pre=bind visit_local_pre( fcx, _)
0 commit comments