diff --git a/internals/src/array_vec.rs b/internals/src/array_vec.rs index f75924ba1..b728503e8 100644 --- a/internals/src/array_vec.rs +++ b/internals/src/array_vec.rs @@ -78,7 +78,7 @@ mod safety_boundary { assert!(new_len <= CAP, "buffer overflow"); // SAFETY: MaybeUninit has the same layout as T let slice = unsafe { &*(slice as *const _ as *const [MaybeUninit]) }; - self.data[self.len..].copy_from_slice(slice); + self.data[self.len..new_len].copy_from_slice(slice); self.len = new_len; } } @@ -181,4 +181,10 @@ mod tests { let mut av = ArrayVec::<_, 0>::new(); av.extend_from_slice(&[42]); } + + #[test] + fn extend_from_slice() { + let mut av = ArrayVec::::new(); + av.extend_from_slice(b"abc"); + } }