Skip to main content

ResultsVisitor

Trait ResultsVisitor 

Source
pub trait ResultsVisitor<'tcx, A>
where A: Analysis<'tcx>,
{ // Provided methods fn visit_after_early_statement_effect( &mut self, _analysis: &A, _state: &A::Domain, _statement: &Statement<'tcx>, _location: Location, ) { ... } fn visit_after_primary_statement_effect( &mut self, _analysis: &A, _state: &A::Domain, _statement: &Statement<'tcx>, _location: Location, ) { ... } fn visit_after_early_terminator_effect( &mut self, _analysis: &A, _state: &A::Domain, _terminator: &Terminator<'tcx>, _location: Location, ) { ... } fn visit_after_primary_terminator_effect( &mut self, _analysis: &A, _state: &A::Domain, _terminator: &Terminator<'tcx>, _location: Location, ) { ... } }
Expand description

A visitor over the results of an Analysis. Use this when you want to inspect domain values in many or all locations; use ResultsCursor if you want to inspect domain values only in certain locations.

Provided Methods§

Source

fn visit_after_early_statement_effect( &mut self, _analysis: &A, _state: &A::Domain, _statement: &Statement<'tcx>, _location: Location, )

Called after the “early” effect of the given statement is applied to state.

Source

fn visit_after_primary_statement_effect( &mut self, _analysis: &A, _state: &A::Domain, _statement: &Statement<'tcx>, _location: Location, )

Called after the “primary” effect of the given statement is applied to state.

Source

fn visit_after_early_terminator_effect( &mut self, _analysis: &A, _state: &A::Domain, _terminator: &Terminator<'tcx>, _location: Location, )

Called after the “early” effect of the given terminator is applied to state.

Source

fn visit_after_primary_terminator_effect( &mut self, _analysis: &A, _state: &A::Domain, _terminator: &Terminator<'tcx>, _location: Location, )

Called after the “primary” effect of the given terminator is applied to state.

The call_return_effect (if one exists) will not be applied to state.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'tcx, A> ResultsVisitor<'tcx, A> for StateDiffCollector<A::Domain>
where A: Analysis<'tcx>, A::Domain: DebugWithContext<A>,