@@ -143,6 +143,12 @@ type ast_fold[ENV] =
143
143
@expr lhs, @expr rhs,
144
144
ann a) -> @expr) fold_expr_assign_op,
145
145
146
+ ( fn ( & ENV e, & span sp,
147
+ @expr lhs, @expr rhs, ann a) -> @expr) fold_expr_send,
148
+
149
+ ( fn ( & ENV e, & span sp,
150
+ @expr lhs, @expr rhs, ann a) -> @expr) fold_expr_recv,
151
+
146
152
( fn ( & ENV e, & span sp,
147
153
@expr e, ident i,
148
154
ann a) -> @expr) fold_expr_field,
@@ -185,11 +191,6 @@ type ast_fold[ENV] =
185
191
( fn ( & ENV e, & span sp,
186
192
@expr e, ann a) -> @expr) fold_expr_chan,
187
193
188
- ( fn ( & ENV e, & span sp,
189
- @expr lhs, @expr rhs, ann a) -> @expr) fold_expr_send,
190
-
191
- ( fn ( & ENV e, & span sp,
192
- @expr lhs, @expr rhs, ann a) -> @expr) fold_expr_recv,
193
194
194
195
// Decl folds.
195
196
( fn ( & ENV e, & span sp,
@@ -664,6 +665,18 @@ fn fold_expr[ENV](&ENV env, ast_fold[ENV] fld, &@expr e) -> @expr {
664
665
ret fld. fold_expr_assign_op ( env_, e. span , op, llhs, rrhs, t) ;
665
666
}
666
667
668
+ case ( ast. expr_send ( ?lhs, ?rhs, ?t) ) {
669
+ auto llhs = fold_expr ( env_, fld, lhs) ;
670
+ auto rrhs = fold_expr ( env_, fld, rhs) ;
671
+ ret fld. fold_expr_send ( env_, e. span , llhs, rrhs, t) ;
672
+ }
673
+
674
+ case ( ast. expr_recv ( ?lhs, ?rhs, ?t) ) {
675
+ auto llhs = fold_expr ( env_, fld, lhs) ;
676
+ auto rrhs = fold_expr ( env_, fld, rhs) ;
677
+ ret fld. fold_expr_recv ( env_, e. span , llhs, rrhs, t) ;
678
+ }
679
+
667
680
case ( ast. expr_field ( ?e, ?i, ?t) ) {
668
681
auto ee = fold_expr ( env_, fld, e) ;
669
682
ret fld. fold_expr_field ( env_, e. span , ee, i, t) ;
@@ -737,18 +750,6 @@ fn fold_expr[ENV](&ENV env, ast_fold[ENV] fld, &@expr e) -> @expr {
737
750
auto ee = fold_expr ( env_, fld, x) ;
738
751
ret fld. fold_expr_chan ( env_, e. span , ee, t) ;
739
752
}
740
-
741
- case ( ast. expr_send ( ?lhs, ?rhs, ?t) ) {
742
- auto llhs = fold_expr ( env_, fld, lhs) ;
743
- auto rrhs = fold_expr ( env_, fld, rhs) ;
744
- ret fld. fold_expr_send ( env_, e. span , llhs, rrhs, t) ;
745
- }
746
-
747
- case ( ast. expr_recv ( ?lhs, ?rhs, ?t) ) {
748
- auto llhs = fold_expr ( env_, fld, lhs) ;
749
- auto rrhs = fold_expr ( env_, fld, rhs) ;
750
- ret fld. fold_expr_recv ( env_, e. span , llhs, rrhs, t) ;
751
- }
752
753
}
753
754
754
755
fail;
@@ -1237,6 +1238,16 @@ fn identity_fold_expr_assign_op[ENV](&ENV env, &span sp, ast.binop op,
1237
1238
ret @respan( sp, ast. expr_assign_op( op, lhs, rhs, a) ) ;
1238
1239
}
1239
1240
1241
+ fn identity_fold_expr_send[ ENV ] ( & ENV e, & span sp,
1242
+ @expr lhs, @expr rhs, ann a) -> @expr {
1243
+ ret @respan( sp, ast. expr_send( lhs, rhs, a) ) ;
1244
+ }
1245
+
1246
+ fn identity_fold_expr_recv[ ENV ] ( & ENV e, & span sp,
1247
+ @expr lhs, @expr rhs, ann a) -> @expr {
1248
+ ret @respan( sp, ast. expr_recv( lhs, rhs, a) ) ;
1249
+ }
1250
+
1240
1251
fn identity_fold_expr_field[ ENV ] ( & ENV env, & span sp,
1241
1252
@expr e, ident i, ann a) -> @expr {
1242
1253
ret @respan( sp, ast. expr_field( e, i, a) ) ;
@@ -1295,16 +1306,6 @@ fn identity_fold_expr_chan[ENV](&ENV e, &span sp, @expr x, ann a) -> @expr {
1295
1306
ret @respan( sp, ast. expr_chan( x, a) ) ;
1296
1307
}
1297
1308
1298
- fn identity_fold_expr_send[ ENV ] ( & ENV e, & span sp,
1299
- @expr lhs, @expr rhs, ann a) -> @expr {
1300
- ret @respan( sp, ast. expr_send( lhs, rhs, a) ) ;
1301
- }
1302
-
1303
- fn identity_fold_expr_recv[ ENV ] ( & ENV e, & span sp,
1304
- @expr lhs, @expr rhs, ann a) -> @expr {
1305
- ret @respan( sp, ast. expr_recv( lhs, rhs, a) ) ;
1306
- }
1307
-
1308
1309
// Decl identities.
1309
1310
1310
1311
fn identity_fold_decl_local[ ENV ] ( & ENV e, & span sp,
@@ -1565,6 +1566,8 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] {
1565
1566
fold_expr_assign = bind identity_fold_expr_assign[ ENV ] ( _, _, _, _, _) ,
1566
1567
fold_expr_assign_op
1567
1568
= bind identity_fold_expr_assign_op[ ENV ] ( _, _, _, _, _, _) ,
1569
+ fold_expr_send = bind identity_fold_expr_send[ ENV ] ( _, _, _, _, _) ,
1570
+ fold_expr_recv = bind identity_fold_expr_recv[ ENV ] ( _, _, _, _, _) ,
1568
1571
fold_expr_field = bind identity_fold_expr_field[ ENV ] ( _, _, _, _, _) ,
1569
1572
fold_expr_index = bind identity_fold_expr_index[ ENV ] ( _, _, _, _, _) ,
1570
1573
fold_expr_path = bind identity_fold_expr_path[ ENV ] ( _, _, _, _, _) ,
@@ -1578,8 +1581,6 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] {
1578
1581
= bind identity_fold_expr_check_expr[ ENV ] ( _, _, _) ,
1579
1582
fold_expr_port = bind identity_fold_expr_port[ ENV ] ( _, _, _) ,
1580
1583
fold_expr_chan = bind identity_fold_expr_chan[ ENV ] ( _, _, _, _) ,
1581
- fold_expr_send = bind identity_fold_expr_send[ ENV ] ( _, _, _, _, _) ,
1582
- fold_expr_recv = bind identity_fold_expr_recv[ ENV ] ( _, _, _, _, _) ,
1583
1584
1584
1585
fold_decl_local = bind identity_fold_decl_local[ ENV ] ( _, _, _) ,
1585
1586
fold_decl_item = bind identity_fold_decl_item[ ENV ] ( _, _, _) ,
0 commit comments