//! Tests that we cannot produce a coroutine that accepts a resume argument //! with any lifetime and then stores it across a `yield`. #![feature(coroutines, coroutine_trait)] use std::ops::Coroutine; fn test(a: impl for<'a> Coroutine<&'a mut bool>) {} fn main() { let gen = |arg: &mut bool| { yield (); *arg = true; }; test(gen); //~^ ERROR mismatched types }