struct TypedContext<'a, 'tcx> {
checker: &'a SmtChecker<'tcx>,
caller: DefId,
forward: &'a ForwardVisitResult<'tcx>,
required_ty: Ty<'tcx>,
}Fields§
§checker: &'a SmtChecker<'tcx>§caller: DefId§forward: &'a ForwardVisitResult<'tcx>§required_ty: Ty<'tcx>Implementations§
Source§impl<'a, 'tcx> TypedContext<'a, 'tcx>
impl<'a, 'tcx> TypedContext<'a, 'tcx>
Sourcefn place_is_typed(
&mut self,
place: &PlaceKey,
seen: &mut HashSet<PlaceKey>,
depth: usize,
) -> bool
fn place_is_typed( &mut self, place: &PlaceKey, seen: &mut HashSet<PlaceKey>, depth: usize, ) -> bool
Prove that a place denotes storage or a pointer whose dynamic type is required_ty.
Sourcefn value_is_typed(
&mut self,
value: &AbstractValue<'tcx>,
seen: &mut HashSet<PlaceKey>,
depth: usize,
) -> bool
fn value_is_typed( &mut self, value: &AbstractValue<'tcx>, seen: &mut HashSet<PlaceKey>, depth: usize, ) -> bool
Prove that an abstract value carries required_ty typed provenance.
Sourcefn latest_value_for_place(
&self,
place: &PlaceKey,
) -> Option<AbstractValue<'tcx>>
fn latest_value_for_place( &self, place: &PlaceKey, ) -> Option<AbstractValue<'tcx>>
Return the latest value assigned to a place in the retained path slice.
Sourcefn latest_cast_source_for_place(
&self,
place: &PlaceKey,
) -> Option<AbstractValue<'tcx>>
fn latest_cast_source_for_place( &self, place: &PlaceKey, ) -> Option<AbstractValue<'tcx>>
Return the latest cast source retained for a target place.
Sourcefn latest_points_to_source(&self, place: &PlaceKey) -> Option<PlaceKey>
fn latest_points_to_source(&self, place: &PlaceKey) -> Option<PlaceKey>
Return the latest provenance source retained for a pointer place.
Sourcefn known_init_matches(&self, place: &PlaceKey) -> bool
fn known_init_matches(&self, place: &PlaceKey) -> bool
Return true when a previous write initialized this place as required_ty.
Sourcefn storage_place_is_typed(&self, place: &PlaceKey) -> bool
fn storage_place_is_typed(&self, place: &PlaceKey) -> bool
Return true when a Rust storage place itself is known to contain required_ty.
Sourcefn place_ty(&self, place: &PlaceKey) -> Option<Ty<'tcx>>
fn place_ty(&self, place: &PlaceKey) -> Option<Ty<'tcx>>
Resolve a place type from MIR locals and field projections.
Sourcefn ty_has_required_payload(&self, ty: Ty<'tcx>) -> bool
fn ty_has_required_payload(&self, ty: Ty<'tcx>) -> bool
Return true when ty or its pointer/reference payload is required_ty.
Sourcefn ty_matches(&self, ty: Ty<'tcx>) -> bool
fn ty_matches(&self, ty: Ty<'tcx>) -> bool
Return true when two compiler types are the same for current verifier purposes.
Sourcefn ty_name_matches(&self, ty_name: &str) -> bool
fn ty_name_matches(&self, ty_name: &str) -> bool
Return true when a stringly fact type name matches required_ty.
Auto Trait Implementations§
impl<'a, 'tcx> Freeze for TypedContext<'a, 'tcx>
impl<'a, 'tcx> !RefUnwindSafe for TypedContext<'a, 'tcx>
impl<'a, 'tcx> !Send for TypedContext<'a, 'tcx>
impl<'a, 'tcx> !Sync for TypedContext<'a, 'tcx>
impl<'a, 'tcx> Unpin for TypedContext<'a, 'tcx>
impl<'a, 'tcx> !UnwindSafe for TypedContext<'a, '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
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>
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>
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