11// run-pass
22// Test a ZST enum whose dicriminant is ~0i128. This caused an ICE when casting to a i32.
3+ use std:: hint:: black_box;
34
45#[ derive( Copy , Clone ) ]
56enum Nums {
@@ -12,9 +13,6 @@ const NEG_ONE_I32: i32 = Nums::NegOne as i32;
1213const NEG_ONE_I64 : i64 = Nums :: NegOne as i64 ;
1314const NEG_ONE_I128 : i128 = Nums :: NegOne as i128 ;
1415
15- #[ inline( never) ]
16- fn identity < T > ( t : T ) -> T { t }
17-
1816fn test_as_arg ( n : Nums ) {
1917 assert_eq ! ( -1i8 , n as i8 ) ;
2018 assert_eq ! ( -1i16 , n as i16 ) ;
@@ -31,11 +29,11 @@ fn main() {
3129 assert_eq ! ( -1i64 , kind as i64 ) ;
3230 assert_eq ! ( -1i128 , kind as i128 ) ;
3331
34- assert_eq ! ( -1i8 , identity ( kind) as i8 ) ;
35- assert_eq ! ( -1i16 , identity ( kind) as i16 ) ;
36- assert_eq ! ( -1i32 , identity ( kind) as i32 ) ;
37- assert_eq ! ( -1i64 , identity ( kind) as i64 ) ;
38- assert_eq ! ( -1i128 , identity ( kind) as i128 ) ;
32+ assert_eq ! ( -1i8 , black_box ( kind) as i8 ) ;
33+ assert_eq ! ( -1i16 , black_box ( kind) as i16 ) ;
34+ assert_eq ! ( -1i32 , black_box ( kind) as i32 ) ;
35+ assert_eq ! ( -1i64 , black_box ( kind) as i64 ) ;
36+ assert_eq ! ( -1i128 , black_box ( kind) as i128 ) ;
3937
4038 test_as_arg ( Nums :: NegOne ) ;
4139
0 commit comments