1 // run-pass 2 // Test that we are able to infer a suitable kind for this closure 3 // that is just called (`FnMut`). 4 main()5fn main() { 6 let mut counter = 0; 7 8 { 9 // Here this must be inferred to FnMut so that it can mutate counter: 10 let mut tick1 = || counter += 1; 11 12 // In turn, tick2 must be inferred to FnMut so that it can call tick1: 13 let mut tick2 = || { tick1(); tick1(); }; 14 15 tick2(); 16 } 17 18 assert_eq!(counter, 2); 19 } 20