about summary refs log tree commit diff
path: root/tests/ui/typeck/assign-non-lval-derefmut.rs
blob: a53a52c7e4dd995725f4bd498128d9712fab9ec2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//@ run-rustfix

fn main() {
    let x = std::sync::Mutex::new(1usize);
    x.lock().unwrap() = 2;
    //~^ ERROR invalid left-hand side of assignment
    x.lock().unwrap() += 1;
    //~^ ERROR binary assignment operation `+=` cannot be applied to type `std::sync::MutexGuard<'_, usize>`

    let mut y = x.lock().unwrap();
    y = 2;
    //~^ ERROR mismatched types
    y += 1;
    //~^ ERROR binary assignment operation `+=` cannot be applied to type `std::sync::MutexGuard<'_, usize>`
}