pub trait Visitor<'tcx> {
Show 54 methods fn visit_body(&mut self, body: &Body<'tcx>) { ... } fn visit_basic_block_data(
        &mut self,
        block: BasicBlock,
        data: &BasicBlockData<'tcx>
    ) { ... } fn visit_source_scope_data(&mut self, scope_data: &SourceScopeData<'tcx>) { ... } fn visit_statement(&mut self, statement: &Statement<'tcx>, location: Location) { ... } fn visit_assign(
        &mut self,
        place: &Place<'tcx>,
        rvalue: &Rvalue<'tcx>,
        location: Location
    ) { ... } fn visit_terminator(
        &mut self,
        terminator: &Terminator<'tcx>,
        location: Location
    ) { ... } fn visit_assert_message(
        &mut self,
        msg: &AssertMessage<'tcx>,
        location: Location
    ) { ... } fn visit_rvalue(&mut self, rvalue: &Rvalue<'tcx>, location: Location) { ... } fn visit_operand(&mut self, operand: &Operand<'tcx>, location: Location) { ... } fn visit_ascribe_user_ty(
        &mut self,
        place: &Place<'tcx>,
        variance: Variance,
        user_ty: &UserTypeProjection,
        location: Location
    ) { ... } fn visit_coverage(&mut self, coverage: &Coverage, location: Location) { ... } fn visit_retag(
        &mut self,
        kind: RetagKind,
        place: &Place<'tcx>,
        location: Location
    ) { ... } fn visit_place(
        &mut self,
        place: &Place<'tcx>,
        context: PlaceContext,
        location: Location
    ) { ... } fn visit_projection(
        &mut self,
        place_ref: PlaceRef<'tcx>,
        context: PlaceContext,
        location: Location
    ) { ... } fn visit_projection_elem(
        &mut self,
        local: Local,
        proj_base: &[PlaceElem<'tcx>],
        elem: PlaceElem<'tcx>,
        context: PlaceContext,
        location: Location
    ) { ... } fn super_place(
        &mut self,
        place: &Place<'tcx>,
        context: PlaceContext,
        location: Location
    ) { ... } fn super_projection(
        &mut self,
        place_ref: PlaceRef<'tcx>,
        context: PlaceContext,
        location: Location
    ) { ... } fn super_projection_elem(
        &mut self,
        _local: Local,
        _proj_base: &[PlaceElem<'tcx>],
        elem: PlaceElem<'tcx>,
        _context: PlaceContext,
        location: Location
    ) { ... } fn visit_constant(&mut self, constant: &Constant<'tcx>, location: Location) { ... } fn visit_span(&mut self, span: Span) { ... } fn visit_source_info(&mut self, source_info: &SourceInfo) { ... } fn visit_ty(&mut self, ty: Ty<'tcx>, _: TyContext) { ... } fn visit_user_type_projection(&mut self, ty: &UserTypeProjection) { ... } fn visit_user_type_annotation(
        &mut self,
        index: UserTypeAnnotationIndex,
        ty: &CanonicalUserTypeAnnotation<'tcx>
    ) { ... } fn visit_region(&mut self, region: Region<'tcx>, _: Location) { ... } fn visit_substs(&mut self, substs: &SubstsRef<'tcx>, _: Location) { ... } fn visit_local_decl(&mut self, local: Local, local_decl: &LocalDecl<'tcx>) { ... } fn visit_var_debug_info(&mut self, var_debug_info: &VarDebugInfo<'tcx>) { ... } fn visit_local(
        &mut self,
        _local: Local,
        _context: PlaceContext,
        _location: Location
    ) { ... } fn visit_source_scope(&mut self, scope: SourceScope) { ... } fn super_body(&mut self, body: &Body<'tcx>) { ... } fn super_basic_block_data(
        &mut self,
        block: BasicBlock,
        data: &BasicBlockData<'tcx>
    ) { ... } fn super_source_scope_data(&mut self, scope_data: &SourceScopeData<'tcx>) { ... } fn super_statement(&mut self, statement: &Statement<'tcx>, location: Location) { ... } fn super_assign(
        &mut self,
        place: &Place<'tcx>,
        rvalue: &Rvalue<'tcx>,
        location: Location
    ) { ... } fn super_terminator(
        &mut self,
        terminator: &Terminator<'tcx>,
        location: Location
    ) { ... } fn super_assert_message(
        &mut self,
        msg: &AssertMessage<'tcx>,
        location: Location
    ) { ... } fn super_rvalue(&mut self, rvalue: &Rvalue<'tcx>, location: Location) { ... } fn super_operand(&mut self, operand: &Operand<'tcx>, location: Location) { ... } fn super_ascribe_user_ty(
        &mut self,
        place: &Place<'tcx>,
        _variance: Variance,
        user_ty: &UserTypeProjection,
        location: Location
    ) { ... } fn super_coverage(&mut self, _coverage: &Coverage, _location: Location) { ... } fn super_retag(
        &mut self,
        _kind: RetagKind,
        place: &Place<'tcx>,
        location: Location
    ) { ... } fn super_local_decl(&mut self, local: Local, local_decl: &LocalDecl<'tcx>) { ... } fn super_var_debug_info(&mut self, var_debug_info: &VarDebugInfo<'tcx>) { ... } fn super_source_scope(&mut self, _scope: SourceScope) { ... } fn super_constant(&mut self, constant: &Constant<'tcx>, location: Location) { ... } fn super_span(&mut self, _span: Span) { ... } fn super_source_info(&mut self, source_info: &SourceInfo) { ... } fn super_user_type_projection(&mut self, _ty: &UserTypeProjection) { ... } fn super_user_type_annotation(
        &mut self,
        _index: UserTypeAnnotationIndex,
        ty: &CanonicalUserTypeAnnotation<'tcx>
    ) { ... } fn super_ty(&mut self, _ty: Ty<'tcx>) { ... } fn super_region(&mut self, _region: Region<'tcx>) { ... } fn super_substs(&mut self, _substs: &SubstsRef<'tcx>) { ... } fn visit_location(&mut self, body: &Body<'tcx>, location: Location) { ... }
}

Provided Methods

Implementors

impl<'a, 'tcx> Visitor<'tcx> for GatherBorrows<'a, 'tcx>

impl<'cg, 'cx, 'tcx> Visitor<'tcx> for ConstraintGeneration<'cg, 'cx, 'tcx>

impl<'tcx> Visitor<'tcx> for AllLocalUsesVisitor

impl<'cx, 'tcx> Visitor<'tcx> for DefUseVisitor<'cx, 'tcx>

impl<'cx, 'tcx> Visitor<'tcx> for InvalidationGenerator<'cx, 'tcx>

impl Visitor<'_> for LocalUseMapBuild<'_>

impl<'a, 'tcx> Visitor<'tcx> for UseFactsExtractor<'a, 'tcx>

impl<'a, 'b, 'tcx> Visitor<'tcx> for TypeVerifier<'a, 'b, 'tcx>

impl<'visit, 'cx, 'tcx> Visitor<'tcx> for GatherUsedMutsVisitor<'visit, 'cx, 'tcx>

impl<'mir, 'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> Visitor<'tcx> for LocalAnalyzer<'mir, 'a, 'tcx, Bx>

impl<'tcx> Visitor<'tcx> for Checker<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for CheckLiveDrops<'_, 'tcx>

impl<'tcx, Q> Visitor<'tcx> for TransferFunction<'_, '_, 'tcx, Q>where
    Q: Qualif,

impl<'tcx> Visitor<'tcx> for Collector<'_, 'tcx>

impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx>

impl<'tcx> Visitor<'tcx> for FindLocalAssignmentVisitor

impl<'tcx, T> Visitor<'tcx> for TransferFunction<'_, T>where
    T: GenKill<Local>,

impl<T> Visitor<'_> for TransferFunction<'_, T>where
    T: GenKill<Local>,

impl<'tcx, T> Visitor<'tcx> for TransferFunction<'_, T>where
    T: GenKill<Local>,

impl<'tcx, T> Visitor<'tcx> for YieldResumeEffect<'_, T>where
    T: GenKill<Local>,

impl<'a, 'mir, 'tcx, T> Visitor<'tcx> for MoveVisitor<'a, 'mir, 'tcx, T>where
    T: GenKill<Local>,

impl<F> Visitor<'_> for OnMutBorrow<F>where
    F: FnMut(&Place<'_>),

impl<'tcx> Visitor<'tcx> for ConstMutationChecker<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for PackedRefChecker<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for UnsafetyChecker<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for ConstGotoOptimizationFinder<'_, 'tcx>

impl Visitor<'_> for CanConstProp

impl<'tcx> Visitor<'tcx> for ConstPropagator<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for FindAssignments<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for IndexCollector

impl<'tcx> Visitor<'tcx> for FunctionItemRefChecker<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for CostChecker<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for IsReturnPlaceRead

impl<'tcx> Visitor<'tcx> for RequiredConstsVisitor<'_, 'tcx>

impl<'tcx> Visitor<'tcx> for UsedLocals

impl<'a, 'tcx> Visitor<'tcx> for MirNeighborCollector<'a, 'tcx>

impl<'a, 'tcx> Visitor<'tcx> for MarkUsedGenericParams<'a, 'tcx>