Skip to content

Commit 4ea83bf

Browse files
committed
Use Cell::take in a couple places
1 parent f121f09 commit 4ea83bf

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

src/libstd/sync/once.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ impl Drop for WaiterQueue<'_> {
497497
let mut queue = (state_and_queue & !STATE_MASK) as *const Waiter;
498498
while !queue.is_null() {
499499
let next = (*queue).next;
500-
let thread = (*queue).thread.replace(None).unwrap();
500+
let thread = (*queue).thread.take().unwrap();
501501
(*queue).signaled.store(true, Ordering::Release);
502502
// ^- FIXME (maybe): This is another case of issue #55005
503503
// `store()` has a potentially dangling ref to `signaled`.

src/test/run-make/wasm-panic-small/foo.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@ pub fn foo() {
2323
pub fn foo() -> usize {
2424
use std::cell::Cell;
2525
thread_local!(static A: Cell<Vec<u32>> = Cell::new(Vec::new()));
26-
A.try_with(|x| x.replace(Vec::new()).len()).unwrap_or(0)
26+
A.try_with(|x| x.take().len()).unwrap_or(0)
2727
}

src/test/ui/traits/negative-impls/pin-unsound-issue-66544-clone.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ struct MyType<'a>(Cell<Option<&'a mut MyType<'a>>>, PhantomPinned);
77
impl<'a> Clone for &'a mut MyType<'a> {
88
//~^ ERROR E0751
99
fn clone(&self) -> &'a mut MyType<'a> {
10-
self.0.replace(None).unwrap()
10+
self.0.take().unwrap()
1111
}
1212
}
1313

src/test/ui/traits/negative-impls/pin-unsound-issue-66544-derefmut.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ struct MyType<'a>(Cell<Option<&'a mut MyType<'a>>>, PhantomPinned);
1212
impl<'a> DerefMut for &'a MyType<'a> {
1313
//~^ ERROR E0751
1414
fn deref_mut(&mut self) -> &mut MyType<'a> {
15-
self.0.replace(None).unwrap()
15+
self.0.take().unwrap()
1616
}
1717
}
1818

0 commit comments

Comments
 (0)