diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2017-01-06 16:32:29 -0800 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2017-01-06 20:28:17 -0800 |
commit | 49187d53f2f8b7cfca9105c3fb00d7c29e2a457b (patch) | |
tree | 44e78783b3397404d6af5a6bc969b95b23d517c4 /src | |
parent | fbeded8ac543613b89af2ed7fd856e978493cde4 (diff) |
Add `nightly` feature, use for `unlikely` intrinsic
Diffstat (limited to 'src')
-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 |
4 files changed, 12 insertions, 3 deletions
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 |