pub enum AbstractValue<'tcx> {
Show 17 variants
Unknown(String),
Place(PlaceKey),
Ref(PlaceKey),
RawPtr(PlaceKey),
ThreadLocal(String),
ConstInt(u128),
Const(String),
ConstParam(String),
Repeat(Box<AbstractValue<'tcx>>),
Cast(Box<AbstractValue<'tcx>>, Ty<'tcx>),
Unary(UnOp, Box<AbstractValue<'tcx>>),
Binary(BinOp, Box<AbstractValue<'tcx>>, Box<AbstractValue<'tcx>>),
Nullary(String),
Discriminant(PlaceKey),
Aggregate(String, usize),
ShallowInitBox(Box<AbstractValue<'tcx>>, Ty<'tcx>),
CallResult(CallSummary<'tcx>),
}Expand description
Abstract value assigned to a MIR local by the forward visitor.
Variants§
Unknown(String)
Place(PlaceKey)
Ref(PlaceKey)
RawPtr(PlaceKey)
ThreadLocal(String)
ConstInt(u128)
Const(String)
ConstParam(String)
Repeat(Box<AbstractValue<'tcx>>)
Cast(Box<AbstractValue<'tcx>>, Ty<'tcx>)
Unary(UnOp, Box<AbstractValue<'tcx>>)
Binary(BinOp, Box<AbstractValue<'tcx>>, Box<AbstractValue<'tcx>>)
Nullary(String)
Discriminant(PlaceKey)
Aggregate(String, usize)
ShallowInitBox(Box<AbstractValue<'tcx>>, Ty<'tcx>)
CallResult(CallSummary<'tcx>)
Trait Implementations§
Source§impl<'tcx> Clone for AbstractValue<'tcx>
impl<'tcx> Clone for AbstractValue<'tcx>
Source§fn clone(&self) -> AbstractValue<'tcx>
fn clone(&self) -> AbstractValue<'tcx>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<'tcx> Freeze for AbstractValue<'tcx>
impl<'tcx> !RefUnwindSafe for AbstractValue<'tcx>
impl<'tcx> Send for AbstractValue<'tcx>
impl<'tcx> Sync for AbstractValue<'tcx>
impl<'tcx> Unpin for AbstractValue<'tcx>
impl<'tcx> !UnwindSafe for AbstractValue<'tcx>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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