summaryrefslogtreecommitdiffstats
path: root/tests/ui/suggestions/issue-102972.stderr
blob: 4b0d3b96f8551108b072a4bd7d2b7cc7eb3706be (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
error[E0499]: cannot borrow `chars` as mutable more than once at a time
  --> $DIR/issue-102972.rs:6:9
   |
LL |     for _c in chars.by_ref() {
   |               --------------
   |               |
   |               first mutable borrow occurs here
   |               first borrow later used here
LL |         chars.next();
   |         ^^^^^ second mutable borrow occurs here
   |
   = note: a for loop advances the iterator for you, the result is stored in `_c`
help: if you want to call `next` on a iterator within the loop, consider using `while let`
   |
LL ~     let iter = chars.by_ref();
LL ~     while let Some(_c) = iter.next() {
LL ~         iter.next();
   |

error[E0382]: borrow of moved value: `iter`
  --> $DIR/issue-102972.rs:14:9
   |
LL |     let mut iter = v.iter();
   |         -------- move occurs because `iter` has type `std::slice::Iter<'_, i32>`, which does not implement the `Copy` trait
LL |     for _i in iter {
   |               ---- `iter` moved due to this implicit call to `.into_iter()`
LL |         iter.next();
   |         ^^^^ value borrowed here after move
   |
   = note: a for loop advances the iterator for you, the result is stored in `_i`
note: `into_iter` takes ownership of the receiver `self`, which moves `iter`
  --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
help: if you want to call `next` on a iterator within the loop, consider using `while let`
   |
LL |     while let Some(_i) = iter.next() {
   |     ~~~~~~~~~~~~~~~  ~~~     +++++++

error[E0499]: cannot borrow `i` as mutable more than once at a time
  --> $DIR/issue-102972.rs:22:9
   |
LL |     for () in i.by_ref() {
   |               ----------
   |               |
   |               first mutable borrow occurs here
   |               first borrow later used here
LL |         i.next();
   |         ^ second mutable borrow occurs here
   |
   = note: a for loop advances the iterator for you, the result is stored in its pattern
help: if you want to call `next` on a iterator within the loop, consider using `while let`
   |
LL ~     let iter = i.by_ref();
LL ~     while let Some(()) = iter.next() {
LL ~         iter.next();
   |

error[E0382]: borrow of moved value: `iter`
  --> $DIR/issue-102972.rs:30:9
   |
LL |     let mut iter = v.iter();
   |         -------- move occurs because `iter` has type `std::slice::Iter<'_, ()>`, which does not implement the `Copy` trait
LL |     for () in iter {
   |               ---- `iter` moved due to this implicit call to `.into_iter()`
LL |         iter.next();
   |         ^^^^ value borrowed here after move
   |
   = note: a for loop advances the iterator for you, the result is stored in its pattern
note: `into_iter` takes ownership of the receiver `self`, which moves `iter`
  --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
help: if you want to call `next` on a iterator within the loop, consider using `while let`
   |
LL |     while let Some(()) = iter.next() {
   |     ~~~~~~~~~~~~~~~  ~~~     +++++++

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0382, E0499.
For more information about an error, try `rustc --explain E0382`.