| // This testcase used to ICE in codegen due to inconsistent field reordering | |
| // in the coroutine state, claiming a ZST field was after a non-ZST field, | |
| // while those two fields were at the same offset (which is impossible). | |
| // That is, memory ordering of `(X, ())`, but offsets of `((), X)`. | |
| //@ build-pass | |
| //@ edition:2018 | |
| async fn foo<F>(_: &(), _: F) {} | |
| fn main() { | |
| foo(&(), || {}); | |
| async { | |
| foo(&(), || {}).await; | |
| }; | |
| } |