mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
1a840e7732
The following suggestion is incorrect, as it doesn't account for the binding: ``` error[E0599]: no method named `poll` found for type parameter `F` in the current scope --> $DIR/pin-needed-to-poll-3.rs:19:28 | LL | impl<F> Future for FutureWrapper<F> | - method `poll` not found for this type parameter ... LL | let res = self.fut.poll(cx); | ^^^^ method not found in `F` | help: consider pinning the expression | LL ~ let res = let mut pinned = std::pin::pin!(self.fut); LL ~ pinned.as_mut().poll(cx); | ```
26 lines
450 B
Rust
26 lines
450 B
Rust
use std::{
|
|
future::Future,
|
|
pin::Pin,
|
|
task::{Context, Poll},
|
|
};
|
|
|
|
|
|
struct FutureWrapper<F> {
|
|
fut: F,
|
|
}
|
|
|
|
impl<F> Future for FutureWrapper<F>
|
|
where
|
|
F: Future,
|
|
{
|
|
type Output = F::Output;
|
|
|
|
fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
|
|
let res = self.fut.poll(cx);
|
|
//~^ ERROR no method named `poll` found for type parameter `F` in the current scope
|
|
res
|
|
}
|
|
}
|
|
|
|
fn main() {}
|