Detectors Overview
Built-in Detectors
# | Detector | Severity | Requires Soufflé | Enabled by default |
---|---|---|---|---|
1 | ArgCopyMutation | High | ✔ | |
2 | AsmIsUsed | Info | ||
3 | BranchDuplicate | High | ✔ | |
4 | CellBounds | Critical | ✔ | |
5 | ConstantAddress | Info | ||
6 | DivideBeforeMultiply | High | ✔ | ✔ |
7 | DumpIsUsed | Info | ||
8 | DuplicatedCondition | High | ✔ | |
9 | EnsurePrgSeed | Medium | ✔ | |
10 | EtaLikeSimplifications | Low | ✔ | |
11 | ExitCodeUsage | High | ✔ | |
12 | FalseCondition | Medium | ✔ | |
13 | FieldDoubleInit | Medium | ✔ | |
14 | InheritedStateMutation | Low | ||
15 | NeverAccessedVariables | Medium | ✔ | |
16 | OptimalMathFunction | Low | ✔ | |
17 | PreferAugmentedAssign | Info | ✔ | |
18 | PreferredStdlibApi | Info | ||
19 | ReadOnlyVariables | Medium | ✔ | ✔ |
20 | SendInLoop | Medium | ||
21 | ShortCircuitCondition | Low | ✔ | |
22 | StringReceiversOverlap | High | ✔ | |
23 | SuspiciousMessageMode | Medium | ✔ | |
24 | UnboundLoop | High | ✔ | ✔ |
25 | UnboundMap | Low | ||
26 | UnusedExpressionResult | Medium | ✔ | |
27 | UnusedOptional | Low | ✔ | |
28 | ZeroAddress | Low | ✔ |
Some of the detectors require Soufflé to be installed. If no Soufflé installation is found, these detectors won't be executed.
A few detectors are optional and aimed at auditors to help uncover subtle issues in the source code. To enable all detectors, use the --all-detectors
option. You can find a full list of configuration options on the configuration page.
Each detector targets a specific type of problem in your code. Click on the detector name to learn more.