| //@ run-pass |
| |
| #![warn(unused_assignments)] |
| |
| fn main() { |
| let mut a; |
| // Assignment occurs left-to-right. |
| // However, we emit warnings when this happens, so it is clear that this is happening. |
| (a, a) = (0, 1); //~ WARN value assigned to `a` is never read |
| assert_eq!(a, 1); |
| |
| // We can't always tell when a variable is being assigned to twice, which is why we don't try |
| // to emit an error, which would be fallible. |
| let mut x = 1; |
| (*foo(&mut x), *foo(&mut x)) = (5, 6); |
| assert_eq!(x, 6); |
| } |
| |
| fn foo<'a>(x: &'a mut u32) -> &'a mut u32 { |
| x |
| } |