diff --git a/src/too-many-lists/unsafe-queue/extra-junk.md b/src/too-many-lists/unsafe-queue/extra-junk.md index 62dadac2..1da3ef69 100644 --- a/src/too-many-lists/unsafe-queue/extra-junk.md +++ b/src/too-many-lists/unsafe-queue/extra-junk.md @@ -141,10 +141,12 @@ impl<'a, T> Iterator for Iter<'a, T> { type Item = &'a T; fn next(&mut self) -> Option { - self.next.map(|node| { - self.next = node.next.as_deref(); - &node.elem - }) + unsafe { + self.next.map(|node| { + self.next = node.next.as_ref(); + &node.elem + }) + } } } @@ -152,10 +154,12 @@ impl<'a, T> Iterator for IterMut<'a, T> { type Item = &'a mut T; fn next(&mut self) -> Option { - self.next.take().map(|node| { - self.next = node.next.as_deref_mut(); - &mut node.elem - }) + unsafe { + self.next.take().map(|node| { + self.next = node.next.as_mut(); + &mut node.elem + }) + } } } ``` @@ -348,4 +352,4 @@ test third::test::basics ... ok test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ``` -完美。 \ No newline at end of file +完美。