rust/library/alloc/src
Matthias Krüger b3b9383f8d
Rollup merge of #107424 - bpeel:clone-into-from-share-code, r=scottmcm
Make Vec::clone_from and slice::clone_into share the same code

In the past, `Vec::clone_from` was implemented using `slice::clone_into`. The code from `clone_into` was later duplicated into `clone_from` in 8725e4c337, which is the commit that adds custom allocator support to Vec. Presumably this was done because the `slice::clone_into` method only works for vecs with the default allocator so it would have the wrong type to clone into `Vec<T, A>`.

Later on in 361398009b the code for the two methods diverged because the `Vec::clone_from` version gained a specialization to optimize the case when T is Copy. In order to reduce code duplication and make them both be able to take advantage of this specialization, this PR moves the specialization into the slice module and makes vec use it again.
2023-01-30 17:50:10 +01:00
..
alloc run alloc benchmarks in Miri and fix UB 2022-11-07 10:34:04 +01:00
boxed ThinBox: Add intra-doc-links for Metadata 2023-01-20 08:07:45 +01:00
collections Document guarantees about BinaryHeap invariant 2023-01-14 13:28:30 -08:00
ffi remove cfg(bootstrap) 2022-09-26 10:14:45 +02:00
raw_vec Add a unit test for zero-sized types in RawVec. 2021-11-26 19:30:45 +11:00
rc Use Box::new() instead of box syntax in alloc tests 2022-05-29 00:41:14 +02:00
slice Update rand in the stdlib tests, and remove the getrandom feature from it 2023-01-04 14:52:41 -08:00
sync Add Arc::into_inner for safely discarding Arcs without calling the destructor on the inner type. 2023-01-22 01:43:25 +09:00
testing Share testing utilities with non-btree test cases 2022-05-02 10:07:50 +02:00
vec vec: Use SpecCloneIntoVec::clone_into to implement Vec::clone_from 2023-01-28 20:37:01 +01:00
alloc.rs Remove various double spaces in source comments. 2023-01-14 17:22:04 +01:00
borrow.rs Remove redundant lifetime bound from impl Borrow for Cow 2022-07-22 01:35:39 +02:00
boxed.rs Update bootstrap cfg 2022-12-28 09:18:43 -05:00
fmt.rs Don't re-export private/unstable ArgumentV1 from alloc. 2023-01-29 20:15:02 +01:00
lib.rs Reintroduce multiple_supertrait_upcastable lint 2023-01-28 15:08:07 +00:00
macros.rs Extra documentation for new formatting feature 2022-08-21 15:28:27 -04:00
raw_vec.rs Make ZST checks in core/alloc more readable 2022-09-22 23:12:29 -07:00
rc.rs fix typo in {Rc, Arc}::get_mut_unchecked docs 2023-01-29 20:11:36 +01:00
slice.rs slice: Add a specialization for clone_into when T is Copy 2023-01-28 20:37:01 +01:00
str.rs Avoid unsafe code in to_ascii_[lower/upper]case() 2023-01-16 01:15:06 +02:00
string.rs impl: specialize impl of ToString on bool 2023-01-10 15:34:21 +13:00
sync.rs fix typo in {Rc, Arc}::get_mut_unchecked docs 2023-01-29 20:11:36 +01:00
task.rs Document the conditional existence of alloc::sync and alloc::task. 2022-06-17 20:03:23 -07:00
tests.rs Use implicit capture syntax in format_args 2022-03-10 10:23:40 -05:00