]> git.lizzy.rs Git - rust.git/blob - tests/ui/mut_range_bound.rs
Merge pull request #3291 from JoshMcguigan/cmp_owned-3289
[rust.git] / tests / ui / mut_range_bound.rs
1 // Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution.
3 //
4 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7 // option. This file may not be copied, modified, or distributed
8 // except according to those terms.
9
10
11
12
13
14 #![allow(unused)]
15
16 fn main() {
17     mut_range_bound_upper();
18     mut_range_bound_lower();
19     mut_range_bound_both();
20     mut_range_bound_no_mutation();
21     immut_range_bound();
22     mut_borrow_range_bound();
23     immut_borrow_range_bound();
24 }
25
26 fn mut_range_bound_upper() {
27     let mut m = 4;
28     for i in 0..m { m = 5; } // warning
29 }
30
31 fn mut_range_bound_lower() {
32     let mut m = 4;
33     for i in m..10 { m *= 2; } // warning
34 }
35
36 fn mut_range_bound_both() {
37     let mut m = 4;
38     let mut n = 6;
39     for i in m..n { m = 5; n = 7; } // warning (1 for each mutated bound)
40 }
41
42 fn mut_range_bound_no_mutation() {
43     let mut m = 4;
44     for i in 0..m { continue; } // no warning
45 }
46
47 fn mut_borrow_range_bound() {
48     let mut m = 4;
49     for i in 0..m {
50         let n = &mut m;  // warning
51         *n += 1;
52     }
53 }
54
55 fn immut_borrow_range_bound() {
56     let mut m = 4;
57     for i in 0..m {
58         let n = &m;   // should be no warning?
59     }
60 }
61
62
63 fn immut_range_bound() {
64     let m = 4;
65     for i in 0..m { continue; } // no warning
66 }