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.
pull/887/head
kosl90 3 years ago committed by GitHub
parent abf94cabe7
commit 95fc64b6c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -141,10 +141,12 @@ impl<'a, T> Iterator for Iter<'a, T> {
type Item = &'a T; type Item = &'a T;
fn next(&mut self) -> Option<Self::Item> { fn next(&mut self) -> Option<Self::Item> {
self.next.map(|node| { unsafe {
self.next = node.next.as_deref(); self.next.map(|node| {
&node.elem 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; type Item = &'a mut T;
fn next(&mut self) -> Option<Self::Item> { fn next(&mut self) -> Option<Self::Item> {
self.next.take().map(|node| { unsafe {
self.next = node.next.as_deref_mut(); self.next.take().map(|node| {
&mut node.elem 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 test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
``` ```
完美。 完美。

Loading…
Cancel
Save