Skip to content

Commit

Permalink
Add a precision for references
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed May 8, 2015
1 parent 7132092 commit 715f7c3
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/doc/trpl/references-and-borrowing.md
Expand Up @@ -334,3 +334,35 @@ In other words, `y` is only valid for the scope where `x` exists. As soon as
`x` goes away, it becomes invalid to refer to it. As such, the error says that
the borrow ‘doesn’t live long enough’ because it’s not valid for the right
amount of time.
The same problem occurs when the reference is declared _before_ the variable it refers to:
```rust,ignore
let y: &i32;
let x = 5;
y = &x;
println!("{}", y);
```

We get this error:

error: `x` does not live long enough
y = &x;
^
note: reference must be valid for the block suffix following statement 0 at
2:16...
let y: &i32;
let x = 5;
y = &x;

println!("{}", y);
}

note: ...but borrowed value is only valid for the block suffix following
statement 1 at 3:14
let x = 5;
y = &x;

println!("{}", y);
}

0 comments on commit 715f7c3

Please sign in to comment.