Struct rustc_mir::build::ScopeAuxiliary [] [src]

pub struct ScopeAuxiliary {
    pub extent: CodeExtent,
    pub dom: Location,
    pub postdoms: Vec<Location>,
}
Unstable (rustc_private)

For each scope, we track the extent (from the HIR) and a single-entry-multiple-exit subgraph that contains all the statements/terminators within it.

This information is separated out from the main ScopeData because it is short-lived. First, the extent contains node-ids, so it cannot be saved and re-loaded. Second, any optimization will mess up the dominator/postdominator information.

The intention is basically to use this information to do regionck/borrowck and then throw it away once we are done.

Fields

extent: CodeExtent
Unstable (rustc_private)

extent of this scope from the MIR.

dom: Location
Unstable (rustc_private)

"entry point": dominator of all nodes in the scope

postdoms: Vec<Location>
Unstable (rustc_private)

"exit points": mutual postdominators of all nodes in the scope