update 'ByRef' borrow types of closures + minor fixes #894
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello! 🦀 This PR contains 2 commits.
ByRef
borrows of closuresThe current version of
src/closure.md
explains thatByRef
borrows can either beshared
,shallow
,unique
ormut
(enum variants ofrustc_middle::mir::BorrowKind
).However, the actual enum type used for representing borrows from closures seems to be a different type with the same name. This PR updates the description for borrow types of closures. I found this out while tracking the type definitions.
(
InferBorrowKind
->UpvarCaptureMap
->UpvarCapture
->UpvarBorrow
->BorrowKind
)Thank you for reviewing this PR 😃
P.S.
I'm really grateful to the authors who worked on the
closure.md
writeup! 😺It was very helpful for understanding how borrows from closures are resolved.