// 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) {} fn main() { foo(&(), || {}); async { foo(&(), || {}).await; }; }