diff options
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | src/grid.rs | 2 | ||||
-rw-r--r-- | src/lib.rs | 2 | ||||
-rw-r--r-- | src/term/mod.rs | 2 | ||||
-rw-r--r-- | src/util.rs | 9 |
5 files changed, 13 insertions, 3 deletions
@@ -35,6 +35,7 @@ default = ["err-println"] # Enabling this feature makes shaders automatically reload when changed live-shader-reload = [] err-println = [] +nightly = [] [build-dependencies] gl_generator = "0.5" diff --git a/src/grid.rs b/src/grid.rs index e044a8c3..5c3da769 100644 --- a/src/grid.rs +++ b/src/grid.rs @@ -150,7 +150,7 @@ impl<T> Grid<T> { /// better error messages by doing the bounds checking ourselves. #[inline] pub fn swap_lines(&mut self, src: index::Line, dst: index::Line) { - use std::intrinsics::unlikely; + use util::unlikely; unsafe { // check that src/dst are in bounds. Since index::Line newtypes usize, @@ -20,7 +20,7 @@ #![cfg_attr(feature = "clippy", deny(if_not_else))] #![cfg_attr(feature = "clippy", deny(wrong_pub_self_convention))] #![cfg_attr(test, feature(test))] -#![feature(core_intrinsics)] +#![cfg_attr(feature = "nightly", feature(core_intrinsics))] #![feature(proc_macro)] diff --git a/src/term/mod.rs b/src/term/mod.rs index 09ed5d41..eab73e74 100644 --- a/src/term/mod.rs +++ b/src/term/mod.rs @@ -630,7 +630,7 @@ impl ansi::Handler for Term { } unsafe { - if ::std::intrinsics::unlikely(self.cursor.line == self.grid.num_lines()) { + if ::util::unlikely(self.cursor.line == self.grid.num_lines()) { panic!("cursor fell off grid"); } } diff --git a/src/util.rs b/src/util.rs index 44f7b3de..2e34b2a6 100644 --- a/src/util.rs +++ b/src/util.rs @@ -13,6 +13,15 @@ // limitations under the License. use std::cmp; +#[cfg(not(feature = "nightly"))] +#[inline(always)] +pub unsafe fn unlikely(x: bool) -> bool { + x +} + +#[cfg(feature = "nightly")] +pub use ::std::intrinsics::unlikely; + /// Threading utilities pub mod thread { /// Like `thread::spawn`, but with a `name` argument |