@@ -67,6 +67,8 @@ type ast_fold[ENV] =
67
67
& option. t [ def] d) -> @ty) fold_ty_path,
68
68
69
69
( fn ( & ENV e, & span sp, @ty t) -> @ty) fold_ty_mutable,
70
+ ( fn ( & ENV e, & span sp, @ty t) -> @ty) fold_ty_chan,
71
+ ( fn ( & ENV e, & span sp, @ty t) -> @ty) fold_ty_port,
70
72
71
73
// Expr folds.
72
74
( fn( & ENV e, & span sp,
@@ -386,6 +388,16 @@ fn fold_ty[ENV](&ENV env, ast_fold[ENV] fld, @ty t) -> @ty {
386
388
case ( ast. ty_fn( ?proto, ?inputs, ?output) ) {
387
389
ret fold_ty_fn( env_, fld, t. span, proto, inputs, output) ;
388
390
}
391
+
392
+ case ( ast. ty_chan( ?ty) ) {
393
+ auto ty_ = fold_ty( env, fld, ty) ;
394
+ ret fld. fold_ty_chan( env_, t. span, ty_) ;
395
+ }
396
+
397
+ case ( ast. ty_port( ?ty) ) {
398
+ auto ty_ = fold_ty( env, fld, ty) ;
399
+ ret fld. fold_ty_port( env_, t. span, ty_) ;
400
+ }
389
401
}
390
402
}
391
403
@@ -1083,6 +1095,13 @@ fn identity_fold_ty_mutable[ENV](&ENV env, &span sp, @ty t) -> @ty {
1083
1095
ret @respan( sp, ast. ty_mutable( t) ) ;
1084
1096
}
1085
1097
1098
+ fn identity_fold_ty_chan[ ENV ] ( & ENV env, & span sp, @ty t) -> @ty {
1099
+ ret @respan( sp, ast. ty_chan( t) ) ;
1100
+ }
1101
+
1102
+ fn identity_fold_ty_port[ ENV ] ( & ENV env, & span sp, @ty t) -> @ty {
1103
+ ret @respan( sp, ast. ty_port( t) ) ;
1104
+ }
1086
1105
1087
1106
// Expr identities.
1088
1107
@@ -1473,6 +1492,8 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] {
1473
1492
fold_ty_fn = bind identity_fold_ty_fn[ ENV ] ( _, _, _, _, _) ,
1474
1493
fold_ty_path = bind identity_fold_ty_path[ ENV ] ( _, _, _, _) ,
1475
1494
fold_ty_mutable = bind identity_fold_ty_mutable[ ENV ] ( _, _, _) ,
1495
+ fold_ty_chan = bind identity_fold_ty_chan[ ENV ] ( _, _, _) ,
1496
+ fold_ty_port = bind identity_fold_ty_port[ ENV ] ( _, _, _) ,
1476
1497
1477
1498
fold_expr_vec = bind identity_fold_expr_vec[ ENV ] ( _, _, _, _) ,
1478
1499
fold_expr_tup = bind identity_fold_expr_tup[ ENV ] ( _, _, _, _) ,
0 commit comments