// Test that we are able to infer a suitable kind for this closure // that is just called (`FnMut`). fn main() { let mut counter = 0; // Here this must be inferred to FnMut so that it can mutate counter, // but we forgot the mut. let tick1 = || { counter += 1; }; // In turn, tick2 must be inferred to FnMut so that it can call // tick1, but we forgot the mut. let tick2 = || { tick1(); //~ ERROR cannot borrow `tick1` as mutable }; tick2(); //~ ERROR cannot borrow }