From: Kornel Date: Tue, 26 Oct 2021 12:03:02 +0000 (+0100) Subject: track_caller for slice length assertions X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=90ea93bf1aff8a4239d50813a8537bb65e06fbf9;p=rust.git track_caller for slice length assertions --- diff --git a/library/core/src/slice/mod.rs b/library/core/src/slice/mod.rs index a6370a4513b..65ed72cb0cd 100644 --- a/library/core/src/slice/mod.rs +++ b/library/core/src/slice/mod.rs @@ -3076,6 +3076,7 @@ pub fn fill_with(&mut self, mut f: F) /// [`copy_from_slice`]: slice::copy_from_slice /// [`split_at_mut`]: slice::split_at_mut #[stable(feature = "clone_from_slice", since = "1.7.0")] + #[track_caller] pub fn clone_from_slice(&mut self, src: &[T]) where T: Clone, @@ -3139,6 +3140,7 @@ pub fn clone_from_slice(&mut self, src: &[T]) /// [`split_at_mut`]: slice::split_at_mut #[doc(alias = "memcpy")] #[stable(feature = "copy_from_slice", since = "1.9.0")] + #[track_caller] pub fn copy_from_slice(&mut self, src: &[T]) where T: Copy, @@ -3259,6 +3261,7 @@ pub fn copy_within>(&mut self, src: R, dest: usize) /// /// [`split_at_mut`]: slice::split_at_mut #[stable(feature = "swap_with_slice", since = "1.27.0")] + #[track_caller] pub fn swap_with_slice(&mut self, other: &mut [T]) { assert!(self.len() == other.len(), "destination and source slices have different lengths"); // SAFETY: `self` is valid for `self.len()` elements by definition, and `src` was @@ -3581,6 +3584,7 @@ impl CloneFromSpec for [T] where T: Clone, { + #[track_caller] default fn spec_clone_from(&mut self, src: &[T]) { assert!(self.len() == src.len(), "destination and source slices have different lengths"); // NOTE: We need to explicitly slice them to the same length @@ -3598,6 +3602,7 @@ impl CloneFromSpec for [T] where T: Copy, { + #[track_caller] fn spec_clone_from(&mut self, src: &[T]) { self.copy_from_slice(src); }