| error[E0308]: mismatched types |
| --> $DIR/expected-boxed-future-isnt-pinned.rs:11:5 |
| | |
| LL | fn foo<F: Future<Output=i32> + Send + 'static>(x: F) -> BoxFuture<'static, i32> { |
| | - found this type parameter ----------------------- expected `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>` because of return type |
| LL | // We could instead use an `async` block, but this way we have no std spans. |
| LL | x |
| | ^ expected `Pin<Box<...>>`, found type parameter `F` |
| | |
| = note: expected struct `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>` |
| found type parameter `F` |
| help: you need to pin and box this expression |
| | |
| LL | Box::pin(x) |
| | +++++++++ + |
| |
| error[E0308]: mismatched types |
| --> $DIR/expected-boxed-future-isnt-pinned.rs:15:5 |
| | |
| LL | fn bar<F: Future<Output=i32> + Send + 'static>(x: F) -> BoxFuture<'static, i32> { |
| | ----------------------- expected `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>` because of return type |
| LL | Box::new(x) |
| | ^^^^^^^^^^^ expected `Pin<Box<...>>`, found `Box<F>` |
| | |
| = note: expected struct `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>` |
| found struct `Box<F>` |
| = help: use `Box::pin` |
| |
| error[E0308]: mismatched types |
| --> $DIR/expected-boxed-future-isnt-pinned.rs:19:14 |
| | |
| LL | fn baz<F: Future<Output=i32> + Send + 'static>(x: F) -> BoxFuture<'static, i32> { |
| | - found this type parameter |
| LL | Pin::new(x) |
| | -------- ^ expected `Box<dyn Future<Output = ...> + Send>`, found type parameter `F` |
| | | |
| | arguments to this function are incorrect |
| | help: use `Box::pin` to pin and box this expression: `Box::pin` |
| | |
| = note: expected struct `Box<dyn Future<Output = i32> + Send>` |
| found type parameter `F` |
| note: associated function defined here |
| --> $SRC_DIR/core/src/pin.rs:LL:COL |
| |
| error[E0277]: `dyn Future<Output = i32> + Send` cannot be unpinned |
| --> $DIR/expected-boxed-future-isnt-pinned.rs:19:14 |
| | |
| LL | Pin::new(x) |
| | -------- ^ the trait `Unpin` is not implemented for `dyn Future<Output = i32> + Send` |
| | | |
| | required by a bound introduced by this call |
| | |
| = note: consider using the `pin!` macro |
| consider using `Box::pin` if you need to access the pinned value outside of the current scope |
| note: required by a bound in `Pin::<Ptr>::new` |
| --> $SRC_DIR/core/src/pin.rs:LL:COL |
| |
| error[E0277]: `dyn Future<Output = i32> + Send` cannot be unpinned |
| --> $DIR/expected-boxed-future-isnt-pinned.rs:24:14 |
| | |
| LL | Pin::new(Box::new(x)) |
| | -------- ^^^^^^^^^^^ the trait `Unpin` is not implemented for `dyn Future<Output = i32> + Send` |
| | | |
| | required by a bound introduced by this call |
| | |
| = note: consider using the `pin!` macro |
| consider using `Box::pin` if you need to access the pinned value outside of the current scope |
| note: required by a bound in `Pin::<Ptr>::new` |
| --> $SRC_DIR/core/src/pin.rs:LL:COL |
| |
| error[E0308]: mismatched types |
| --> $DIR/expected-boxed-future-isnt-pinned.rs:28:5 |
| | |
| LL | fn zap() -> BoxFuture<'static, i32> { |
| | ----------------------- expected `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>` because of return type |
| LL | / async { |
| LL | | 42 |
| LL | | } |
| | |_____^ expected `Pin<Box<...>>`, found `async` block |
| | |
| = note: expected struct `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>` |
| found `async` block `{async block@$DIR/expected-boxed-future-isnt-pinned.rs:28:5: 28:10}` |
| help: you need to pin and box this expression |
| | |
| LL ~ Box::pin(async { |
| LL | 42 |
| LL ~ }) |
| | |
| |
| error: aborting due to 6 previous errors |
| |
| Some errors have detailed explanations: E0277, E0308. |
| For more information about an error, try `rustc --explain E0277`. |