From fdd2043e66673926f475a12e3ee9ce4d1d50d7d4 Mon Sep 17 00:00:00 2001 From: Konrad Borowski Date: Fri, 4 Oct 2019 23:59:37 +0200 Subject: [PATCH] Deprecate unreachable function This is designed to merged after #162, as it deprecates a function that should be no longer necessary on newer Rust versions. --- .travis.yml | 2 +- lib.rs | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) 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..a993e1f 100644 --- a/lib.rs +++ b/lib.rs @@ -130,12 +130,11 @@ macro_rules! smallvec { /// Hint to the optimizer that any code path which calls this function is /// statically unreachable and can be removed. /// -/// Equivalent to `std::hint::unreachable_unchecked` but works in older versions of Rust. +/// Equivalent to `std::hint::unreachable_unchecked`. #[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); }