rustc_middle::mir::visit

Trait MutVisitor

source
pub trait MutVisitor<'tcx> {
Show 57 methods // Required method fn tcx<'a>(&'a self) -> TyCtxt<'tcx>; // Provided methods fn visit_body(&mut self, body: &mut Body<'tcx>) { ... } fn visit_body_preserves_cfg(&mut self, body: &mut Body<'tcx>) { ... } fn super_body_preserves_cfg(&mut self, body: &mut Body<'tcx>) { ... } fn visit_basic_block_data( &mut self, block: BasicBlock, data: &mut BasicBlockData<'tcx>, ) { ... } fn visit_source_scope_data( &mut self, scope_data: &mut SourceScopeData<'tcx>, ) { ... } fn visit_statement( &mut self, statement: &mut Statement<'tcx>, location: Location, ) { ... } fn visit_assign( &mut self, place: &mut Place<'tcx>, rvalue: &mut Rvalue<'tcx>, location: Location, ) { ... } fn visit_terminator( &mut self, terminator: &mut Terminator<'tcx>, location: Location, ) { ... } fn visit_assert_message( &mut self, msg: &mut AssertMessage<'tcx>, location: Location, ) { ... } fn visit_rvalue(&mut self, rvalue: &mut Rvalue<'tcx>, location: Location) { ... } fn visit_operand(&mut self, operand: &mut Operand<'tcx>, location: Location) { ... } fn visit_ascribe_user_ty( &mut self, place: &mut Place<'tcx>, variance: &mut Variance, user_ty: &mut UserTypeProjection, location: Location, ) { ... } fn visit_coverage(&mut self, kind: &mut CoverageKind, location: Location) { ... } fn visit_retag( &mut self, kind: &mut RetagKind, place: &mut Place<'tcx>, location: Location, ) { ... } fn visit_place( &mut self, place: &mut Place<'tcx>, context: PlaceContext, location: Location, ) { ... } fn super_place( &mut self, place: &mut Place<'tcx>, context: PlaceContext, location: Location, ) { ... } fn process_projection<'a>( &mut self, projection: &'a [PlaceElem<'tcx>], location: Location, ) -> Option<Vec<PlaceElem<'tcx>>> { ... } fn process_projection_elem( &mut self, elem: PlaceElem<'tcx>, location: Location, ) -> Option<PlaceElem<'tcx>> { ... } fn visit_const_operand( &mut self, constant: &mut ConstOperand<'tcx>, location: Location, ) { ... } fn visit_ty_const(&mut self, ct: &mut Const<'tcx>, location: Location) { ... } fn visit_span(&mut self, span: &mut Span) { ... } fn visit_source_info(&mut self, source_info: &mut SourceInfo) { ... } fn visit_ty(&mut self, ty: &mut Ty<'tcx>, _: TyContext) { ... } fn visit_user_type_projection(&mut self, ty: &mut UserTypeProjection) { ... } fn visit_user_type_annotation( &mut self, index: UserTypeAnnotationIndex, ty: &mut CanonicalUserTypeAnnotation<'tcx>, ) { ... } fn visit_region(&mut self, region: &mut Region<'tcx>, _: Location) { ... } fn visit_args(&mut self, args: &mut GenericArgsRef<'tcx>, _: Location) { ... } fn visit_local_decl( &mut self, local: Local, local_decl: &mut LocalDecl<'tcx>, ) { ... } fn visit_var_debug_info(&mut self, var_debug_info: &mut VarDebugInfo<'tcx>) { ... } fn visit_local( &mut self, _local: &mut Local, _context: PlaceContext, _location: Location, ) { ... } fn visit_source_scope(&mut self, scope: &mut SourceScope) { ... } fn super_body(&mut self, body: &mut Body<'tcx>) { ... } fn super_basic_block_data( &mut self, block: BasicBlock, data: &mut BasicBlockData<'tcx>, ) { ... } fn super_source_scope_data( &mut self, scope_data: &mut SourceScopeData<'tcx>, ) { ... } fn super_statement( &mut self, statement: &mut Statement<'tcx>, location: Location, ) { ... } fn super_assign( &mut self, place: &mut Place<'tcx>, rvalue: &mut Rvalue<'tcx>, location: Location, ) { ... } fn super_terminator( &mut self, terminator: &mut Terminator<'tcx>, location: Location, ) { ... } fn super_assert_message( &mut self, msg: &mut AssertMessage<'tcx>, location: Location, ) { ... } fn super_rvalue(&mut self, rvalue: &mut Rvalue<'tcx>, location: Location) { ... } fn super_operand(&mut self, operand: &mut Operand<'tcx>, location: Location) { ... } fn super_ascribe_user_ty( &mut self, place: &mut Place<'tcx>, variance: &mut Variance, user_ty: &mut UserTypeProjection, location: Location, ) { ... } fn super_coverage(&mut self, _kind: &mut CoverageKind, _location: Location) { ... } fn super_retag( &mut self, _kind: &mut RetagKind, place: &mut Place<'tcx>, location: Location, ) { ... } fn super_local_decl( &mut self, local: Local, local_decl: &mut LocalDecl<'tcx>, ) { ... } fn super_var_debug_info(&mut self, var_debug_info: &mut VarDebugInfo<'tcx>) { ... } fn super_source_scope(&mut self, _scope: &mut SourceScope) { ... } fn super_const_operand( &mut self, constant: &mut ConstOperand<'tcx>, location: Location, ) { ... } fn super_ty_const(&mut self, _ct: &mut Const<'tcx>, _location: Location) { ... } fn super_span(&mut self, _span: &mut Span) { ... } fn super_source_info(&mut self, source_info: &mut SourceInfo) { ... } fn super_user_type_projection(&mut self, _ty: &mut UserTypeProjection) { ... } fn super_user_type_annotation( &mut self, _index: UserTypeAnnotationIndex, ty: &mut CanonicalUserTypeAnnotation<'tcx>, ) { ... } fn super_ty(&mut self, _ty: &mut Ty<'tcx>) { ... } fn super_region(&mut self, _region: &mut Region<'tcx>) { ... } fn super_args(&mut self, _args: &mut GenericArgsRef<'tcx>) { ... } fn visit_location(&mut self, body: &mut Body<'tcx>, location: Location) { ... }
}

Required Methods§

source

fn tcx<'a>(&'a self) -> TyCtxt<'tcx>

Provided Methods§

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

fn process_projection<'a>( &mut self, projection: &'a [PlaceElem<'tcx>], location: Location, ) -> Option<Vec<PlaceElem<'tcx>>>

source

fn process_projection_elem( &mut self, elem: PlaceElem<'tcx>, location: Location, ) -> Option<PlaceElem<'tcx>>

source

fn visit_const_operand( &mut self, constant: &mut 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: &mut Const<'tcx>, location: Location)

source

fn visit_span(&mut self, span: &mut Span)

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

fn visit_source_scope(&mut self, scope: &mut SourceScope)

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

fn super_source_scope(&mut self, _scope: &mut SourceScope)

source

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

source

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

source

fn super_span(&mut self, _span: &mut Span)

source

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

source

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

source

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

source

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

source

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

source

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

source

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

Implementors§