]> git.lizzy.rs Git - rust.git/blob - src/test/ui/unboxed-closures/unboxed-closures-infer-fnmut-calling-fnmut.rs
Auto merge of #103600 - compiler-errors:early-binder-nits, r=spastorino
[rust.git] / src / test / ui / unboxed-closures / unboxed-closures-infer-fnmut-calling-fnmut.rs
1 // run-pass
2 // Test that we are able to infer a suitable kind for this closure
3 // that is just called (`FnMut`).
4
5 fn 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 }