]> git.lizzy.rs Git - rust.git/blobdiff - src/libcore/slice.rs
Auto merge of #22669 - dotdash:fast_slice_iter, r=huonw
[rust.git] / src / libcore / slice.rs
index 91cad4330f20464441fdf623ee39219dcf81f58c..5b78da34eddde0e7dd363383b3fd0d4b719c5640 100644 (file)
@@ -40,6 +40,7 @@
 use cmp::Ordering::{Less, Equal, Greater};
 use cmp;
 use default::Default;
+use intrinsics::assume;
 use iter::*;
 use ops::{FnMut, self, Index};
 use ops::RangeFull;
@@ -137,6 +138,7 @@ fn split_at(&self, mid: usize) -> (&[T], &[T]) {
     fn iter<'a>(&'a self) -> Iter<'a, T> {
         unsafe {
             let p = self.as_ptr();
+            assume(!p.is_null());
             if mem::size_of::<T>() == 0 {
                 Iter {ptr: p,
                       end: (p as usize + self.len()) as *const T,
@@ -276,6 +278,7 @@ fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
     fn iter_mut<'a>(&'a mut self) -> IterMut<'a, T> {
         unsafe {
             let p = self.as_mut_ptr();
+            assume(!p.is_null());
             if mem::size_of::<T>() == 0 {
                 IterMut {ptr: p,
                          end: (p as usize + self.len()) as *mut T,