diff --git a/src/impl_methods.rs b/src/impl_methods.rs index 8e11fab3f..e65d8fc93 100644 --- a/src/impl_methods.rs +++ b/src/impl_methods.rs @@ -2268,9 +2268,9 @@ where if self.len_of(axis) <= 1 { return; } - let mut prev = self.raw_view(); - prev.slice_axis_inplace(axis, Slice::from(..-1)); let mut curr = self.raw_view_mut(); + let mut prev = curr.clone().into_raw_view(); + prev.slice_axis_inplace(axis, Slice::from(..-1)); curr.slice_axis_inplace(axis, Slice::from(1..)); // This implementation relies on `Zip` iterating along `axis` in order. Zip::from(prev).and(curr).apply(|prev, curr| unsafe {