struct PlaceInfo {
value_index: Option<ValueIndex>,
proj_elem: Option<FieldIdx>,
first_child: Option<PlaceIndex>,
next_sibling: Option<PlaceIndex>,
}
Expand description
This is the information tracked for every PlaceIndex
and is stored by Map
.
Together, first_child
and next_sibling
form an intrusive linked list, which is used to
model a tree structure (a replacement for a member like children: Vec<PlaceIndex>
).
Fields§
§value_index: Option<ValueIndex>
We store a ValueIndex
if and only if the placed is tracked by the analysis.
proj_elem: Option<FieldIdx>
The projection used to go from parent to this node (only None for root).
first_child: Option<PlaceIndex>
The left-most child.
next_sibling: Option<PlaceIndex>
Index of the sibling to the right of this node.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PlaceInfo
impl RefUnwindSafe for PlaceInfo
impl Send for PlaceInfo
impl Sync for PlaceInfo
impl Unpin for PlaceInfo
impl UnwindSafe for PlaceInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more