@@ -178,26 +178,26 @@ type ast_fold[ENV] =
178
178
@expr expanded,
179
179
ann a) -> @expr) fold_expr_ext,
180
180
181
- ( fn ( & ENV e, & span sp) -> @expr) fold_expr_fail,
181
+ ( fn ( & ENV e, & span sp, ann a ) -> @expr) fold_expr_fail,
182
182
183
- ( fn ( & ENV e, & span sp) -> @expr) fold_expr_break,
183
+ ( fn ( & ENV e, & span sp, ann a ) -> @expr) fold_expr_break,
184
184
185
- ( fn ( & ENV e, & span sp) -> @expr) fold_expr_cont,
185
+ ( fn ( & ENV e, & span sp, ann a ) -> @expr) fold_expr_cont,
186
186
187
187
( fn( & ENV e, & span sp,
188
- & option. t [ @expr] rv) -> @expr) fold_expr_ret,
188
+ & option. t [ @expr] rv, ann a ) -> @expr) fold_expr_ret,
189
189
190
190
( fn( & ENV e, & span sp,
191
- & option. t [ @expr] rv) -> @expr) fold_expr_put,
191
+ & option. t [ @expr] rv, ann a ) -> @expr) fold_expr_put,
192
192
193
193
( fn ( & ENV e, & span sp,
194
- @expr e) -> @expr) fold_expr_be,
194
+ @expr e, ann a ) -> @expr) fold_expr_be,
195
195
196
196
( fn ( & ENV e, & span sp,
197
- @expr e) -> @expr) fold_expr_log,
197
+ @expr e, ann a ) -> @expr) fold_expr_log,
198
198
199
199
( fn ( & ENV e, & span sp,
200
- @expr e) -> @expr) fold_expr_check_expr,
200
+ @expr e, ann a ) -> @expr) fold_expr_check_expr,
201
201
202
202
( fn ( & ENV e, & span sp,
203
203
ann a) -> @expr) fold_expr_port,
@@ -717,53 +717,53 @@ fn fold_expr[ENV](&ENV env, ast_fold[ENV] fld, &@expr e) -> @expr {
717
717
exp, t) ;
718
718
}
719
719
720
- case ( ast. expr_fail) {
721
- ret fld. fold_expr_fail( env_, e. span) ;
720
+ case ( ast. expr_fail( ?t ) ) {
721
+ ret fld. fold_expr_fail( env_, e. span, t ) ;
722
722
}
723
723
724
- case ( ast. expr_break) {
725
- ret fld. fold_expr_break( env_, e. span) ;
724
+ case ( ast. expr_break( ?t ) ) {
725
+ ret fld. fold_expr_break( env_, e. span, t ) ;
726
726
}
727
727
728
- case ( ast. expr_cont) {
729
- ret fld. fold_expr_cont( env_, e. span) ;
728
+ case ( ast. expr_cont( ?t ) ) {
729
+ ret fld. fold_expr_cont( env_, e. span, t ) ;
730
730
}
731
731
732
- case ( ast. expr_ret( ?oe) ) {
732
+ case ( ast. expr_ret( ?oe, ?t ) ) {
733
733
auto oee = none[ @expr] ;
734
734
alt ( oe) {
735
735
case ( some[ @expr] ( ?x) ) {
736
736
oee = some( fold_expr( env_, fld, x) ) ;
737
737
}
738
738
case ( _) { /* fall through */ }
739
739
}
740
- ret fld. fold_expr_ret( env_, e. span, oee) ;
740
+ ret fld. fold_expr_ret( env_, e. span, oee, t ) ;
741
741
}
742
742
743
- case ( ast. expr_put( ?oe) ) {
743
+ case ( ast. expr_put( ?oe, ?t ) ) {
744
744
auto oee = none[ @expr] ;
745
745
alt ( oe) {
746
746
case ( some[ @expr] ( ?x) ) {
747
747
oee = some( fold_expr( env_, fld, x) ) ;
748
748
}
749
749
case ( _) { /* fall through */ }
750
750
}
751
- ret fld. fold_expr_put( env_, e. span, oee) ;
751
+ ret fld. fold_expr_put( env_, e. span, oee, t ) ;
752
752
}
753
753
754
- case ( ast. expr_be( ?x) ) {
754
+ case ( ast. expr_be( ?x, ?t ) ) {
755
755
auto ee = fold_expr( env_, fld, x) ;
756
- ret fld. fold_expr_be( env_, e. span, ee) ;
756
+ ret fld. fold_expr_be( env_, e. span, ee, t ) ;
757
757
}
758
758
759
- case ( ast. expr_log( ?x) ) {
759
+ case ( ast. expr_log( ?x, ?t ) ) {
760
760
auto ee = fold_expr( env_, fld, x) ;
761
- ret fld. fold_expr_log( env_, e. span, ee) ;
761
+ ret fld. fold_expr_log( env_, e. span, ee, t ) ;
762
762
}
763
763
764
- case ( ast. expr_check_expr( ?x) ) {
764
+ case ( ast. expr_check_expr( ?x, ?t ) ) {
765
765
auto ee = fold_expr( env_, fld, x) ;
766
- ret fld. fold_expr_check_expr( env_, e. span, ee) ;
766
+ ret fld. fold_expr_check_expr( env_, e. span, ee, t ) ;
767
767
}
768
768
769
769
case ( ast. expr_port( ?t) ) {
@@ -1308,38 +1308,40 @@ fn identity_fold_expr_ext[ENV](&ENV env, &span sp,
1308
1308
ret @respan( sp, ast. expr_ext( p, args, body, expanded, a) ) ;
1309
1309
}
1310
1310
1311
- fn identity_fold_expr_fail[ ENV ] ( & ENV env, & span sp) -> @expr {
1312
- ret @respan( sp, ast. expr_fail) ;
1311
+ fn identity_fold_expr_fail[ ENV ] ( & ENV env, & span sp, ann a ) -> @expr {
1312
+ ret @respan( sp, ast. expr_fail( a ) ) ;
1313
1313
}
1314
1314
1315
- fn identity_fold_expr_break[ ENV ] ( & ENV env, & span sp) -> @expr {
1316
- ret @respan( sp, ast. expr_break) ;
1315
+ fn identity_fold_expr_break[ ENV ] ( & ENV env, & span sp, ann a ) -> @expr {
1316
+ ret @respan( sp, ast. expr_break( a ) ) ;
1317
1317
}
1318
1318
1319
- fn identity_fold_expr_cont[ ENV ] ( & ENV env, & span sp) -> @expr {
1320
- ret @respan( sp, ast. expr_cont) ;
1319
+ fn identity_fold_expr_cont[ ENV ] ( & ENV env, & span sp, ann a ) -> @expr {
1320
+ ret @respan( sp, ast. expr_cont( a ) ) ;
1321
1321
}
1322
1322
1323
1323
fn identity_fold_expr_ret[ ENV ] ( & ENV env, & span sp,
1324
- & option. t[ @expr] rv) -> @expr {
1325
- ret @respan( sp, ast. expr_ret( rv) ) ;
1324
+ & option. t[ @expr] rv, ann a ) -> @expr {
1325
+ ret @respan( sp, ast. expr_ret( rv, a ) ) ;
1326
1326
}
1327
1327
1328
1328
fn identity_fold_expr_put[ ENV ] ( & ENV env, & span sp,
1329
- & option. t[ @expr] rv) -> @expr {
1330
- ret @respan( sp, ast. expr_put( rv) ) ;
1329
+ & option. t[ @expr] rv, ann a ) -> @expr {
1330
+ ret @respan( sp, ast. expr_put( rv, a ) ) ;
1331
1331
}
1332
1332
1333
- fn identity_fold_expr_be[ ENV ] ( & ENV env, & span sp, @expr x) -> @expr {
1334
- ret @respan( sp, ast. expr_be( x) ) ;
1333
+ fn identity_fold_expr_be[ ENV ] ( & ENV env, & span sp, @expr x, ann a ) -> @expr {
1334
+ ret @respan( sp, ast. expr_be( x, a ) ) ;
1335
1335
}
1336
1336
1337
- fn identity_fold_expr_log[ ENV ] ( & ENV e, & span sp, @expr x) -> @expr {
1338
- ret @respan( sp, ast. expr_log( x) ) ;
1337
+ fn identity_fold_expr_log[ ENV ] ( & ENV e, & span sp, @expr x,
1338
+ ann a) -> @expr {
1339
+ ret @respan( sp, ast. expr_log( x, a) ) ;
1339
1340
}
1340
1341
1341
- fn identity_fold_expr_check_expr[ ENV ] ( & ENV e, & span sp, @expr x) -> @expr {
1342
- ret @respan( sp, ast. expr_check_expr( x) ) ;
1342
+ fn identity_fold_expr_check_expr[ ENV ] ( & ENV e, & span sp, @expr x, ann a)
1343
+ -> @expr {
1344
+ ret @respan( sp, ast. expr_check_expr( x, a) ) ;
1343
1345
}
1344
1346
1345
1347
fn identity_fold_expr_port[ ENV ] ( & ENV e, & span sp, ann a) -> @expr {
@@ -1621,15 +1623,15 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] {
1621
1623
fold_expr_index = bind identity_fold_expr_index[ ENV ] ( _, _, _, _, _) ,
1622
1624
fold_expr_path = bind identity_fold_expr_path[ ENV ] ( _, _, _, _, _) ,
1623
1625
fold_expr_ext = bind identity_fold_expr_ext[ ENV ] ( _, _, _, _, _, _, _) ,
1624
- fold_expr_fail = bind identity_fold_expr_fail[ ENV ] ( _, _) ,
1625
- fold_expr_break = bind identity_fold_expr_break[ ENV ] ( _, _) ,
1626
- fold_expr_cont = bind identity_fold_expr_cont[ ENV ] ( _, _) ,
1627
- fold_expr_ret = bind identity_fold_expr_ret[ ENV ] ( _, _, _) ,
1628
- fold_expr_put = bind identity_fold_expr_put[ ENV ] ( _, _, _) ,
1629
- fold_expr_be = bind identity_fold_expr_be[ ENV ] ( _, _, _) ,
1630
- fold_expr_log = bind identity_fold_expr_log[ ENV ] ( _, _, _) ,
1626
+ fold_expr_fail = bind identity_fold_expr_fail[ ENV ] ( _, _, _ ) ,
1627
+ fold_expr_break = bind identity_fold_expr_break[ ENV ] ( _, _, _ ) ,
1628
+ fold_expr_cont = bind identity_fold_expr_cont[ ENV ] ( _, _, _ ) ,
1629
+ fold_expr_ret = bind identity_fold_expr_ret[ ENV ] ( _, _, _, _ ) ,
1630
+ fold_expr_put = bind identity_fold_expr_put[ ENV ] ( _, _, _, _ ) ,
1631
+ fold_expr_be = bind identity_fold_expr_be[ ENV ] ( _, _, _, _ ) ,
1632
+ fold_expr_log = bind identity_fold_expr_log[ ENV ] ( _, _, _, _ ) ,
1631
1633
fold_expr_check_expr
1632
- = bind identity_fold_expr_check_expr[ ENV ] ( _, _, _) ,
1634
+ = bind identity_fold_expr_check_expr[ ENV ] ( _ , _, _, _) ,
1633
1635
fold_expr_port = bind identity_fold_expr_port[ ENV ] ( _, _, _) ,
1634
1636
fold_expr_chan = bind identity_fold_expr_chan[ ENV ] ( _, _, _, _) ,
1635
1637
0 commit comments