mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-28 09:44:08 +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;
|
|
}
|