| // Regression test for https://github.com/rust-lang/rust/issues/84634 | |
| #![crate_name = "foo"] | |
| use std::pin::Pin; | |
| use std::task::Poll; | |
| pub trait Stream { | |
| type Item; | |
| fn poll_next(mut self: Pin<&mut Self>) -> Poll<Option<Self::Item>>; | |
| fn size_hint(&self) -> (usize, Option<usize>); | |
| } | |
| //@ has 'foo/trait.Stream.html' | |
| //@ has - '//*[@class="code-header"]' 'impl<S: ?Sized + Stream + Unpin> Stream for &mut S' | |
| impl<S: ?Sized + Stream + Unpin> Stream for &mut S { | |
| type Item = S::Item; | |
| fn poll_next( | |
| mut self: Pin<&mut Self>, | |
| ) -> Poll<Option<Self::Item>> { | |
| S::poll_next(Pin::new(&mut **self), cx) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| (**self).size_hint() | |
| } | |
| } |