diff options
| author | kennytm <kennytm@gmail.com> | 2018-05-09 17:26:13 +0800 |
|---|---|---|
| committer | kennytm <kennytm@gmail.com> | 2018-05-09 20:29:44 +0800 |
| commit | e6e58a3a436298d4a6674a04a0acd62e52a5ce1c (patch) | |
| tree | bb99d1f81e94b8d5f77f799df4ae717e82a8f052 | |
| parent | 1f4718a5c1ae842d119b2a0399ce07a4ee78c28c (diff) | |
| parent | 6c8ec842cc2dbd0f4dbf99dbd47717fb48cf5b88 (diff) | |
| download | rust-e6e58a3a436298d4a6674a04a0acd62e52a5ce1c.tar.gz rust-e6e58a3a436298d4a6674a04a0acd62e52a5ce1c.zip | |
Rollup merge of #50464 - est31:master, r=rkruppe
Remove some transmutes
| -rw-r--r-- | src/libcore/tests/num/flt2dec/random.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libcore/tests/num/flt2dec/random.rs b/src/libcore/tests/num/flt2dec/random.rs index 315ac4d7d99..a1928657dab 100644 --- a/src/libcore/tests/num/flt2dec/random.rs +++ b/src/libcore/tests/num/flt2dec/random.rs @@ -11,7 +11,6 @@ #![cfg(not(target_arch = "wasm32"))] use std::i16; -use std::mem; use std::str; use core::num::flt2dec::MAX_SIG_DIGITS; @@ -75,8 +74,7 @@ pub fn f32_random_equivalence_test<F, G>(f: F, g: G, k: usize, n: usize) let mut rng: XorShiftRng = Rand::rand(&mut rand::thread_rng()); let f32_range = Range::new(0x0000_0001u32, 0x7f80_0000); iterate("f32_random_equivalence_test", k, n, f, g, |_| { - let i: u32 = f32_range.ind_sample(&mut rng); - let x: f32 = unsafe {mem::transmute(i)}; + let x = f32::from_bits(f32_range.ind_sample(&mut rng)); decode_finite(x) }); } @@ -87,8 +85,7 @@ pub fn f64_random_equivalence_test<F, G>(f: F, g: G, k: usize, n: usize) let mut rng: XorShiftRng = Rand::rand(&mut rand::thread_rng()); let f64_range = Range::new(0x0000_0000_0000_0001u64, 0x7ff0_0000_0000_0000); iterate("f64_random_equivalence_test", k, n, f, g, |_| { - let i: u64 = f64_range.ind_sample(&mut rng); - let x: f64 = unsafe {mem::transmute(i)}; + let x = f64::from_bits(f64_range.ind_sample(&mut rng)); decode_finite(x) }); } @@ -105,7 +102,8 @@ pub fn f32_exhaustive_equivalence_test<F, G>(f: F, g: G, k: usize) // iterate from 0x0000_0001 to 0x7f7f_ffff, i.e. all finite ranges let (npassed, nignored) = iterate("f32_exhaustive_equivalence_test", k, 0x7f7f_ffff, f, g, |i: usize| { - let x: f32 = unsafe {mem::transmute(i as u32 + 1)}; + + let x = f32::from_bits(i as u32 + 1); decode_finite(x) }); assert_eq!((npassed, nignored), (2121451881, 17643158)); |
