Module rustc_mir_build::build
source · Modules
block 🔒
cfg 🔒
Routines for manipulating the control-flow graph.
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). The unpack!
macro (and methods below) makes working with BlockAnd
much more
convenient.Builder 🔒
CFG 🔒
Capture 🔒
ScopeId 🔒
Enums
ForGuard 🔒
ForGuard
indicates whether we are talking about:Traits
Functions
Construct MIR for an item that has had errors in type checking.
the main entry point for building MIR for a function
Construct the MIR for a given
DefId
.