blob: 53ec3b06566524efcd796b008a982fbf53a05818 [file] [log] [blame]
// 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();
}