Struct rustc_mir::interpret::Frame
[−]
[src]
pub struct Frame<'tcx> {
pub mir: &'tcx Mir<'tcx>,
pub instance: Instance<'tcx>,
pub span: Span,
pub return_to_block: StackPopCleanup,
pub return_place: Place,
pub locals: Vec<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: &'tcx 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: Vec<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
[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 statment.
Methods
impl<'tcx> Frame<'tcx>[src]
pub fn get_local(&self, local: Local) -> EvalResult<'tcx, Value>[src]
🔬 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) -> EvalResult<'tcx, Option<Value>>[src]
🔬 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) -> EvalResult<'tcx, Option<Value>>[src]
🔬 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