// run-pass // Test that we are able to infer a suitable kind for this closure // that is just called (`FnOnce`). use std::mem; struct DropMe<'a>(&'a mut i32); impl<'a> Drop for DropMe<'a> { fn drop(&mut self) { *self.0 += 1; } } fn main() { let mut counter = 0; { let drop_me = DropMe(&mut counter); let tick = || mem::drop(drop_me); tick(); } assert_eq!(counter, 1); }