[−][src]Struct rustc_mir::transform::function_item_references::FunctionItemRefChecker
Fields
tcx: TyCtxt<'tcx>body: &'a Body<'tcx>Implementations
impl<'a, 'tcx> FunctionItemRefChecker<'a, 'tcx>[src]
pub(in transform::function_item_references) fn check_bound_args(
&self,
def_id: DefId,
substs_ref: SubstsRef<'tcx>,
args: &Vec<Operand<'tcx>>,
source_info: SourceInfo
)[src]
&self,
def_id: DefId,
substs_ref: SubstsRef<'tcx>,
args: &Vec<Operand<'tcx>>,
source_info: SourceInfo
)
Emits a lint for function reference arguments bound by fmt::Pointer in calls to the
function defined by def_id with the substitutions substs_ref.
pub(in transform::function_item_references) fn is_pointer_trait(
&self,
bound: &PredicateAtom<'tcx>
) -> Option<Ty<'tcx>>[src]
&self,
bound: &PredicateAtom<'tcx>
) -> Option<Ty<'tcx>>
If the given predicate is the trait fmt::Pointer, returns the bound parameter type.
pub(in transform::function_item_references) fn is_fn_ref(
ty: Ty<'tcx>
) -> Option<(DefId, SubstsRef<'tcx>)>[src]
ty: Ty<'tcx>
) -> Option<(DefId, SubstsRef<'tcx>)>
If a type is a reference or raw pointer to the anonymous type of a function definition,
returns that function's DefId and SubstsRef.
pub(in transform::function_item_references) fn nth_arg_span(
&self,
args: &Vec<Operand<'tcx>>,
n: usize
) -> Span[src]
&self,
args: &Vec<Operand<'tcx>>,
n: usize
) -> Span
pub(in transform::function_item_references) fn emit_lint(
&self,
fn_id: DefId,
fn_substs: SubstsRef<'tcx>,
source_info: SourceInfo,
span: Span
)[src]
&self,
fn_id: DefId,
fn_substs: SubstsRef<'tcx>,
source_info: SourceInfo,
span: Span
)
Trait Implementations
impl<'a, 'tcx> Visitor<'tcx> for FunctionItemRefChecker<'a, 'tcx>[src]
pub fn visit_terminator(
&mut self,
terminator: &Terminator<'tcx>,
location: Location
)[src]
&mut self,
terminator: &Terminator<'tcx>,
location: Location
)
Emits a lint for function reference arguments bound by fmt::Pointer or passed to
transmute. This only handles arguments in calls outside macro expansions to avoid double
counting function references formatted as pointers by macros.
pub fn visit_operand(&mut self, operand: &Operand<'tcx>, location: Location)[src]
Emits a lint for function references formatted with fmt::Pointer::fmt by macros. These
cases are handled as operands instead of call terminators to avoid any dependence on
unstable, internal formatting details like whether fmt is called directly or not.
pub fn visit_body(&mut self, body: &Body<'tcx>)[src]
pub fn visit_basic_block_data(
&mut self,
block: BasicBlock,
data: &BasicBlockData<'tcx>
)[src]
&mut self,
block: BasicBlock,
data: &BasicBlockData<'tcx>
)
pub fn visit_source_scope_data(&mut self, scope_data: &SourceScopeData<'tcx>)[src]
pub fn visit_statement(
&mut self,
statement: &Statement<'tcx>,
location: Location
)[src]
&mut self,
statement: &Statement<'tcx>,
location: Location
)
pub fn visit_assign(
&mut self,
place: &Place<'tcx>,
rvalue: &Rvalue<'tcx>,
location: Location
)[src]
&mut self,
place: &Place<'tcx>,
rvalue: &Rvalue<'tcx>,
location: Location
)
pub fn visit_assert_message(
&mut self,
msg: &AssertKind<Operand<'tcx>>,
location: Location
)[src]
&mut self,
msg: &AssertKind<Operand<'tcx>>,
location: Location
)
pub fn visit_rvalue(&mut self, rvalue: &Rvalue<'tcx>, location: Location)[src]
pub fn visit_ascribe_user_ty(
&mut self,
place: &Place<'tcx>,
variance: &Variance,
user_ty: &UserTypeProjection,
location: Location
)[src]
&mut self,
place: &Place<'tcx>,
variance: &Variance,
user_ty: &UserTypeProjection,
location: Location
)
pub fn visit_coverage(&mut self, coverage: &Coverage, location: Location)[src]
pub fn visit_retag(
&mut self,
kind: &RetagKind,
place: &Place<'tcx>,
location: Location
)[src]
&mut self,
kind: &RetagKind,
place: &Place<'tcx>,
location: Location
)
pub fn visit_place(
&mut self,
place: &Place<'tcx>,
context: PlaceContext,
location: Location
)[src]
&mut self,
place: &Place<'tcx>,
context: PlaceContext,
location: Location
)
pub fn visit_projection(
&mut self,
local: Local,
projection: &[ProjectionElem<Local, &'tcx TyS<'tcx>>],
context: PlaceContext,
location: Location
)[src]
&mut self,
local: Local,
projection: &[ProjectionElem<Local, &'tcx TyS<'tcx>>],
context: PlaceContext,
location: Location
)
pub fn visit_projection_elem(
&mut self,
local: Local,
proj_base: &[ProjectionElem<Local, &'tcx TyS<'tcx>>],
elem: ProjectionElem<Local, &'tcx TyS<'tcx>>,
context: PlaceContext,
location: Location
)[src]
&mut self,
local: Local,
proj_base: &[ProjectionElem<Local, &'tcx TyS<'tcx>>],
elem: ProjectionElem<Local, &'tcx TyS<'tcx>>,
context: PlaceContext,
location: Location
)
pub fn super_place(
&mut self,
place: &Place<'tcx>,
context: PlaceContext,
location: Location
)[src]
&mut self,
place: &Place<'tcx>,
context: PlaceContext,
location: Location
)
pub fn super_projection(
&mut self,
local: Local,
projection: &[ProjectionElem<Local, &'tcx TyS<'tcx>>],
context: PlaceContext,
location: Location
)[src]
&mut self,
local: Local,
projection: &[ProjectionElem<Local, &'tcx TyS<'tcx>>],
context: PlaceContext,
location: Location
)
pub fn super_projection_elem(
&mut self,
_local: Local,
_proj_base: &[ProjectionElem<Local, &'tcx TyS<'tcx>>],
elem: ProjectionElem<Local, &'tcx TyS<'tcx>>,
_context: PlaceContext,
location: Location
)[src]
&mut self,
_local: Local,
_proj_base: &[ProjectionElem<Local, &'tcx TyS<'tcx>>],
elem: ProjectionElem<Local, &'tcx TyS<'tcx>>,
_context: PlaceContext,
location: Location
)
pub fn visit_constant(&mut self, constant: &Constant<'tcx>, location: Location)[src]
pub fn visit_span(&mut self, span: &Span)[src]
pub fn visit_source_info(&mut self, source_info: &SourceInfo)[src]
pub fn visit_ty(&mut self, ty: &'tcx TyS<'tcx>, TyContext)[src]
pub fn visit_user_type_projection(&mut self, ty: &UserTypeProjection)[src]
pub fn visit_user_type_annotation(
&mut self,
index: UserTypeAnnotationIndex,
ty: &CanonicalUserTypeAnnotation<'tcx>
)[src]
&mut self,
index: UserTypeAnnotationIndex,
ty: &CanonicalUserTypeAnnotation<'tcx>
)
pub fn visit_region(&mut self, region: &&'tcx RegionKind, Location)[src]
pub fn visit_const(&mut self, constant: &&'tcx Const<'tcx>, Location)[src]
pub fn visit_substs(&mut self, substs: &&'tcx List<GenericArg<'tcx>>, Location)[src]
pub fn visit_local_decl(&mut self, local: Local, local_decl: &LocalDecl<'tcx>)[src]
pub fn visit_var_debug_info(&mut self, var_debug_info: &VarDebugInfo<'tcx>)[src]
pub fn visit_local(
&mut self,
_local: &Local,
_context: PlaceContext,
_location: Location
)[src]
&mut self,
_local: &Local,
_context: PlaceContext,
_location: Location
)
pub fn visit_source_scope(&mut self, scope: &SourceScope)[src]
pub fn super_body(&mut self, body: &Body<'tcx>)[src]
pub fn super_basic_block_data(
&mut self,
block: BasicBlock,
data: &BasicBlockData<'tcx>
)[src]
&mut self,
block: BasicBlock,
data: &BasicBlockData<'tcx>
)
pub fn super_source_scope_data(&mut self, scope_data: &SourceScopeData<'tcx>)[src]
pub fn super_statement(
&mut self,
statement: &Statement<'tcx>,
location: Location
)[src]
&mut self,
statement: &Statement<'tcx>,
location: Location
)
pub fn super_assign(
&mut self,
place: &Place<'tcx>,
rvalue: &Rvalue<'tcx>,
location: Location
)[src]
&mut self,
place: &Place<'tcx>,
rvalue: &Rvalue<'tcx>,
location: Location
)
pub fn super_terminator(
&mut self,
terminator: &Terminator<'tcx>,
location: Location
)[src]
&mut self,
terminator: &Terminator<'tcx>,
location: Location
)
pub fn super_assert_message(
&mut self,
msg: &AssertKind<Operand<'tcx>>,
location: Location
)[src]
&mut self,
msg: &AssertKind<Operand<'tcx>>,
location: Location
)
pub fn super_rvalue(&mut self, rvalue: &Rvalue<'tcx>, location: Location)[src]
pub fn super_operand(&mut self, operand: &Operand<'tcx>, location: Location)[src]
pub fn super_ascribe_user_ty(
&mut self,
place: &Place<'tcx>,
_variance: &Variance,
user_ty: &UserTypeProjection,
location: Location
)[src]
&mut self,
place: &Place<'tcx>,
_variance: &Variance,
user_ty: &UserTypeProjection,
location: Location
)
pub fn super_coverage(&mut self, _coverage: &Coverage, _location: Location)[src]
pub fn super_retag(
&mut self,
_kind: &RetagKind,
place: &Place<'tcx>,
location: Location
)[src]
&mut self,
_kind: &RetagKind,
place: &Place<'tcx>,
location: Location
)
pub fn super_local_decl(&mut self, local: Local, local_decl: &LocalDecl<'tcx>)[src]
pub fn super_var_debug_info(&mut self, var_debug_info: &VarDebugInfo<'tcx>)[src]
pub fn super_source_scope(&mut self, _scope: &SourceScope)[src]
pub fn super_constant(&mut self, constant: &Constant<'tcx>, location: Location)[src]
pub fn super_span(&mut self, _span: &Span)[src]
pub fn super_source_info(&mut self, source_info: &SourceInfo)[src]
pub fn super_user_type_projection(&mut self, _ty: &UserTypeProjection)[src]
pub fn super_user_type_annotation(
&mut self,
_index: UserTypeAnnotationIndex,
ty: &CanonicalUserTypeAnnotation<'tcx>
)[src]
&mut self,
_index: UserTypeAnnotationIndex,
ty: &CanonicalUserTypeAnnotation<'tcx>
)
pub fn super_ty(&mut self, _ty: &'tcx TyS<'tcx>)[src]
pub fn super_region(&mut self, _region: &&'tcx RegionKind)[src]
pub fn super_const(&mut self, _const: &&'tcx Const<'tcx>)[src]
pub fn super_substs(&mut self, _substs: &&'tcx List<GenericArg<'tcx>>)[src]
pub fn visit_location(&mut self, body: &Body<'tcx>, location: Location)[src]
Auto Trait Implementations
impl<'a, 'tcx> !RefUnwindSafe for FunctionItemRefChecker<'a, 'tcx>
impl<'a, 'tcx> !Send for FunctionItemRefChecker<'a, 'tcx>
impl<'a, 'tcx> !Sync for FunctionItemRefChecker<'a, 'tcx>
impl<'a, 'tcx> Unpin for FunctionItemRefChecker<'a, 'tcx> where
'tcx: 'a,
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for FunctionItemRefChecker<'a, 'tcx>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.