Rollup merge of #22473 - leejunseok:fix_pointer_example, r=steveklabnik
Revised an example in the Pointers chapter of TRPL (the guide) as per #21575.
This commit is contained in:
commit
8e88762a83
@ -361,16 +361,16 @@ duration a *lifetime*. Let's try a more complex example:
|
||||
|
||||
```{rust}
|
||||
fn main() {
|
||||
let x = &mut 5;
|
||||
let mut x = 5;
|
||||
|
||||
if *x < 10 {
|
||||
if x < 10 {
|
||||
let y = &x;
|
||||
|
||||
println!("Oh no: {}", y);
|
||||
return;
|
||||
}
|
||||
|
||||
*x -= 1;
|
||||
x -= 1;
|
||||
|
||||
println!("Oh no: {}", x);
|
||||
}
|
||||
@ -382,17 +382,18 @@ mutated, and therefore, lets us pass. This wouldn't work:
|
||||
|
||||
```{rust,ignore}
|
||||
fn main() {
|
||||
let x = &mut 5;
|
||||
let mut x = 5;
|
||||
|
||||
if *x < 10 {
|
||||
if x < 10 {
|
||||
let y = &x;
|
||||
*x -= 1;
|
||||
|
||||
x -= 1;
|
||||
|
||||
println!("Oh no: {}", y);
|
||||
return;
|
||||
}
|
||||
|
||||
*x -= 1;
|
||||
x -= 1;
|
||||
|
||||
println!("Oh no: {}", x);
|
||||
}
|
||||
@ -401,12 +402,12 @@ fn main() {
|
||||
It gives this error:
|
||||
|
||||
```text
|
||||
test.rs:5:8: 5:10 error: cannot assign to `*x` because it is borrowed
|
||||
test.rs:5 *x -= 1;
|
||||
^~
|
||||
test.rs:4:16: 4:18 note: borrow of `*x` occurs here
|
||||
test.rs:4 let y = &x;
|
||||
^~
|
||||
test.rs:7:9: 7:15 error: cannot assign to `x` because it is borrowed
|
||||
test.rs:7 x -= 1;
|
||||
^~~~~~
|
||||
test.rs:5:18: 5:19 note: borrow of `x` occurs here
|
||||
test.rs:5 let y = &x;
|
||||
^
|
||||
```
|
||||
|
||||
As you might guess, this kind of analysis is complex for a human, and therefore
|
||||
|
Loading…
x
Reference in New Issue
Block a user