//@ build-pass //@ edition:2018 #![feature(coroutines)] fn main() { foo(); } fn foo() { #[coroutine] || { yield drop(Config { nickname: NonCopy, b: NonCopy2, }.nickname); }; } #[derive(Default)] struct NonCopy; impl Drop for NonCopy { fn drop(&mut self) {} } #[derive(Default)] struct NonCopy2; impl Drop for NonCopy2 { fn drop(&mut self) {} } #[derive(Default)] struct Config { nickname: NonCopy, b: NonCopy2, }