summaryrefslogtreecommitdiffstats
path: root/tests/ui/suggestions/issue-102972.fixed
blob: ebd73b2dc1499e1971e7c64fa519cd52252347e0 (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
40
41
// run-rustfix

fn test1() {
    let mut chars = "Hello".chars();
    let iter = chars.by_ref();
    while let Some(_c) = iter.next() {
        iter.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();
    while let Some(_i) = iter.next() {
        iter.next(); //~ ERROR borrow of moved value: `iter`
    }
}

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

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

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