]> git.proxmox.com Git - rustc.git/blob - tests/ui/suggestions/expected-boxed-future-isnt-pinned.stderr
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / ui / suggestions / expected-boxed-future-isnt-pinned.stderr
1 error[E0308]: mismatched types
2 --> $DIR/expected-boxed-future-isnt-pinned.rs:11:5
3 |
4 LL | fn foo<F: Future<Output=i32> + Send + 'static>(x: F) -> BoxFuture<'static, i32> {
5 | - this type parameter ----------------------- expected `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>` because of return type
6 LL | // We could instead use an `async` block, but this way we have no std spans.
7 LL | x
8 | ^ expected struct `Pin`, found type parameter `F`
9 |
10 = note: expected struct `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>`
11 found type parameter `F`
12 help: you need to pin and box this expression
13 |
14 LL | Box::pin(x)
15 | +++++++++ +
16
17 error[E0308]: mismatched types
18 --> $DIR/expected-boxed-future-isnt-pinned.rs:15:5
19 |
20 LL | fn bar<F: Future<Output=i32> + Send + 'static>(x: F) -> BoxFuture<'static, i32> {
21 | ----------------------- expected `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>` because of return type
22 LL | Box::new(x)
23 | ^^^^^^^^^^^ expected struct `Pin`, found struct `Box`
24 |
25 = note: expected struct `Pin<Box<(dyn Future<Output = i32> + Send + 'static)>>`
26 found struct `Box<F>`
27 = help: use `Box::pin`
28
29 error[E0308]: mismatched types
30 --> $DIR/expected-boxed-future-isnt-pinned.rs:19:14
31 |
32 LL | fn baz<F: Future<Output=i32> + Send + 'static>(x: F) -> BoxFuture<'static, i32> {
33 | - this type parameter
34 LL | Pin::new(x)
35 | -------- ^ expected struct `Box`, found type parameter `F`
36 | |
37 | arguments to this function are incorrect
38 | help: use `Box::pin` to pin and box this expression: `Box::pin`
39 |
40 = note: expected struct `Box<dyn Future<Output = i32> + Send>`
41 found type parameter `F`
42 note: associated function defined here
43 --> $SRC_DIR/core/src/pin.rs:LL:COL
44
45 error[E0277]: `dyn Future<Output = i32> + Send` cannot be unpinned
46 --> $DIR/expected-boxed-future-isnt-pinned.rs:19:14
47 |
48 LL | Pin::new(x)
49 | -------- ^ the trait `Unpin` is not implemented for `dyn Future<Output = i32> + Send`
50 | |
51 | required by a bound introduced by this call
52 |
53 = note: consider using `Box::pin`
54 note: required by a bound in `Pin::<P>::new`
55 --> $SRC_DIR/core/src/pin.rs:LL:COL
56
57 error[E0277]: `dyn Future<Output = i32> + Send` cannot be unpinned
58 --> $DIR/expected-boxed-future-isnt-pinned.rs:24:14
59 |
60 LL | Pin::new(Box::new(x))
61 | -------- ^^^^^^^^^^^ the trait `Unpin` is not implemented for `dyn Future<Output = i32> + Send`
62 | |
63 | required by a bound introduced by this call
64 |
65 = note: consider using `Box::pin`
66 note: required by a bound in `Pin::<P>::new`
67 --> $SRC_DIR/core/src/pin.rs:LL:COL
68
69 error[E0308]: mismatched types
70 --> $DIR/expected-boxed-future-isnt-pinned.rs:28:5
71 |
72 LL | / async {
73 LL | | 42
74 LL | | }
75 | | ^
76 | | |
77 | |_____expected struct `Pin`, found `async` block
78 | arguments to this function are incorrect
79 |
80 = note: expected struct `Pin<Box<dyn Future<Output = i32> + Send>>`
81 found `async` block `[async block@$DIR/expected-boxed-future-isnt-pinned.rs:28:5: 30:6]`
82 note: function defined here
83 --> $SRC_DIR/core/src/future/mod.rs:LL:COL
84 help: you need to pin and box this expression
85 |
86 LL ~ Box::pin(async {
87 LL | 42
88 LL ~ })
89 |
90
91 error: aborting due to 6 previous errors
92
93 Some errors have detailed explanations: E0277, E0308.
94 For more information about an error, try `rustc --explain E0277`.