about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2017-11-18 20:24:54 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2017-11-18 20:52:38 +0200
commit9deea47c9605f77d3d595744753704bfd74c0dc9 (patch)
treea3c0e2afa11487fb8ae4fd0cf70c2ce1cfacd56b /src/test
parentfab2532ef949a08e16b621259a91d1ff37165665 (diff)
downloadrust-9deea47c9605f77d3d595744753704bfd74c0dc9.tar.gz
rust-9deea47c9605f77d3d595744753704bfd74c0dc9.zip
rustc_mir: always downcast enums, even if univariant.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/enum-univariant-repr.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/test/run-pass/enum-univariant-repr.rs b/src/test/run-pass/enum-univariant-repr.rs
index ef4cc60bf0d..17d614b5496 100644
--- a/src/test/run-pass/enum-univariant-repr.rs
+++ b/src/test/run-pass/enum-univariant-repr.rs
@@ -22,6 +22,11 @@ enum UnivariantWithoutDescr {
     Y
 }
 
+#[repr(u8)]
+enum UnivariantWithData {
+    Z(u8),
+}
+
 pub fn main() {
     {
         assert_eq!(4, mem::size_of::<Univariant>());
@@ -44,4 +49,12 @@ pub fn main() {
         // check it has the same memory layout as u16
         assert_eq!(&[descr, descr, descr], ints);
     }
+
+    {
+        assert_eq!(2, mem::size_of::<UnivariantWithData>());
+
+        match UnivariantWithData::Z(4) {
+            UnivariantWithData::Z(x) => assert_eq!(x, 4),
+        }
+    }
 }