struct MarkUsedGenericParams<'a, 'tcx> {
tcx: TyCtxt<'tcx>,
def_id: DefId,
unused_parameters: &'a mut FiniteBitSet<u32>,
}
Expand description
Visitor used to aggregate generic parameter uses.
Fields§
§tcx: TyCtxt<'tcx>
§def_id: DefId
§unused_parameters: &'a mut FiniteBitSet<u32>
Implementations§
source§impl<'a, 'tcx> MarkUsedGenericParams<'a, 'tcx>
impl<'a, 'tcx> MarkUsedGenericParams<'a, 'tcx>
sourcefn visit_child_body(&mut self, def_id: DefId, substs: SubstsRef<'tcx>)
fn visit_child_body(&mut self, def_id: DefId, substs: SubstsRef<'tcx>)
Invoke unused_generic_params
on a body contained within the current item (e.g.
a closure, generator or constant).
Trait Implementations§
source§impl<'a, 'tcx> TypeVisitor<'tcx> for MarkUsedGenericParams<'a, 'tcx>
impl<'a, 'tcx> TypeVisitor<'tcx> for MarkUsedGenericParams<'a, 'tcx>
fn visit_const(&mut self, c: Const<'tcx>) -> ControlFlow<Self::BreakTy>
fn visit_ty(&mut self, ty: Ty<'tcx>) -> ControlFlow<Self::BreakTy>
type BreakTy = !
fn visit_binder<T>(
&mut self,
t: &Binder<'tcx, T>
) -> ControlFlow<Self::BreakTy, ()>where
T: TypeVisitable<'tcx>,
fn visit_region(&mut self, r: Region<'tcx>) -> ControlFlow<Self::BreakTy, ()>
fn visit_predicate(
&mut self,
p: Predicate<'tcx>
) -> ControlFlow<Self::BreakTy, ()>
source§impl<'a, 'tcx> Visitor<'tcx> for MarkUsedGenericParams<'a, 'tcx>
impl<'a, 'tcx> Visitor<'tcx> for MarkUsedGenericParams<'a, 'tcx>
fn visit_local_decl(&mut self, local: Local, local_decl: &LocalDecl<'tcx>)
fn visit_constant(&mut self, ct: &Constant<'tcx>, location: Location)
fn visit_ty(&mut self, ty: Ty<'tcx>, _: TyContext)
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: &AssertKind<Operand<'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: &[ProjectionElem<Local, Ty<'tcx>, Ty<'tcx>>],
elem: ProjectionElem<Local, Ty<'tcx>, Ty<'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: &[ProjectionElem<Local, Ty<'tcx>, Ty<'tcx>>],
elem: ProjectionElem<Local, Ty<'tcx>, Ty<'tcx>>,
_context: PlaceContext,
location: Location
)
fn visit_span(&mut self, span: Span)
fn visit_source_info(&mut self, source_info: &SourceInfo)
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: &&'tcx List<GenericArg<'tcx>>, _: Location)
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: &AssertKind<Operand<'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: &&'tcx List<GenericArg<'tcx>>)
fn visit_location(&mut self, body: &Body<'tcx>, location: Location)
Auto Trait Implementations§
impl<'a, 'tcx> !RefUnwindSafe for MarkUsedGenericParams<'a, 'tcx>
impl<'a, 'tcx> !Send for MarkUsedGenericParams<'a, 'tcx>
impl<'a, 'tcx> !Sync for MarkUsedGenericParams<'a, 'tcx>
impl<'a, 'tcx> Unpin for MarkUsedGenericParams<'a, 'tcx>
impl<'a, 'tcx> !UnwindSafe for MarkUsedGenericParams<'a, 'tcx>
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes