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