rust/library/alloc/tests
Dylan DPC 542f441d44
Rollup merge of #83629 - the8472:fix-inplace-panic-on-drop, r=m-ou-se
Fix double-drop in `Vec::from_iter(vec.into_iter())` specialization when items drop during panic

This fixes the double-drop but it leaves a behavioral difference compared to the default implementation intact: In the default implementation the source and the destination vec are separate objects, so they get dropped separately. Here they share an allocation and the latter only exists as a pointer into the former. So if dropping the former panics then this fix will leak more items than the default implementation would. Is this acceptable or should the specialization also mimic the default implementation's drops-during-panic behavior?

Fixes #83618

`@rustbot` label T-libs-impl
2021-04-02 19:57:31 +02:00
..
arc.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
binary_heap.rs in-place collect for Vec. Box<[]> and BinaryHeap IntoIter and some adapters 2020-09-03 20:59:03 +02:00
borrow.rs Move various ui const tests to library 2020-09-04 02:35:27 +02:00
boxed.rs review: fix nits and move panic safety tests to the correct place 2020-09-25 23:10:24 +02:00
btree_set_hash.rs Move btree unit test to their native, privileged location 2020-08-14 17:54:09 +02:00
cow_str.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
fmt.rs Auto merge of #78618 - workingjubilee:ieee754-fmt, r=m-ou-se 2021-03-27 10:40:16 +00:00
heap.rs Rename AllocRef to Allocator and (de)alloc to (de)allocate 2020-12-04 14:47:15 +01:00
lib.rs Rollup merge of #82331 - frol:feat/std-binary-heap-as-slice, r=Amanieu 2021-03-30 00:32:18 +02:00
linked_list.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
rc.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
slice.rs Update the bootstrap compiler 2021-02-20 17:19:30 -05:00
str.rs Fixes #80335 2021-02-03 16:36:33 -05:00
string.rs Implement String::remove_matches 2021-03-05 11:27:58 -05:00
vec.rs add testcase for double-drop during Vec in-place collection 2021-03-29 04:39:23 +02:00
vec_deque.rs replace assert! with assert_eq! 2020-12-13 10:21:24 +01:00