pub trait LateLintPass<'hir>: Send + Sync {
Show 14 methods
// Provided methods
fn check_nested_source(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_id: SourceId,
) { ... }
fn check_nested_item(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_id: &'hir ItemId,
) { ... }
fn check_nested_contract(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_id: &'hir ContractId,
) { ... }
fn check_nested_function(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_id: &'hir FunctionId,
) { ... }
fn check_nested_var(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_id: &'hir VariableId,
) { ... }
fn check_item(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_item: Item<'hir, 'hir>,
) { ... }
fn check_contract(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_contract: &'hir Contract<'hir>,
) { ... }
fn check_function(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_func: &'hir Function<'hir>,
) { ... }
fn check_modifier(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_mod: &'hir Modifier<'hir>,
) { ... }
fn check_var(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_var: &'hir Variable<'hir>,
) { ... }
fn check_expr(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_expr: &'hir Expr<'hir>,
) { ... }
fn check_call_args(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_args: &'hir CallArgs<'hir>,
) { ... }
fn check_stmt(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_stmt: &'hir Stmt<'hir>,
) { ... }
fn check_ty(
&mut self,
_ctx: &LintContext<'_, '_>,
_hir: &'hir Hir<'hir>,
_ty: &'hir Type<'hir>,
) { ... }
}
Expand description
Trait for lints that operate on the HIR (High-level Intermediate Representation).
Its methods mirror hir::visit::Visit
, with the addition of LintCotext
.
Provided Methods§
fn check_nested_source( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _id: SourceId, )
fn check_nested_item( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _id: &'hir ItemId, )
fn check_nested_contract( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _id: &'hir ContractId, )
fn check_nested_function( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _id: &'hir FunctionId, )
fn check_nested_var( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _id: &'hir VariableId, )
fn check_item( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _item: Item<'hir, 'hir>, )
fn check_contract( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _contract: &'hir Contract<'hir>, )
fn check_function( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _func: &'hir Function<'hir>, )
fn check_modifier( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _mod: &'hir Modifier<'hir>, )
fn check_var( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _var: &'hir Variable<'hir>, )
fn check_expr( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _expr: &'hir Expr<'hir>, )
fn check_call_args( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _args: &'hir CallArgs<'hir>, )
fn check_stmt( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _stmt: &'hir Stmt<'hir>, )
fn check_ty( &mut self, _ctx: &LintContext<'_, '_>, _hir: &'hir Hir<'hir>, _ty: &'hir Type<'hir>, )
Implementors§
impl<'hir> LateLintPass<'hir> for UnwrappedModifierLogic
impl<'hir> LateLintPass<'hir> for AsmKeccak256
impl<'hir> LateLintPass<'hir> for UncheckedTransferERC20
Checks that calls to functions with the same signature as the ERC20 transfer methods, and which return a boolean are not ignored.
WARN: can issue false positives, as it doesn’t check that the contract being called sticks to the full ERC20 specification.