// Regression test for #69307 // // Having a `async { .. foo.await .. }` block appear inside of a `+=` // expression was causing an ICE due to a failure to save/restore // state in the AST numbering pass when entering a nested body. // //@ check-pass //@ edition:2018 fn block_on(_: F) -> usize { 0 } fn main() {} async fn bar() { let mut sum = 0; sum += { block_on(async { baz().await; let mut inner = 1; inner += block_on(async { baz().await; 0 }) }) }; } async fn baz() {}