diff --git a/.travis.yml b/.travis.yml index ee744e1..2dc4702 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: rust rust: - - 1.20.0 + - 1.36.0 - nightly - beta - stable diff --git a/lib.rs b/lib.rs index cedf2bd..62169d6 100644 --- a/lib.rs +++ b/lib.rs @@ -132,10 +132,9 @@ macro_rules! smallvec { /// /// Equivalent to `std::hint::unreachable_unchecked` but works in older versions of Rust. #[inline] +#[deprecated(note = "Use std::hint::unreachable_unchecked instead")] pub unsafe fn unreachable() -> ! { - enum Void {} - let x: &Void = mem::transmute(1usize); - match *x {} + std::hint::unreachable_unchecked() } /// `panic!()` in debug builds, optimization hint in release. @@ -144,7 +143,7 @@ macro_rules! debug_unreachable { () => { debug_unreachable!("entered unreachable code") }; ($e:expr) => { if cfg!(not(debug_assertions)) { - unreachable(); + std::hint::unreachable_unchecked(); } else { panic!($e); }