summaryrefslogtreecommitdiffstats
path: root/tests/ui/suggestions/issue-102972.rs
blob: 1f8e9776759ad9d2b6ffc219b9deb371201eba83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// run-rustfix

fn test1() {
    let mut chars = "Hello".chars();
    for _c in chars.by_ref() {
        chars.next(); //~ ERROR cannot borrow `chars` as mutable more than once at a time
    }
}

fn test2() {
    let v = vec![1, 2, 3];
    let mut iter = v.iter();
    for _i in iter {
        iter.next(); //~ ERROR borrow of moved value: `iter`
    }
}

fn test3() {
    let v = vec![(), (), ()];
    let mut i = v.iter();
    for () in i.by_ref() {
        i.next(); //~ ERROR cannot borrow `i`
    }
}

fn test4() {
    let v = vec![(), (), ()];
    let mut iter = v.iter();
    for () in iter {
        iter.next(); //~ ERROR borrow of moved value: `iter`
    }
}

fn main() {
    test1();
    test2();
    test3();
    test4();
}