// Copyright 2015 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. fn main() { // test compound assignment operators with ref as right-hand side, // for each operator, with various types as operands. // test AddAssign { let mut x = 3i8; x += &2i8; assert_eq!(x, 5i8); } // test SubAssign { let mut x = 7i16; x -= &4; assert_eq!(x, 3i16); } // test MulAssign { let mut x = 3f32; x *= &3f32; assert_eq!(x, 9f32); } // test DivAssign { let mut x = 6f64; x /= &2f64; assert_eq!(x, 3f64); } // test RemAssign { let mut x = 7i64; x %= &4i64; assert_eq!(x, 3i64); } // test BitOrAssign { let mut x = 0b1010u8; x |= &0b1100u8; assert_eq!(x, 0b1110u8); } // test BitAndAssign { let mut x = 0b1010u16; x &= &0b1100u16; assert_eq!(x, 0b1000u16); } // test BitXorAssign { let mut x = 0b1010u32; x ^= &0b1100u32; assert_eq!(x, 0b0110u32); } // test ShlAssign { let mut x = 0b1010u64; x <<= &2u32; assert_eq!(x, 0b101000u64); } // test ShrAssign { let mut x = 0b1010u64; x >>= &2i16; assert_eq!(x, 0b10u64); } }