Skip to content

Commit

Permalink
Rollup merge of rust-lang#70690 - GuillaumeGomez:cleanup-e0501, r=Dyl…
Browse files Browse the repository at this point in the history
…an-DPC

Clean up E0501 explanation

r? @Dylan-DPC
  • Loading branch information
Dylan-DPC authored Apr 6, 2020
2 parents 5768385 + 84c97ee commit 7500bcf
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions src/librustc_error_codes/error_codes/E0501.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
This error indicates that a mutable variable is being used while it is still
captured by a closure. Because the closure has borrowed the variable, it is not
available for use until the closure goes out of scope.

Note that a capture will either move or borrow a variable, but in this
situation, the closure is borrowing the variable. Take a look at the chapter
on [Capturing][capturing] in Rust By Example for more information.

[capturing]: https://doc.rust-lang.org/stable/rust-by-example/fn/closures/capture.html
A mutable variable is used but it is already captured by a closure.

Erroneous code example:

Expand All @@ -29,6 +21,16 @@ fn foo(a: &mut i32) {
}
```

This error indicates that a mutable variable is used while it is still captured
by a closure. Because the closure has borrowed the variable, it is not available
until the closure goes out of scope.

Note that a capture will either move or borrow a variable, but in this
situation, the closure is borrowing the variable. Take a look at the chapter
on [Capturing][capturing] in Rust By Example for more information.

[capturing]: https://doc.rust-lang.org/stable/rust-by-example/fn/closures/capture.html

To fix this error, you can finish using the closure before using the captured
variable:

Expand Down

0 comments on commit 7500bcf

Please sign in to comment.