Module rustc_mir_build::build
source · Modules§
- block π
- cfg πRoutines for manipulating the control-flow graph.
- coverageinfo π
- custom πProvides the implementation of the
custom_mir
attribute. - expr πBuilds MIR from expressions. As a caller into this module, you have many options, but the first thing you have to decide is whether you are evaluating this expression for its value, its location, or as a constant.
- matches πCode related to match expressions. These are sufficiently complex to warrant their own module and submodules. :) This main module includes the high-level algorithm, the submodules contain the details.
- misc πMiscellaneous builder routines that are not specific to building any particular kind of thing.
- scope πManaging the scope stack. The scopes are tied to lexical scopes, so as we descend the THIR, we push a scope on the stack, build its contents, and then pop it off. Every scope is named by a
region::Scope
.
Macros§
- unpack πUpdate a block pointer and return the value. Use it like
let x = unpack!(block = self.foo(block, foo))
.
Structs§
- BlockAnd πThe
BlockAnd
βmonadβ packages up the new basic block along with a produced value (sometimes just unit, of course). Theunpack!
macro (and methods below) makes working withBlockAnd
much more convenient. - BlockContext π
- Builder π
- CFG π
- Capture π
- GuardFrame π
- GuardFrameLocal π
- ScopeId π
Enums§
- BlockFrame π
- ForGuard π
ForGuard
indicates whether we are talking about: - LocalsForNode π
- NeedsTemporary π
Traits§
- BlockAndExtension π
Functions§
- construct_const π
- construct_error πConstruct MIR for an item that has had errors in type checking.
- construct_fn πthe main entry point for building MIR for a function
- mir_build πConstruct the MIR for a given
DefId
.
Type Aliases§
- CaptureMap π