pub struct VisitDriver<'tcx, 'c, K> {
memo: &'c MemoPdgConstructor<'tcx, K>,
call_string_stack: Vec<GlobalLocation>,
current_function: Instance<'tcx>,
k: K,
}
Fields§
§memo: &'c MemoPdgConstructor<'tcx, K>
§call_string_stack: Vec<GlobalLocation>
§current_function: Instance<'tcx>
§k: K
Implementations§
Source§impl<'tcx, 'c, K> VisitDriver<'tcx, 'c, K>
impl<'tcx, 'c, K> VisitDriver<'tcx, 'c, K>
pub fn new( memo: &'c MemoPdgConstructor<'tcx, K>, start: Instance<'tcx>, k: K, ) -> Self
pub fn with_pushed_stack<F, R>(&mut self, location: GlobalLocation, f: F) -> Rwhere
F: FnOnce(&mut Self) -> R,
pub fn call_stack(&self) -> &[GlobalLocation]
pub fn current_function(&self) -> Instance<'tcx>
Source§impl<'tcx, K: Clone + Hash + Eq> VisitDriver<'tcx, '_, K>
impl<'tcx, K: Clone + Hash + Eq> VisitDriver<'tcx, '_, K>
pub fn visit_partial_graph<V: Visitor<'tcx, K> + ?Sized>( &mut self, vis: &mut V, graph: &PartialGraph<'tcx, K>, )
pub fn visit_inlined_call<V: Visitor<'tcx, K> + ?Sized>( &mut self, vis: &mut V, loc: Location, inst: Instance<'tcx>, k: &K, )
pub fn start<V: Visitor<'tcx, K> + ?Sized>(&mut self, vis: &mut V)
Auto Trait Implementations§
impl<'tcx, 'c, K> Freeze for VisitDriver<'tcx, 'c, K>where
K: Freeze,
impl<'tcx, 'c, K> !RefUnwindSafe for VisitDriver<'tcx, 'c, K>
impl<'tcx, 'c, K> !Send for VisitDriver<'tcx, 'c, K>
impl<'tcx, 'c, K> !Sync for VisitDriver<'tcx, 'c, K>
impl<'tcx, 'c, K> Unpin for VisitDriver<'tcx, 'c, K>where
K: Unpin,
impl<'tcx, 'c, K> !UnwindSafe for VisitDriver<'tcx, 'c, K>
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> 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