about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2015-04-10 16:14:00 +0200
committerFelix S. Klock II <pnkfelix@pnkfx.org>2015-04-10 16:14:00 +0200
commitea2739176be213117f570d6b9ed787deac53880e (patch)
treec47691d6411aea3d24afa9b419a93cddc0bc355b
parent800c5f8038280fe8524ebd797b93c2ad4e16e1b7 (diff)
downloadrust-ea2739176be213117f570d6b9ed787deac53880e.tar.gz
rust-ea2739176be213117f570d6b9ed787deac53880e.zip
Rebase discriminant_value test. Add case for a specialized repr.
-rw-r--r--src/test/run-pass/discriminant_value.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/run-pass/discriminant_value.rs b/src/test/run-pass/discriminant_value.rs
index 531a30d6580..217e696f095 100644
--- a/src/test/run-pass/discriminant_value.rs
+++ b/src/test/run-pass/discriminant_value.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 extern crate core;
 use core::intrinsics::discriminant_value;
 
@@ -25,6 +27,14 @@ enum CLike2 {
     D
 }
 
+#[repr(i8)]
+enum CLike3 {
+    A = 5,
+    B,
+    C = -1,
+    D
+}
+
 enum ADT {
     First(u32, u32),
     Second(u64)
@@ -50,6 +60,11 @@ pub fn main() {
         assert_eq!(discriminant_value(&CLike2::C), 19);
         assert_eq!(discriminant_value(&CLike2::D), 20);
 
+        assert_eq!(discriminant_value(&CLike3::A), 5);
+        assert_eq!(discriminant_value(&CLike3::B), 6);
+        assert_eq!(discriminant_value(&CLike3::C), -1_i8 as u64);
+        assert_eq!(discriminant_value(&CLike3::D), 0);
+
         assert_eq!(discriminant_value(&ADT::First(0,0)), 0);
         assert_eq!(discriminant_value(&ADT::Second(5)), 1);