Use explicit reference-counted clones
This commit is contained in:
+9
-9
@@ -90,7 +90,7 @@ fn test_send_type_erased_vec_retains_send_elements_across_threads() {
|
||||
#[test]
|
||||
fn test_send_sync_type_erased_vec_retains_elements() {
|
||||
let value = Arc::new(42);
|
||||
let mut erased = SendSyncTypeErasedVec::new(vec![value.clone()]);
|
||||
let mut erased = SendSyncTypeErasedVec::new(vec![Arc::clone(&value)]);
|
||||
|
||||
assert_eq!(erased.length(), 1);
|
||||
assert_eq!(erased.layout(), Layout::new::<Arc<i32>>());
|
||||
@@ -207,7 +207,7 @@ fn test_clear_drops_elements() {
|
||||
let mut vec = Vec::with_capacity(5);
|
||||
|
||||
for _ in 0..5 {
|
||||
vec.push(DropTracker::new(drop_count.clone()));
|
||||
vec.push(DropTracker::new(Rc::clone(&drop_count)));
|
||||
}
|
||||
|
||||
let initial_cap = vec.capacity();
|
||||
@@ -266,7 +266,7 @@ fn test_clear_is_unwind_safe_when_element_drop_panics() {
|
||||
|
||||
let has_panicked = Rc::new(Cell::new(false));
|
||||
let mut erased = TypeErasedVec::new(vec![PanicOnFirstDrop {
|
||||
has_panicked: has_panicked.clone(),
|
||||
has_panicked: Rc::clone(&has_panicked),
|
||||
}]);
|
||||
|
||||
let result = panic::catch_unwind(panic::AssertUnwindSafe(|| {
|
||||
@@ -312,7 +312,7 @@ fn test_try_as_type_clears_elements() {
|
||||
let mut vec = Vec::with_capacity(5);
|
||||
|
||||
for _ in 0..3 {
|
||||
vec.push(DropTracker::new(drop_count.clone()));
|
||||
vec.push(DropTracker::new(Rc::clone(&drop_count)));
|
||||
}
|
||||
|
||||
let initial_cap = vec.capacity();
|
||||
@@ -332,7 +332,7 @@ fn test_try_as_type_clears_elements() {
|
||||
fn test_guard_with_unwind_safety() {
|
||||
let drop_count = Rc::new(Cell::new(0));
|
||||
let mut vec = Vec::with_capacity(10);
|
||||
vec.push(DropTracker::new(drop_count.clone()));
|
||||
vec.push(DropTracker::new(Rc::clone(&drop_count)));
|
||||
|
||||
let mut erased = TypeErasedVec::new(vec);
|
||||
assert_erased_state(&erased, 1, Layout::new::<DropTracker>());
|
||||
@@ -341,7 +341,7 @@ fn test_guard_with_unwind_safety() {
|
||||
let mut guard = unsafe { erased.cast_type::<DropTracker>() };
|
||||
|
||||
guard.with(|v| {
|
||||
v.push(DropTracker::new(drop_count.clone()));
|
||||
v.push(DropTracker::new(Rc::clone(&drop_count)));
|
||||
panic!("Simulated panic inside with()");
|
||||
});
|
||||
}));
|
||||
@@ -382,7 +382,7 @@ fn test_conversion_methods() {
|
||||
fn test_try_into_vec_failure_and_recovery() {
|
||||
let drop_count = Rc::new(Cell::new(0));
|
||||
let mut vec = Vec::with_capacity(5);
|
||||
vec.push(DropTracker::new(drop_count.clone()));
|
||||
vec.push(DropTracker::new(Rc::clone(&drop_count)));
|
||||
let initial_cap = vec.capacity();
|
||||
|
||||
let erased = TypeErasedVec::new(vec);
|
||||
@@ -465,7 +465,7 @@ fn test_into_vec_unchecked_panics_on_layout_mismatch_in_debug() {
|
||||
fn test_sendable_clears_and_unpacks() {
|
||||
let drop_count = Rc::new(Cell::new(0));
|
||||
let mut vec = Vec::with_capacity(5);
|
||||
vec.push(DropTracker::new(drop_count.clone()));
|
||||
vec.push(DropTracker::new(Rc::clone(&drop_count)));
|
||||
let initial_cap = vec.capacity();
|
||||
|
||||
let erased = TypeErasedVec::new(vec);
|
||||
@@ -483,7 +483,7 @@ fn test_sendable_clears_and_unpacks() {
|
||||
fn test_drop_cleans_up_allocation() {
|
||||
let drop_count = Rc::new(Cell::new(0));
|
||||
let mut vec = Vec::with_capacity(5);
|
||||
vec.push(DropTracker::new(drop_count.clone()));
|
||||
vec.push(DropTracker::new(Rc::clone(&drop_count)));
|
||||
|
||||
{
|
||||
let erased = TypeErasedVec::new(vec);
|
||||
|
||||
Reference in New Issue
Block a user