// This issue reproduces an ICE on compile (E.g. fails on 2018-12-19 nightly). // "cannot relate bound region: ReBound(DebruijnIndex(1), BrAnon(1)) <= '?1" //@ run-pass //@ edition:2018 #![feature(coroutines,coroutine_trait)] use std::ops::Coroutine; fn with(f: F) -> impl Coroutine where F: Fn() -> () { #[coroutine] move || { loop { match f() { _ => yield, } } } } fn main() { let data = &vec![1]; #[coroutine] || { //~ WARN unused coroutine that must be used let _to_pin = with(move || println!("{:p}", data)); loop { yield } }; }