Skip to content

Commit 42cbd7a

Browse files
committed
Reference correct fn during lifetime ellision
1 parent 5d2056a commit 42cbd7a

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/doc/trpl/ownership.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,8 @@ three. The ownership system in Rust does this through a concept called
244244
Remember the function that borrowed an `i32`? Let's look at it again.
245245

246246
```rust
247-
fn add_one(num: &i32) -> i32 {
248-
*num + 1
247+
fn add_one(num: &mut i32) {
248+
*num += 1;
249249
}
250250
```
251251

@@ -255,8 +255,8 @@ cover the others later. Without eliding the lifetimes, `add_one` looks like
255255
this:
256256

257257
```rust
258-
fn add_one<'a>(num: &'a i32) -> i32 {
259-
*num + 1
258+
fn add_one<'a>(num: &'a mut i32) {
259+
*num += 1;
260260
}
261261
```
262262

@@ -278,12 +278,12 @@ fn add_two<'a, 'b>(...)
278278
Then in our parameter list, we use the lifetimes we've named:
279279

280280
```{rust,ignore}
281-
...(num: &'a i32) -> ...
281+
...(num: &'a mut i32)
282282
```
283283

284-
If you compare `&i32` to `&'a i32`, they're the same, it's just that the
285-
lifetime `'a` has snuck in between the `&` and the `i32`. We read `&i32` as "a
286-
reference to an i32" and `&'a i32` as "a reference to an i32 with the lifetime 'a.'"
284+
If you compare `&mut i32` to `&'a mut i32`, they're the same, it's just that the
285+
lifetime `'a` has snuck in between the `&` and the `mut i32`. We read `&mut i32` as "a
286+
mutable reference to an i32" and `&'a mut i32` as "a mutable reference to an i32 with the lifetime 'a.'"
287287

288288
Why do lifetimes matter? Well, for example, here's some code:
289289

0 commit comments

Comments
 (0)