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);