]>
Commit | Line | Data |
---|---|---|
b7449926 | 1 | error[E0506]: cannot assign to `i` because it is borrowed |
0731742a | 2 | --> $DIR/try-block-maybe-bad-lifetime.rs:17:9 |
b7449926 XL |
3 | | |
4 | LL | &i | |
9ffffee4 | 5 | | -- `i` is borrowed here |
b7449926 | 6 | LL | }; |
532ac7d7 | 7 | LL | i = 0; |
9ffffee4 | 8 | | ^^^^^ `i` is assigned to here but it was already borrowed |
b7449926 XL |
9 | LL | let _ = i; |
10 | LL | do_something_with(x); | |
11 | | - borrow later used here | |
12 | ||
13 | error[E0382]: borrow of moved value: `x` | |
0731742a | 14 | --> $DIR/try-block-maybe-bad-lifetime.rs:28:24 |
b7449926 | 15 | | |
9fa01778 | 16 | LL | let x = String::new(); |
1b1a35ee | 17 | | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
9fa01778 | 18 | ... |
b7449926 XL |
19 | LL | ::std::mem::drop(x); |
20 | | - value moved here | |
21 | LL | }; | |
532ac7d7 | 22 | LL | println!("{}", x); |
b7449926 | 23 | | ^ value borrowed here after move |
a2a8927a | 24 | | |
064997fb | 25 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) |
487cf647 FG |
26 | help: consider cloning the value if the performance cost is acceptable |
27 | | | |
28 | LL | ::std::mem::drop(x.clone()); | |
29 | | ++++++++ | |
b7449926 XL |
30 | |
31 | error[E0506]: cannot assign to `i` because it is borrowed | |
0731742a | 32 | --> $DIR/try-block-maybe-bad-lifetime.rs:40:9 |
b7449926 XL |
33 | | |
34 | LL | j = &i; | |
9ffffee4 | 35 | | -- `i` is borrowed here |
b7449926 | 36 | LL | }; |
532ac7d7 | 37 | LL | i = 0; |
9ffffee4 | 38 | | ^^^^^ `i` is assigned to here but it was already borrowed |
b7449926 XL |
39 | LL | let _ = i; |
40 | LL | do_something_with(j); | |
41 | | - borrow later used here | |
42 | ||
43 | error: aborting due to 3 previous errors | |
44 | ||
48663c56 | 45 | Some errors have detailed explanations: E0382, E0506. |
b7449926 | 46 | For more information about an error, try `rustc --explain E0382`. |