Struct rustc_mir::interpret::eval_context::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 Scalar
or refer to some part of an Allocation
.
Before being initialized, arguments are Value::Scalar(Scalar::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?
fn set_local(&mut self, local: Local, value: Value) -> EvalResult<'tcx>
[src]
fn set_local(&mut self, local: Local, value: Value) -> EvalResult<'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?
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
Trait Implementations
impl<'mir, 'tcx: 'mir> Clone for Frame<'mir, 'tcx>
[src]
impl<'mir, 'tcx: 'mir> Clone for Frame<'mir, 'tcx>
fn clone(&self) -> Frame<'mir, 'tcx>
[src]
fn clone(&self) -> Frame<'mir, 'tcx>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<'mir, 'tcx: 'mir> Eq for Frame<'mir, 'tcx>
[src]
impl<'mir, 'tcx: 'mir> Eq for Frame<'mir, 'tcx>
fn assert_receiver_is_total_eq(&self)
1.0.0[src]
fn assert_receiver_is_total_eq(&self)
impl<'mir, 'tcx: 'mir> PartialEq for Frame<'mir, 'tcx>
[src]
impl<'mir, 'tcx: 'mir> PartialEq for Frame<'mir, 'tcx>
fn eq(&self, other: &Self) -> bool
[src]
fn eq(&self, other: &Self) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
This method tests for !=
.
impl<'mir, 'tcx: 'mir> Hash for Frame<'mir, 'tcx>
[src]
impl<'mir, 'tcx: 'mir> Hash for Frame<'mir, 'tcx>