| #![allow(unused)] | |
| fn main() {} | |
| fn mut_range_bound_upper() { | |
| let mut m = 4; | |
| for i in 0..m { | |
| m = 5; | |
| //~^ mut_range_bound | |
| } | |
| } | |
| fn mut_range_bound_lower() { | |
| let mut m = 4; | |
| for i in m..10 { | |
| m *= 2; | |
| //~^ mut_range_bound | |
| } | |
| } | |
| fn mut_range_bound_both() { | |
| let mut m = 4; | |
| let mut n = 6; | |
| for i in m..n { | |
| m = 5; | |
| //~^ mut_range_bound | |
| n = 7; | |
| //~^ mut_range_bound | |
| } | |
| } | |
| fn mut_range_bound_no_mutation() { | |
| let mut m = 4; | |
| for i in 0..m { | |
| continue; | |
| } // no warning | |
| } | |
| fn mut_borrow_range_bound() { | |
| let mut m = 4; | |
| for i in 0..m { | |
| let n = &mut m; | |
| //~^ mut_range_bound | |
| *n += 1; | |
| } | |
| } | |
| fn immut_borrow_range_bound() { | |
| let mut m = 4; | |
| for i in 0..m { | |
| let n = &m; | |
| } | |
| } | |
| fn immut_range_bound() { | |
| let m = 4; | |
| for i in 0..m { | |
| continue; | |
| } // no warning | |
| } | |
| fn mut_range_bound_break() { | |
| let mut m = 4; | |
| for i in 0..m { | |
| if m == 4 { | |
| m = 5; // no warning because of immediate break | |
| break; | |
| } | |
| } | |
| } | |
| fn mut_range_bound_no_immediate_break() { | |
| let mut m = 4; | |
| for i in 0..m { | |
| // warning because it is not immediately followed by break | |
| m = 2; | |
| //~^ mut_range_bound | |
| if m == 4 { | |
| break; | |
| } | |
| } | |
| let mut n = 3; | |
| for i in n..10 { | |
| if n == 4 { | |
| // FIXME: warning because it is not immediately followed by break | |
| n = 1; | |
| //~^ mut_range_bound | |
| let _ = 2; | |
| break; | |
| } | |
| } | |
| } |