Skip to main content

forge_lint/sol/gas/
mod.rs

1use crate::sol::{EarlyLintPass, LateLintPass, SolLint};
2
3mod cache_array_length;
4mod costly_loop;
5mod custom_errors;
6mod external_function;
7mod immutable;
8mod keccak;
9mod unused_state_variables;
10mod var_read_using_this;
11mod write_after_write;
12use cache_array_length::CACHE_ARRAY_LENGTH;
13use costly_loop::COSTLY_LOOP;
14use custom_errors::CUSTOM_ERRORS;
15use external_function::EXTERNAL_FUNCTION;
16use immutable::{COULD_BE_CONSTANT, COULD_BE_IMMUTABLE};
17use keccak::ASM_KECCAK256;
18use unused_state_variables::UNUSED_STATE_VARIABLES;
19use var_read_using_this::VAR_READ_USING_THIS;
20use write_after_write::WRITE_AFTER_WRITE;
21
22register_lints!(
23    (AsmKeccak256, late, (ASM_KECCAK256)),
24    (CacheArrayLength, late, (CACHE_ARRAY_LENGTH)),
25    (CostlyLoop, late, (COSTLY_LOOP)),
26    (CustomErrors, early, (CUSTOM_ERRORS)),
27    (UnchangedStateVariables, late, (COULD_BE_IMMUTABLE, COULD_BE_CONSTANT)),
28    (ExternalFunction, late, (EXTERNAL_FUNCTION)),
29    (UnusedStateVariables, late, (UNUSED_STATE_VARIABLES)),
30    (VarReadUsingThis, late, (VAR_READ_USING_THIS)),
31    (WriteAfterWrite, late, (WRITE_AFTER_WRITE)),
32);