rustc_middle::mir::visit

Trait Visitor

Source
pub trait Visitor<'tcx> {
Show 56 methods // Provided 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, kind: &CoverageKind, 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, place_ref: PlaceRef<'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, _place_ref: PlaceRef<'tcx>, elem: PlaceElem<'tcx>, _context: PlaceContext, location: Location, ) { ... } fn visit_const_operand( &mut self, constant: &ConstOperand<'tcx>, location: Location, ) { ... } fn visit_ty_const(&mut self, ct: Const<'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_args(&mut self, args: &GenericArgsRef<'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, _kind: &CoverageKind, _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_const_operand( &mut self, constant: &ConstOperand<'tcx>, location: Location, ) { ... } fn super_ty_const(&mut self, _ct: Const<'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_args(&mut self, _args: &GenericArgsRef<'tcx>) { ... } fn visit_location(&mut self, body: &Body<'tcx>, location: Location) { ... }
}

Provided Methods§

Source

fn visit_body(&mut self, body: &Body<'tcx>)

Source

fn visit_basic_block_data( &mut self, block: BasicBlock, data: &BasicBlockData<'tcx>, )

Source

fn visit_source_scope_data(&mut self, scope_data: &SourceScopeData<'tcx>)

Source

fn visit_statement(&mut self, statement: &Statement<'tcx>, location: Location)

Source

fn visit_assign( &mut self, place: &Place<'tcx>, rvalue: &Rvalue<'tcx>, location: Location, )

Source

fn visit_terminator( &mut self, terminator: &Terminator<'tcx>, location: Location, )

Source

fn visit_assert_message( &mut self, msg: &AssertMessage<'tcx>, location: Location, )

Source

fn visit_rvalue(&mut self, rvalue: &Rvalue<'tcx>, location: Location)

Source

fn visit_operand(&mut self, operand: &Operand<'tcx>, location: Location)

Source

fn visit_ascribe_user_ty( &mut self, place: &Place<'tcx>, variance: Variance, user_ty: &UserTypeProjection, location: Location, )

Source

fn visit_coverage(&mut self, kind: &CoverageKind, location: Location)

Source

fn visit_retag( &mut self, kind: RetagKind, place: &Place<'tcx>, location: Location, )

Source

fn visit_place( &mut self, place: &Place<'tcx>, context: PlaceContext, location: Location, )

Source

fn visit_projection( &mut self, place_ref: PlaceRef<'tcx>, context: PlaceContext, location: Location, )

Source

fn visit_projection_elem( &mut self, place_ref: PlaceRef<'tcx>, elem: PlaceElem<'tcx>, context: PlaceContext, location: Location, )

Source

fn super_place( &mut self, place: &Place<'tcx>, context: PlaceContext, location: Location, )

Source

fn super_projection( &mut self, place_ref: PlaceRef<'tcx>, context: PlaceContext, location: Location, )

Source

fn super_projection_elem( &mut self, _place_ref: PlaceRef<'tcx>, elem: PlaceElem<'tcx>, _context: PlaceContext, location: Location, )

Source

fn visit_const_operand( &mut self, constant: &ConstOperand<'tcx>, location: Location, )

This is called for every constant in the MIR body and every required_consts (i.e., including consts that have been dead-code-eliminated).

Source

fn visit_ty_const(&mut self, ct: Const<'tcx>, location: Location)

Source

fn visit_span(&mut self, span: Span)

Source

fn visit_source_info(&mut self, source_info: &SourceInfo)

Source

fn visit_ty(&mut self, ty: Ty<'tcx>, _: TyContext)

Source

fn visit_user_type_projection(&mut self, ty: &UserTypeProjection)

Source

fn visit_user_type_annotation( &mut self, index: UserTypeAnnotationIndex, ty: &CanonicalUserTypeAnnotation<'tcx>, )

Source

fn visit_region(&mut self, region: Region<'tcx>, _: Location)

Source

fn visit_args(&mut self, args: &GenericArgsRef<'tcx>, _: Location)

Source

fn visit_local_decl(&mut self, local: Local, local_decl: &LocalDecl<'tcx>)

Source

fn visit_var_debug_info(&mut self, var_debug_info: &VarDebugInfo<'tcx>)

Source

fn visit_local( &mut self, _local: Local, _context: PlaceContext, _location: Location, )

Source

fn visit_source_scope(&mut self, scope: SourceScope)

Source

fn super_body(&mut self, body: &Body<'tcx>)

Source

fn super_basic_block_data( &mut self, block: BasicBlock, data: &BasicBlockData<'tcx>, )

Source

fn super_source_scope_data(&mut self, scope_data: &SourceScopeData<'tcx>)

Source

fn super_statement(&mut self, statement: &Statement<'tcx>, location: Location)

Source

fn super_assign( &mut self, place: &Place<'tcx>, rvalue: &Rvalue<'tcx>, location: Location, )

Source

fn super_terminator( &mut self, terminator: &Terminator<'tcx>, location: Location, )

Source

fn super_assert_message( &mut self, msg: &AssertMessage<'tcx>, location: Location, )

Source

fn super_rvalue(&mut self, rvalue: &Rvalue<'tcx>, location: Location)

Source

fn super_operand(&mut self, operand: &Operand<'tcx>, location: Location)

Source

fn super_ascribe_user_ty( &mut self, place: &Place<'tcx>, variance: Variance, user_ty: &UserTypeProjection, location: Location, )

Source

fn super_coverage(&mut self, _kind: &CoverageKind, _location: Location)

Source

fn super_retag( &mut self, _kind: RetagKind, place: &Place<'tcx>, location: Location, )

Source

fn super_local_decl(&mut self, local: Local, local_decl: &LocalDecl<'tcx>)

Source

fn super_var_debug_info(&mut self, var_debug_info: &VarDebugInfo<'tcx>)

Source

fn super_source_scope(&mut self, _scope: SourceScope)

Source

fn super_const_operand( &mut self, constant: &ConstOperand<'tcx>, location: Location, )

Source

fn super_ty_const(&mut self, _ct: Const<'tcx>, _location: Location)

Source

fn super_span(&mut self, _span: Span)

Source

fn super_source_info(&mut self, source_info: &SourceInfo)

Source

fn super_user_type_projection(&mut self, _ty: &UserTypeProjection)

Source

fn super_user_type_annotation( &mut self, _index: UserTypeAnnotationIndex, ty: &CanonicalUserTypeAnnotation<'tcx>, )

Source

fn super_ty(&mut self, _ty: Ty<'tcx>)

Source

fn super_region(&mut self, _region: Region<'tcx>)

Source

fn super_args(&mut self, _args: &GenericArgsRef<'tcx>)

Source

fn visit_location(&mut self, body: &Body<'tcx>, location: Location)

Implementors§

Source§

impl<'tcx> Visitor<'tcx> for ExtraComments<'tcx>

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

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

impl<'tcx> Visitor<'tcx> for V<'_>

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

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

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

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

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

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

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

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

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

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

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

impl<'a, 'b, 'tcx, Bx: BuilderMethods<'b, 'tcx>> Visitor<'tcx> for LocalAnalyzer<'a, 'b, '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 YieldResumeEffect<'_>

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

impl<'tcx> Visitor<'tcx> for TransferFunction<'_>

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

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

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

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

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

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

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

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

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

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

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

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

impl<'tcx> Visitor<'tcx> for DeduceReadOnly

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

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

impl<'tcx> Visitor<'tcx> for CanConstProp

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

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

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

impl<'tcx> Visitor<'tcx> for LocalFinder

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

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

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

impl<'tcx> Visitor<'tcx> for SingleUseConstsFinder

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

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

impl<'tcx> Visitor<'tcx> for MoveCheckVisitor<'tcx>