| //@ edition:2021 | |
| trait SendFuture: Send { | |
| type Output; | |
| } | |
| impl<Fut: Send> SendFuture for Fut { | |
| type Output = (); | |
| } | |
| async fn broken_fut() { | |
| ident_error; | |
| //~^ ERROR cannot find value `ident_error` in this scope | |
| } | |
| // triggers normalization of `<Fut as SendFuture>::Output`, | |
| // which requires `Fut: Send`. | |
| fn normalize<Fut: SendFuture>(_: Fut, _: Fut::Output) {} | |
| async fn iceice<A, B>() | |
| // <- async fn is necessary | |
| where | |
| A: Send, | |
| B: Send, // <- a second bound | |
| { | |
| normalize(broken_fut(), ()); | |
| } | |
| fn main() {} |