]> git.lizzy.rs Git - rust.git/blob - src/test/ui/nll/issue-27868.rs
Rollup merge of #103146 - joboet:cleanup_pthread_condvar, r=Mark-Simulacrum
[rust.git] / src / test / ui / nll / issue-27868.rs
1 // Regression test for issue #27868
2
3 use std::ops::AddAssign;
4
5 struct MyVec<T>(Vec<T>);
6
7 impl <T> Drop for MyVec<T> {
8     fn drop(&mut self) {
9         println!("Being dropped.");
10     }
11 }
12
13 impl<T> AddAssign<T> for MyVec<T> {
14     fn add_assign(&mut self, _elem: T) {
15         println!("In add_assign.");
16     }
17 }
18
19 fn main() {
20     let mut vec = MyVec(vec![0]);
21     let mut vecvec = vec![vec];
22
23     vecvec[0] += {
24         vecvec = vec![];
25         //~^ ERROR cannot assign to `vecvec` because it is borrowed [E0506]
26         0
27     };
28 }