Struct rustc_mir::borrow_check::places_conflict::PlaceComponents [−][src]
struct PlaceComponents<'p, 'tcx: 'p> {
component: &'p Place<'tcx>,
next: Option<&'p PlaceComponents<'p, '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?
A linked list of places running up the stack; begins with the
innermost place and extends to projections (e.g., a.b would have
the place a with a "next" pointer to a.b). Created by
unroll_place.
NB: This particular impl strategy is not the most obvious. It was
chosen because it makes a measurable difference to NLL
performance, as this code (places_conflict) is somewhat hot.
Fields
component: &'p Place<'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?
next: Option<&'p PlaceComponents<'p, '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?
Methods
impl<'p, 'tcx> PlaceComponents<'p, 'tcx>[src]
impl<'p, 'tcx> PlaceComponents<'p, 'tcx>fn iter(&self) -> PlaceComponentsIter<'_, 'tcx>[src]
fn iter(&self) -> PlaceComponentsIter<'_, '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?
Converts a list of Place components into an iterator; this
iterator yields up a never-ending stream of Option<&Place>.
These begin with the "innermst" place and then with each
projection therefrom. So given a place like a.b.c it would
yield up:
Some(`a`), Some(`a.b`), Some(`a.b.c`), None, None, ...
Auto Trait Implementations
impl<'p, 'tcx> !Send for PlaceComponents<'p, 'tcx>
impl<'p, 'tcx> !Send for PlaceComponents<'p, 'tcx>impl<'p, 'tcx> !Sync for PlaceComponents<'p, 'tcx>
impl<'p, 'tcx> !Sync for PlaceComponents<'p, 'tcx>