@@ -4441,7 +4441,14 @@ fn trans_expr_out(cx: &@block_ctxt, e: &@ast::expr, output: out_method) ->
4441
4441
ast:: expr_cont. { ret trans_cont ( e. span , cx) ; }
4442
4442
ast:: expr_ret ( ex) { ret trans_ret ( cx, ex) ; }
4443
4443
ast:: expr_put ( ex) { ret trans_put ( cx, ex) ; }
4444
- ast:: expr_be ( ex) { ret trans_be ( cx, ex) ; }
4444
+ ast:: expr_be ( ex) {
4445
+ // Ideally, the expr_be tag would have a precondition
4446
+ // that is_call_expr(ex) -- but we don't support that
4447
+ // yet
4448
+ // FIXME
4449
+ check ast_util:: is_call_expr ( ex) ;
4450
+ ret trans_be ( cx, ex) ;
4451
+ }
4445
4452
ast:: expr_anon_obj ( anon_obj) {
4446
4453
ret trans_anon_obj ( cx, e. span , anon_obj, e. id ) ;
4447
4454
}
@@ -4762,10 +4769,10 @@ fn trans_ret(cx: &@block_ctxt, e: &option::t<@ast::expr>) -> result {
4762
4769
4763
4770
fn build_return ( bcx : & @block_ctxt ) { bld:: Br ( bcx, bcx_fcx ( bcx) . llreturn ) ; }
4764
4771
4765
- fn trans_be ( cx : & @block_ctxt , e : & @ast:: expr ) -> result {
4766
- // FIXME: This should be a typestate precondition
4772
+ // fn trans_be(cx: &@block_ctxt, e: &@ast::expr) -> result {
4773
+ fn trans_be( cx : & @block_ctxt , e : & @ast:: expr )
4774
+ : ast_util:: is_call_expr ( e ) -> result {
4767
4775
4768
- assert ( ast_util:: is_call_expr ( e) ) ;
4769
4776
// FIXME: Turn this into a real tail call once
4770
4777
// calling convention issues are settled
4771
4778
0 commit comments