// Test that we don't consider temporaries for statement expressions as live // across yields // check-pass // edition:2018 #![feature(generators, generator_trait)] use std::ops::Generator; async fn drop_and_await() { async {}; async {}.await; } fn drop_and_yield() { let x = || { String::new(); yield; }; Box::pin(x).as_mut().resume(); let y = static || { String::new(); yield; }; Box::pin(y).as_mut().resume(); } fn main() { drop_and_await(); drop_and_yield(); }