| // Tests the suggestion to reborrow the first move site |
| // when we move then borrow a `&mut` ref. |
| |
| struct State; |
| |
| impl IntoIterator for &mut State { |
| type IntoIter = std::vec::IntoIter<()>; |
| type Item = (); |
| |
| fn into_iter(self) -> Self::IntoIter { |
| vec![].into_iter() |
| } |
| } |
| |
| fn once(f: impl FnOnce()) {} |
| |
| fn fill_memory_blocks_mt(state: &mut State) { |
| for _ in state {} |
| //~^ HELP consider creating a fresh reborrow of `state` here |
| fill_segment(state); |
| //~^ ERROR borrow of moved value: `state` |
| } |
| |
| fn fill_segment(state: &mut State) {} |
| |
| fn main() {} |