Skip to content

Commit 6b29d49

Browse files
committed
---
yaml --- r: 2269 b: refs/heads/master c: bcad524 h: refs/heads/master i: 2267: e36a792 v: v3
1 parent b742c0f commit 6b29d49

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
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: 66e5dfbde6ce7a84158d39f4b19acc420b1f7c5a
2+
refs/heads/master: bcad52451cb63118ee9b67684b8b70e3cb5f4aff

trunk/src/comp/middle/trans.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5075,9 +5075,19 @@ fn trans_expr(@block_ctxt cx, @ast.expr e) -> result {
50755075
auto t = node_ann_type(cx.fcx.lcx.ccx, ann);
50765076
auto lhs_res = trans_lval(cx, dst);
50775077
check (lhs_res.is_mem);
5078-
auto lhs_val = load_if_immediate(lhs_res.res.bcx,
5079-
lhs_res.res.val, t);
50805078
auto rhs_res = trans_expr(lhs_res.res.bcx, src);
5079+
if (ty.type_is_sequence(cx.fcx.lcx.ccx.tcx, t)) {
5080+
alt (op) {
5081+
case (ast.add) {
5082+
ret trans_vec_append(rhs_res.bcx, t,
5083+
lhs_res.res.val,
5084+
rhs_res.val);
5085+
}
5086+
case (_) { }
5087+
}
5088+
}
5089+
auto lhs_val = load_if_immediate(rhs_res.bcx,
5090+
lhs_res.res.val, t);
50815091
auto v = trans_eager_binop(rhs_res.bcx, op, t,
50825092
lhs_val, rhs_res.val);
50835093
// FIXME: calculate copy init-ness in typestate.

0 commit comments

Comments
 (0)