31 lines
593 B
Rust
31 lines
593 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() {}
|