Struct rustc_mir::borrow_check::location::LocationTable [−][src]
pub(crate) struct LocationTable { num_points: usize, statements_before_block: IndexVec<BasicBlock, 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?
Maps between a MIR Location, which identifies the a particular
statement within a basic block, to a "rich location", which
identifies at a finer granularity. In particular, we distinguish
the start of a statement and the mid-point. The mid-point is
the point just before the statement takes effect; in particular,
for an assignment A = B
, it is the point where B is about to be
written into A. This mid-point is a kind of hack to work around
our inability to track the position information at sufficient
granularity through outlives relations; however, the rich location
table serves another purpose: it compresses locations from
multiple words into a single u32.
Fields
num_points: 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?
statements_before_block: IndexVec<BasicBlock, 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?
Methods
impl LocationTable
[src]
impl LocationTable
pub(crate) fn new(mir: &Mir) -> Self
[src]
pub(crate) fn new(mir: &Mir) -> Self
🔬 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(crate) fn all_points(
&self
) -> impl Iterator<Item = LocationIndex>
[src]
pub(crate) fn all_points(
&self
) -> impl Iterator<Item = LocationIndex>
🔬 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(crate) fn start_index(&self, location: Location) -> LocationIndex
[src]
pub(crate) fn start_index(&self, location: Location) -> LocationIndex
🔬 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(crate) fn mid_index(&self, location: Location) -> LocationIndex
[src]
pub(crate) fn mid_index(&self, location: Location) -> LocationIndex
🔬 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(crate) fn to_location(&self, index: LocationIndex) -> RichLocation
[src]
pub(crate) fn to_location(&self, index: LocationIndex) -> RichLocation
🔬 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?
Auto Trait Implementations
impl Send for LocationTable
impl Send for LocationTable
impl Sync for LocationTable
impl Sync for LocationTable