23 lines
707 B
Rust
23 lines
707 B
Rust
// Another regression test for #64477.
|
|
//
|
|
// In the past, the code generated by `format!` produced temporaries in the surrounding scope that
|
|
// borrowed the arguments through `&dyn Trait`. These temporaries do not implement `Send`, which
|
|
// meant that when `format!` was used in an async block, the resulting coroutine was not `Send`.
|
|
// See https://github.com/rust-lang/rust/issues/64477#issuecomment-534669068 for details
|
|
// and https://github.com/rust-lang/rust/issues/64477#issuecomment-531882958 for an example.
|
|
//
|
|
//@ check-pass
|
|
//@ edition:2018
|
|
|
|
async fn foo(_: String) {}
|
|
|
|
fn bar() -> impl Send {
|
|
async move {
|
|
foo(format!("{}:{}", 1, 2)).await;
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let _ = bar();
|
|
}
|