| // Check that `&mut` objects cannot be borrowed twice, just like | |
| // other `&mut` pointers. | |
| trait Foo { | |
| fn f1(&mut self) -> &(); | |
| fn f2(&mut self); | |
| } | |
| fn test(x: &mut dyn Foo) { | |
| let y = x.f1(); | |
| x.f2(); //~ ERROR cannot borrow `*x` as mutable | |
| y.use_ref(); | |
| } | |
| fn main() {} | |
| trait Fake { fn use_mut(&mut self) { } fn use_ref(&self) { } } | |
| impl<T> Fake for T { } |