mir::AggregateKind::Adt(adt_def, index, _)
if adt_def.variants[index].kind() == ty::VariantKind::Unit => {
let repr = adt::represent_type(bcx.ccx(), dest.ty.to_ty(bcx.tcx()));
- adt::trans_set_discr(bcx, &*repr, dest.llval, 0);
+ let disr = adt_def.variants[index].disr_val;
+ adt::trans_set_discr(bcx, &*repr, dest.llval, disr);
},
_ => {
for (i, operand) in operands.iter().enumerate() {
U(u8)
}
+#[derive(PartialEq, Debug, Eq)]
+enum CEnum {
+ A = 0x321,
+ B = 0x123
+}
+
const C: u8 = 84;
const C2: [u8; 5] = [42; 5];
const C3: [u8; 3] = [42, 41, 40];
None
}
+#[rustc_mir]
+fn t23() -> (CEnum, CEnum) {
+ (CEnum::A, CEnum::B)
+}
+
fn main(){
unsafe {
assert_eq!(t1()(), regular());
assert_eq!(t20()(123u64, 38u32), <u32 as T<_, _>>::staticmeth(123, 38));
assert_eq!(t21(), Unit);
assert_eq!(t22(), None);
+ assert_eq!(t23(), (CEnum::A, CEnum::B));
}
}