// 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>; fn size_hint(&self) -> (usize, Option); } //@ has 'foo/trait.Stream.html' //@ has - '//*[@class="code-header"]' 'impl Stream for &mut S' impl Stream for &mut S { type Item = S::Item; fn poll_next( mut self: Pin<&mut Self>, ) -> Poll> { S::poll_next(Pin::new(&mut **self), cx) } fn size_hint(&self) -> (usize, Option) { (**self).size_hint() } }