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