rust/tests/ui/async-await/deep-futures-are-freeze.rs

180 lines
2.7 KiB
Rust

// build-pass
// compile-flags: -Copt-level=s -Clto=fat
// no-prefer-dynamic
// edition: 2021
#![recursion_limit = "256"]
fn main() {
spawn(move || main0())
}
fn spawn<F>(future: impl FnOnce() -> F) {
future();
}
async fn main0() {
main1().await;
main2().await;
}
async fn main1() {
main2().await;
main3().await;
}
async fn main2() {
main3().await;
main4().await;
}
async fn main3() {
main4().await;
main5().await;
}
async fn main4() {
main5().await;
main6().await;
}
async fn main5() {
main6().await;
main7().await;
}
async fn main6() {
main7().await;
main8().await;
}
async fn main7() {
main8().await;
main9().await;
}
async fn main8() {
main9().await;
main10().await;
}
async fn main9() {
main10().await;
main11().await;
}
async fn main10() {
main11().await;
main12().await;
}
async fn main11() {
main12().await;
main13().await;
}
async fn main12() {
main13().await;
main14().await;
}
async fn main13() {
main14().await;
main15().await;
}
async fn main14() {
main15().await;
main16().await;
}
async fn main15() {
main16().await;
main17().await;
}
async fn main16() {
main17().await;
main18().await;
}
async fn main17() {
main18().await;
main19().await;
}
async fn main18() {
main19().await;
main20().await;
}
async fn main19() {
main20().await;
main21().await;
}
async fn main20() {
main21().await;
main22().await;
}
async fn main21() {
main22().await;
main23().await;
}
async fn main22() {
main23().await;
main24().await;
}
async fn main23() {
main24().await;
main25().await;
}
async fn main24() {
main25().await;
main26().await;
}
async fn main25() {
main26().await;
main27().await;
}
async fn main26() {
main27().await;
main28().await;
}
async fn main27() {
main28().await;
main29().await;
}
async fn main28() {
main29().await;
main30().await;
}
async fn main29() {
main30().await;
main31().await;
}
async fn main30() {
main31().await;
main32().await;
}
async fn main31() {
main32().await;
main33().await;
}
async fn main32() {
main33().await;
main34().await;
}
async fn main33() {
main34().await;
main35().await;
}
async fn main34() {
main35().await;
main36().await;
}
async fn main35() {
main36().await;
main37().await;
}
async fn main36() {
main37().await;
main38().await;
}
async fn main37() {
main38().await;
main39().await;
}
async fn main38() {
main39().await;
main40().await;
}
async fn main39() {
main40().await;
}
async fn main40() {
boom(&mut ()).await;
}
async fn boom(f: &mut ()) {}