#![allow(unused)] fn main() { mut_range_bound_upper(); mut_range_bound_lower(); mut_range_bound_both(); mut_range_bound_no_mutation(); immut_range_bound(); mut_borrow_range_bound(); immut_borrow_range_bound(); } fn mut_range_bound_upper() { let mut m = 4; for i in 0..m { m = 5; } // warning } fn mut_range_bound_lower() { let mut m = 4; for i in m..10 { m *= 2; } // warning } fn mut_range_bound_both() { let mut m = 4; let mut n = 6; for i in m..n { m = 5; n = 7; } // warning (1 for each mutated 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; // warning *n += 1; } } fn immut_borrow_range_bound() { let mut m = 4; for i in 0..m { let n = &m; // should be no warning? } } fn immut_range_bound() { let m = 4; for i in 0..m { continue; } // no warning }