mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			22 lines
		
	
	
		
			577 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			577 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // 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
 | |
| }
 | 
