@@ -221,26 +221,28 @@ function (along with sub-instances of Mir for "promoted constants",
221
221
but [you can read about those below](#promoted)).
222
222
223
223
- **Basic blocks**: The basic blocks are stored in the field
224
- ` basic_blocks` ; this is a vector of `BasicBlockData`
225
- structures. Nobody ever references a basic block directly : instead,
226
- we pass around `BasicBlock` values, which are
227
- [newtype'd] indices into this vector.
228
- - **Statements** are represented by the type `Statement`.
224
+ [`Body:: basic_blocks`][basicblocks] ; this is a vector
225
+ of [`BasicBlockData`] structures. Nobody ever references a
226
+ basic block directly : instead, we pass around [ `BasicBlock`]
227
+ values, which are [newtype'd] indices into this vector.
228
+ - **Statements** are represented by the type [ `Statement`] .
229
229
- **Terminators** are represented by the `Terminator`.
230
- - **Locals** are represented by a [newtype'd] index type `Local`. The
231
- data for a local variable is found in the `Mir` (the `local_decls`
230
+ - **Locals** are represented by a [newtype'd] index type [ `Local`].
231
+ The data for a local variable is found in the `Mir` (the `local_decls`
232
232
vector). There is also a special constant `RETURN_PLACE` identifying
233
233
the special "local" representing the return value.
234
- - **Places** are identified by the enum `Place`. There are a few variants:
234
+ - **Places** are identified by the enum [`Place`]. There are a few
235
+ variants :
235
236
- Local variables like `_1`
236
237
- Static variables `FOO`
237
238
- **Projections**, which are fields or other things that "project
238
- out" from a base place. So e.g. the place `_1.f` is a projection,
239
+ out" from a base place. These are represented by the type
240
+ [`Projection`]. So e.g. the place `_1.f` is a projection,
239
241
with `f` being the "projection element and `_1` being the base
240
242
path. `*_1` is also a projection, with the `*` being represented
241
243
by the `ProjectionElem::Deref` element.
242
- - **Rvalues** are represented by the enum `Rvalue`.
243
- - **Operands** are represented by the enum `Operand`.
244
+ - **Rvalues** are represented by the enum [ `Rvalue`] .
245
+ - **Operands** are represented by the enum [ `Operand`] .
244
246
245
247
# # Representing constants
246
248
@@ -256,3 +258,12 @@ but [you can read about those below](#promoted)).
256
258
[mir] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/index.html
257
259
[mirmanip] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/index.html
258
260
[newtype'd] : ../appendix/glossary.html#newtype
261
+ [basicblocks](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.Body.html#structfield.basic_blocks)
262
+ [`BasicBlock`] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.BasicBlock.html
263
+ [`BasicBlockData`] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.BasicBlockData.html
264
+ [`Statement`] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.Statement.html
265
+ [`Terminator`] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/terminator/struct.Terminator.html
266
+ [`Local`] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.Local.html
267
+ [`Place`] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.Place.html
268
+ [`Rvalue`] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/enum.Rvalue.html
269
+ [`Operand`] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/enum.Operand.html
0 commit comments