@@ -305,10 +305,10 @@ fn extract_variant_args(bcx: block, pat_id: ast::node_id,
305
305
{ vals : ~[ ValueRef ] , bcx : block} {
306
306
let _icx = bcx. insn_ctxt ( "alt::extract_variant_args" ) ;
307
307
let ccx = bcx. fcx . ccx ;
308
- let enum_ty_substs = match check ty:: get ( node_id_type ( bcx, pat_id) )
308
+ let enum_ty_substs = match ty:: get ( node_id_type ( bcx, pat_id) )
309
309
. struct {
310
-
311
310
ty:: ty_enum( id, substs) => { assert id == vdefs. enm ; substs. tps }
311
+ _ => bcx. sess ( ) . bug ( ~"extract_variant_args: pattern has non-enum type")
312
312
} ;
313
313
let mut blobptr = val;
314
314
let variants = ty:: enum_variants ( ccx. tcx , vdefs. enm ) ;
@@ -667,11 +667,13 @@ fn compile_submatch(bcx: block, m: match_, vals: ~[ValueRef],
667
667
match kind {
668
668
single => Br ( bcx, opt_cx. llbb ) ,
669
669
switch => {
670
- match check trans_opt ( bcx, opt) {
670
+ match trans_opt ( bcx, opt) {
671
671
single_result( r) => {
672
672
llvm:: LLVMAddCase ( sw, r. val , opt_cx. llbb ) ;
673
673
bcx = r. bcx ;
674
674
}
675
+ _ => bcx. sess ( ) . bug ( ~"in compile_submatch, expected \
676
+ trans_opt to return a single_result")
675
677
}
676
678
}
677
679
compare => {
@@ -892,7 +894,8 @@ fn trans_alt_inner(scope_cx: block, expr: @ast::expr, arms: ~[ast::arm],
892
894
let arm_dest = dup_for_join ( dest) ;
893
895
vec:: push ( arm_dests, arm_dest) ;
894
896
let mut arm_cx = trans_block ( body_cx, a. body , arm_dest) ;
895
- arm_cx = trans_block_cleanups ( arm_cx, body_cx) ;
897
+ arm_cx = trans_block_cleanups ( arm_cx,
898
+ block_cleanups ( body_cx) ) ;
896
899
vec:: push ( arm_cxs, arm_cx) ;
897
900
}
898
901
}
0 commit comments