diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 53f8b0b0d3472..850fa50a25cb1 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -6534,7 +6534,8 @@ fn trans_closure(bcx_maybe: &option::t[@block_ctxt], // (trans_block, trans_expr, et cetera). let rslt = if !ty::type_is_nil(cx.ccx.tcx, block_ty) && - !ty::type_is_bot(cx.ccx.tcx, block_ty) { + !ty::type_is_bot(cx.ccx.tcx, block_ty) && + f.proto != ast::proto_iter { trans_block(bcx, f.body, save_in(fcx.llretptr)) } else { trans_block(bcx, f.body, return) }; bcx = rslt.bcx;