+ panic!("tried to assign {:?} to Layout::General", kind);
+ }
+ }
+
+ Layout::RawNullablePointer { nndiscr, .. } => {
+ if let mir::AggregateKind::Adt(_, variant, _) = *kind {
+ if nndiscr == variant as u64 {
+ assert_eq!(operands.len(), 1);
+ let operand = &operands[0];
+ let src = try!(self.eval_operand(operand));
+ let src_ty = self.operand_ty(operand);
+ try!(self.move_(src, dest, src_ty));
+ } else {
+ assert_eq!(operands.len(), 0);
+ try!(self.memory.write_isize(dest, 0));
+ }
+ } else {
+ panic!("tried to assign {:?} to Layout::RawNullablePointer", kind);