RangeResult(Result::new(bcx, l1), Result::new(bcx, l2))
}
Variant(disr_val, ref repr, _, _) => {
- adt::trans_case(bcx, &**repr, disr_val)
+ SingleResult(Result::new(bcx, adt::trans_case(bcx, &**repr, disr_val)))
}
SliceLengthEqual(length, _) => {
SingleResult(Result::new(bcx, C_uint(ccx, length)))
///
/// This should ideally be less tightly tied to `_match`.
pub fn trans_case<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, r: &Repr, discr: Disr)
- -> _match::OptResult<'blk, 'tcx> {
+ -> ValueRef {
match *r {
CEnum(ity, _, _) => {
- _match::SingleResult(Result::new(bcx, C_integral(ll_inttype(bcx.ccx(), ity),
- discr as u64, true)))
+ C_integral(ll_inttype(bcx.ccx(), ity), discr as u64, true)
}
General(ity, _, _) => {
- _match::SingleResult(Result::new(bcx, C_integral(ll_inttype(bcx.ccx(), ity),
- discr as u64, true)))
+ C_integral(ll_inttype(bcx.ccx(), ity), discr as u64, true)
}
Univariant(..) => {
bcx.ccx().sess().bug("no cases for univariants or structs")
RawNullablePointer { .. } |
StructWrappedNullablePointer { .. } => {
assert!(discr == 0 || discr == 1);
- _match::SingleResult(Result::new(bcx, C_bool(bcx.ccx(), discr != 0)))
+ C_bool(bcx.ccx(), discr != 0)
}
}
}
&format!("enum-iter-variant-{}",
&variant.disr_val.to_string())
);
- match adt::trans_case(cx, &*repr, variant.disr_val) {
- _match::SingleResult(r) => {
- AddCase(llswitch, r.val, variant_cx.llbb)
- }
- _ => ccx.sess().unimpl("value from adt::trans_case \
- in iter_structural_ty")
- }
+ let case_val = adt::trans_case(cx, &*repr, variant.disr_val);
+ AddCase(llswitch, case_val, variant_cx.llbb);
let variant_cx =
iter_variant(variant_cx,
&*repr,