31 lines
595 B
Rust
31 lines
595 B
Rust
// 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>(_: 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() {}
|