@@ -217,7 +217,7 @@ over the overflow checks.)
217217# # MIR data types
218218
219219The MIR data types are defined in the [`compiler/rustc_middle/src/mir/`][mir]
220- module. Each of the key concepts mentioned in the previous section
220+ module. Each of the key concepts mentioned in the previous section
221221maps in a fairly straightforward way to a Rust type.
222222
223223The main MIR data type is [`Body`]. It contains the data for a single
@@ -233,15 +233,14 @@ but [you can read about those below](#promoted)).
233233- **Terminators** are represented by the [`Terminator`].
234234- **Locals** are represented by a [newtype'd] index type [`Local`].
235235 The data for a local variable is found in the
236- [`Body::local_decls`][localdecls] vector) . There is also a special constant
236+ [`Body::local_decls`][localdecls] vector. There is also a special constant
237237 [`RETURN_PLACE`] identifying the special "local" representing the return value.
238- - **Places** are identified by the enum [`Place`]. There are a few
239- variants :
238+ - **Places** are identified by the struct [`Place`]. There are a few
239+ fields :
240240 - Local variables like `_1`
241- - Static variables `FOO`
242241 - **Projections**, which are fields or other things that "project
243- out" from a base place. These are represented by the type
244- [`ProjectionElem`]. So e.g. the place `_1.f` is a projection,
242+ out" from a base place. These are represented by the [newtype'd] type
243+ [`ProjectionElem`]. So e.g. the place `_1.f` is a projection,
245244 with `f` being the "projection element" and `_1` being the base
246245 path. `*_1` is also a projection, with the `*` being represented
247246 by the [`ProjectionElem::Deref`] element.
0 commit comments