@@ -3076,6 +3076,7 @@ impl<T> [T] {
3076
3076
/// [`copy_from_slice`]: slice::copy_from_slice
3077
3077
/// [`split_at_mut`]: slice::split_at_mut
3078
3078
#[ stable( feature = "clone_from_slice" , since = "1.7.0" ) ]
3079
+ #[ track_caller]
3079
3080
pub fn clone_from_slice ( & mut self , src : & [ T ] )
3080
3081
where
3081
3082
T : Clone ,
@@ -3139,6 +3140,7 @@ impl<T> [T] {
3139
3140
/// [`split_at_mut`]: slice::split_at_mut
3140
3141
#[ doc( alias = "memcpy" ) ]
3141
3142
#[ stable( feature = "copy_from_slice" , since = "1.9.0" ) ]
3143
+ #[ track_caller]
3142
3144
pub fn copy_from_slice ( & mut self , src : & [ T ] )
3143
3145
where
3144
3146
T : Copy ,
@@ -3259,6 +3261,7 @@ impl<T> [T] {
3259
3261
///
3260
3262
/// [`split_at_mut`]: slice::split_at_mut
3261
3263
#[ stable( feature = "swap_with_slice" , since = "1.27.0" ) ]
3264
+ #[ track_caller]
3262
3265
pub fn swap_with_slice ( & mut self , other : & mut [ T ] ) {
3263
3266
assert ! ( self . len( ) == other. len( ) , "destination and source slices have different lengths" ) ;
3264
3267
// SAFETY: `self` is valid for `self.len()` elements by definition, and `src` was
@@ -3581,6 +3584,7 @@ impl<T> CloneFromSpec<T> for [T]
3581
3584
where
3582
3585
T : Clone ,
3583
3586
{
3587
+ #[ track_caller]
3584
3588
default fn spec_clone_from ( & mut self , src : & [ T ] ) {
3585
3589
assert ! ( self . len( ) == src. len( ) , "destination and source slices have different lengths" ) ;
3586
3590
// NOTE: We need to explicitly slice them to the same length
@@ -3598,6 +3602,7 @@ impl<T> CloneFromSpec<T> for [T]
3598
3602
where
3599
3603
T : Copy ,
3600
3604
{
3605
+ #[ track_caller]
3601
3606
fn spec_clone_from ( & mut self , src : & [ T ] ) {
3602
3607
self . copy_from_slice ( src) ;
3603
3608
}
0 commit comments