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, coverage: &mut Coverage, 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_constant(
&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, _coverage: &mut Coverage, _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_constant(
&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) { ... }
}