use std::{ future::Future, pin::Pin, task::{Context, Poll}, }; struct Sleep; impl Future for Sleep { type Output = (); fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { Poll::Ready(()) } } impl Drop for Sleep { fn drop(&mut self) {} } fn sleep() -> Sleep { Sleep } struct MyFuture { sleep: Sleep, } impl MyFuture { fn new() -> Self { Self { sleep: sleep(), } } } impl Future for MyFuture { type Output = (); fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { self.sleep.poll(cx) //~^ ERROR no method named `poll` found for struct `Sleep` in the current scope } } fn main() {}