Struct rustc_mir::interpret::Frame
[−]
[src]
pub struct Frame<'mir, 'tcx: 'mir> {
pub mir: &'mir Mir<'tcx>,
pub instance: Instance<'tcx>,
pub span: Span,
pub return_to_block: StackPopCleanup,
pub return_place: Place,
pub locals: IndexVec<Local, Option<Value>>,
pub block: BasicBlock,
pub stmt: usize,
}🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
A stack frame.
Fields
mir: &'mir Mir<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The MIR for the function called on this frame.
instance: Instance<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The def_id and substs of the current function
span: Span
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The span of the call site.
return_to_block: StackPopCleanup
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The block to return to when returning from the current stack frame
return_place: Place
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The location where the result of the current stack frame should be written to.
locals: IndexVec<Local, Option<Value>>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The list of locals for this stack frame, stored in order as
[return_ptr, arguments..., variables..., temporaries...]. The locals are stored as Option<Value>s.
None represents a local that is currently dead, while a live local
can either directly contain PrimVal or refer to some part of an Allocation.
Before being initialized, arguments are Value::ByVal(PrimVal::Undef) and other locals are None.
block: BasicBlock
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The block that is currently executed (or will be executed after the above call stacks return).
stmt: usize
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The index of the currently evaluated statement.
Methods
impl<'mir, 'tcx> Frame<'mir, 'tcx>[src]
impl<'mir, 'tcx> Frame<'mir, 'tcx>pub fn get_local(&self, local: Local) -> EvalResult<'tcx, Value>[src]
pub fn get_local(&self, local: Local) -> EvalResult<'tcx, Value>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn storage_live(&mut self, local: Local) -> Option<Value>[src]
pub fn storage_live(&mut self, local: Local) -> Option<Value>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn storage_dead(&mut self, local: Local) -> Option<Value>[src]
pub fn storage_dead(&mut self, local: Local) -> Option<Value>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Returns the old value of the local