minor punctuation/grammar error fix
This commit is contained in:
parent
b7970e6c5e
commit
a0958b664c
|
|
@ -5,7 +5,7 @@ effectively "desugared" into structs that contain the values they use (or
|
||||||
references to the values they use) from their creator's stack frame. rustc has
|
references to the values they use) from their creator's stack frame. rustc has
|
||||||
the job of figuring out which values a closure uses and how, so it can decide
|
the job of figuring out which values a closure uses and how, so it can decide
|
||||||
whether to capture a given variable by shared reference, mutable reference, or
|
whether to capture a given variable by shared reference, mutable reference, or
|
||||||
by move. rustc also has to figure out which the closure traits ([`Fn`][fn],
|
by move. rustc also has to figure out which of the closure traits ([`Fn`][fn],
|
||||||
[`FnMut`][fn_mut], or [`FnOnce`][fn_once]) a closure is capable of
|
[`FnMut`][fn_mut], or [`FnOnce`][fn_once]) a closure is capable of
|
||||||
implementing.
|
implementing.
|
||||||
|
|
||||||
|
|
@ -120,7 +120,7 @@ for this purpose.
|
||||||
|
|
||||||
[upvars]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/query/queries/struct.upvars_mentioned.html
|
[upvars]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/query/queries/struct.upvars_mentioned.html
|
||||||
|
|
||||||
Other than lazy invocation, one other thing that the distinguishes a closure from a
|
Other than lazy invocation, one other thing that distinguishes a closure from a
|
||||||
normal function is that it can use the upvars. It borrows these upvars from its surrounding
|
normal function is that it can use the upvars. It borrows these upvars from its surrounding
|
||||||
context; therefore the compiler has to determine the upvar's borrow type. The compiler starts with
|
context; therefore the compiler has to determine the upvar's borrow type. The compiler starts with
|
||||||
assigning an immutable borrow type and lowers the restriction (that is, changes it from
|
assigning an immutable borrow type and lowers the restriction (that is, changes it from
|
||||||
|
|
@ -189,7 +189,7 @@ can be `ByValue` (moved) or `ByRef` (borrowed). For `ByRef` borrows, it can be
|
||||||
[mir_mod]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/index.html
|
[mir_mod]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/index.html
|
||||||
|
|
||||||
`Delegate` defines a few different methods (the different callbacks):
|
`Delegate` defines a few different methods (the different callbacks):
|
||||||
**consume**: for *move* of a variable, **borrow** for a *borrow* of some kind
|
**consume** for *move* of a variable, **borrow** for a *borrow* of some kind
|
||||||
(shared or mutable), and **mutate** when we see an *assignment* of something.
|
(shared or mutable), and **mutate** when we see an *assignment* of something.
|
||||||
|
|
||||||
All of these callbacks have a common argument *cmt* which stands for Category,
|
All of these callbacks have a common argument *cmt* which stands for Category,
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ something like this:
|
||||||
You can see the exact dependencies by reading the `Cargo.toml` for the various
|
You can see the exact dependencies by reading the `Cargo.toml` for the various
|
||||||
crates, just like a normal Rust crate.
|
crates, just like a normal Rust crate.
|
||||||
|
|
||||||
One final thing: [`src/llvm-project`] is a submodule for our fork of LLVM
|
One final thing: [`src/llvm-project`] is a submodule for our fork of LLVM.
|
||||||
During bootstrapping, LLVM is built and the [`src/librustc_llvm`] and
|
During bootstrapping, LLVM is built and the [`src/librustc_llvm`] and
|
||||||
[`src/rustllvm`] crates contain rust wrappers around LLVM (which is written in
|
[`src/rustllvm`] crates contain rust wrappers around LLVM (which is written in
|
||||||
C++), so that the compiler can interface with it.
|
C++), so that the compiler can interface with it.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue