| use std::collections::HashSet; | |
| struct Foo { | |
| n: HashSet<isize>, | |
| } | |
| impl Foo { | |
| pub fn foo<F>(&mut self, mut fun: F) where F: FnMut(&isize) { | |
| for f in &self.n { | |
| fun(f); | |
| } | |
| } | |
| } | |
| fn bar(f: &mut Foo) { | |
| f.foo( | |
| //~^ ERROR cannot borrow `*f` as mutable | |
| |a| { //~ ERROR closure requires unique access to `f` | |
| f.n.insert(*a); | |
| }) | |
| } | |
| fn main() { | |
| let mut f = Foo { n: HashSet::new() }; | |
| bar(&mut f); | |
| } |