From 95fc64b6c2e473a391ed670d7eb007fd96649ef4 Mon Sep 17 00:00:00 2001 From: kosl90 <1311476+kosl90@users.noreply.github.com> Date: Mon, 23 May 2022 14:53:58 +0800 Subject: [PATCH] fix: no method name in too-many-lists the Iterator implementation in too-many-lists/unsafe-queue/extra-junk.md, `as_ref`/`as_mut` should be used instead of `as_deref`/`as_deref_mut`, and wrap it with unsafe block. --- src/too-many-lists/unsafe-queue/extra-junk.md | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) 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 +完美。