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). The unpack! macro (and methods below) makes working with BlockAnd much more convenient.
  • BlockContext πŸ”’
  • Builder πŸ”’
  • CFG πŸ”’
  • Capture πŸ”’
  • GuardFrame πŸ”’
  • GuardFrameLocal πŸ”’
  • ScopeId πŸ”’

Enums§

Traits§

Functions§

Type Aliases§