mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			753 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			753 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // check-pass
 | |
| 
 | |
| fn main() {
 | |
|     // Test that we can infer the type of binary operands when
 | |
|     // references are involved, on various types and operators.
 | |
|     let _: u8 = 0 + 0;
 | |
|     let _: u8 = 0 + &0;
 | |
|     let _: u8 = &0 + 0;
 | |
|     let _: u8 = &0 + &0;
 | |
| 
 | |
|     let _: f32 = 0.0 + 0.0;
 | |
|     let _: f32 = 0.0 + &0.0;
 | |
|     let _: f32 = &0.0 + 0.0;
 | |
|     let _: f32 = &0.0 + &0.0;
 | |
| 
 | |
|     let _: u8 = 0 << 0;
 | |
|     let _: u8 = 0 << &0;
 | |
|     let _: u8 = &0 << 0;
 | |
|     let _: u8 = &0 << &0;
 | |
| 
 | |
|     // Test type inference when variable types are indirectly inferred.
 | |
|     let a = 22;
 | |
|     let _: usize = a + &44;
 | |
| 
 | |
|     // When we have no expected type, the types of the operands is the default type.
 | |
|     let _ = 0 + 0;
 | |
|     let _ = 0 + &0;
 | |
|     let _ = &0 + 0;
 | |
|     let _ = &0 + &0;
 | |
| }
 | 
