Skip to content

Commit 615121e

Browse files
brsongraydon
authored andcommitted
---
yaml --- r: 1641 b: refs/heads/master c: a309f74 h: refs/heads/master i: 1639: ba6f6df v: v3
1 parent cba944d commit 615121e

File tree

3 files changed

+33
-32
lines changed

3 files changed

+33
-32
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: f0842030f3f4cad4590f1266598304f40cb23fdb
2+
refs/heads/master: a309f74a94f99127cf0667999d4080450bb62491

trunk/src/comp/front/ast.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,8 @@ tag expr_ {
232232
expr_block(block, ann);
233233
expr_assign(@expr /* TODO: @expr|is_lval */, @expr, ann);
234234
expr_assign_op(binop, @expr /* TODO: @expr|is_lval */, @expr, ann);
235+
expr_send(@expr /* TODO: @expr|is_lval */, @expr, ann);
236+
expr_recv(@expr /* TODO: @expr|is_lval */, @expr, ann);
235237
expr_field(@expr, ident, ann);
236238
expr_index(@expr, @expr, ann);
237239
expr_path(path, option.t[def], ann);
@@ -244,8 +246,6 @@ tag expr_ {
244246
expr_check_expr(@expr);
245247
expr_port(ann);
246248
expr_chan(@expr, ann);
247-
expr_send(@expr /* TODO: @expr|is_lval */, @expr, ann);
248-
expr_recv(@expr /* TODO: @expr|is_lval */, @expr, ann);
249249
}
250250

251251
type lit = spanned[lit_];

trunk/src/comp/middle/fold.rs

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,12 @@ type ast_fold[ENV] =
143143
@expr lhs, @expr rhs,
144144
ann a) -> @expr) fold_expr_assign_op,
145145

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+
146152
(fn(&ENV e, &span sp,
147153
@expr e, ident i,
148154
ann a) -> @expr) fold_expr_field,
@@ -185,11 +191,6 @@ type ast_fold[ENV] =
185191
(fn(&ENV e, &span sp,
186192
@expr e, ann a) -> @expr) fold_expr_chan,
187193

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,
193194

194195
// Decl folds.
195196
(fn(&ENV e, &span sp,
@@ -664,6 +665,18 @@ fn fold_expr[ENV](&ENV env, ast_fold[ENV] fld, &@expr e) -> @expr {
664665
ret fld.fold_expr_assign_op(env_, e.span, op, llhs, rrhs, t);
665666
}
666667

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+
667680
case (ast.expr_field(?e, ?i, ?t)) {
668681
auto ee = fold_expr(env_, fld, e);
669682
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 {
737750
auto ee = fold_expr(env_, fld, x);
738751
ret fld.fold_expr_chan(env_, e.span, ee, t);
739752
}
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-
}
752753
}
753754

754755
fail;
@@ -1237,6 +1238,16 @@ fn identity_fold_expr_assign_op[ENV](&ENV env, &span sp, ast.binop op,
12371238
ret @respan(sp, ast.expr_assign_op(op, lhs, rhs, a));
12381239
}
12391240

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+
12401251
fn identity_fold_expr_field[ENV](&ENV env, &span sp,
12411252
@expr e, ident i, ann a) -> @expr {
12421253
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 {
12951306
ret @respan(sp, ast.expr_chan(x, a));
12961307
}
12971308

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-
13081309
// Decl identities.
13091310

13101311
fn identity_fold_decl_local[ENV](&ENV e, &span sp,
@@ -1565,6 +1566,8 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] {
15651566
fold_expr_assign = bind identity_fold_expr_assign[ENV](_,_,_,_,_),
15661567
fold_expr_assign_op
15671568
= 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](_,_,_,_,_),
15681571
fold_expr_field = bind identity_fold_expr_field[ENV](_,_,_,_,_),
15691572
fold_expr_index = bind identity_fold_expr_index[ENV](_,_,_,_,_),
15701573
fold_expr_path = bind identity_fold_expr_path[ENV](_,_,_,_,_),
@@ -1578,8 +1581,6 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] {
15781581
= bind identity_fold_expr_check_expr[ENV](_,_,_),
15791582
fold_expr_port = bind identity_fold_expr_port[ENV](_,_,_),
15801583
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](_,_,_,_,_),
15831584

15841585
fold_decl_local = bind identity_fold_decl_local[ENV](_,_,_),
15851586
fold_decl_item = bind identity_fold_decl_item[ENV](_,_,_),

0 commit comments

Comments
 (0)