// Various unsuccessful attempts to put the unboxed closure kind // inference into an awkward position that might require fixed point // iteration (basically where inferring the kind of a closure `c` // would require knowing the kind of `c`). I currently believe this is // impossible. fn a() { let mut closure0 = None; //~^ ERROR type annotations needed let vec = vec![1, 2, 3]; loop { { let closure1 = || { match closure0.take() { Some(c) => { return c(); } None => { } } }; closure1(); } closure0 = || vec; } } fn main() { }