1 #![allow(unused_imports)]
2 #![deny(unused_assignments)]
6 AddAssign, BitAndAssign, BitOrAssign, BitXorAssign, DivAssign, Index, MulAssign, RemAssign,
7 ShlAssign, ShrAssign, SubAssign,
10 #[derive(Debug, PartialEq)]
16 fn new(slice: &mut [i32]) -> &mut Slice {
23 struct View<'a>(&'a mut [i32]);
29 assert_eq!(x, Int(0b11));
32 assert_eq!(x, Int(0b01));
35 assert_eq!(x, Int(0b11));
38 assert_eq!(x, Int(0b10));
41 assert_eq!(x, Int(1));
44 assert_eq!(x, Int(3));
47 assert_eq!(x, Int(1));
51 assert_eq!(x, Int(2));
54 assert_eq!(x, Int(4));
57 assert_eq!(x, Int(2));
60 assert_eq!(x, Int(1));
63 assert_eq!(x, Int(0));
66 let mut v = vec![Int(1), Int(2)];
68 assert_eq!(v[0], Int(3));
71 let mut array = [0, 1, 2];
72 *Slice::new(&mut array) += 1;
73 assert_eq!(array[0], 1);
74 assert_eq!(array[1], 2);
75 assert_eq!(array[2], 3);
78 // check that this does *not* trigger the unused_assignments lint
79 let mut array = [0, 1, 2];
80 let mut view = View(&mut array);
84 impl AddAssign for Int {
85 fn add_assign(&mut self, rhs: Int) {
90 impl BitAndAssign for Int {
91 fn bitand_assign(&mut self, rhs: Int) {
96 impl BitOrAssign for Int {
97 fn bitor_assign(&mut self, rhs: Int) {
102 impl BitXorAssign for Int {
103 fn bitxor_assign(&mut self, rhs: Int) {
108 impl DivAssign for Int {
109 fn div_assign(&mut self, rhs: Int) {
114 impl MulAssign for Int {
115 fn mul_assign(&mut self, rhs: Int) {
120 impl RemAssign for Int {
121 fn rem_assign(&mut self, rhs: Int) {
126 impl ShlAssign<u8> for Int {
127 fn shl_assign(&mut self, rhs: u8) {
132 impl ShlAssign<u16> for Int {
133 fn shl_assign(&mut self, rhs: u16) {
138 impl ShrAssign<u8> for Int {
139 fn shr_assign(&mut self, rhs: u8) {
144 impl ShrAssign<u16> for Int {
145 fn shr_assign(&mut self, rhs: u16) {
150 impl SubAssign for Int {
151 fn sub_assign(&mut self, rhs: Int) {
156 impl AddAssign<i32> for Slice {
157 fn add_assign(&mut self, rhs: i32) {
158 for lhs in &mut self.0 {
164 impl<'a> AddAssign<i32> for View<'a> {
165 fn add_assign(&mut self, rhs: i32) {
166 for lhs in self.0.iter_mut() {