Skip to main content
Version: 0.7

Detectors Overview

Built-in Detectors​

#DetectorSeverityRequires SouffléEnabled by default
1ArgCopyMutationHigh✔
2AsmIsUsedInfo
3BranchDuplicateHigh✔
4CellBoundsCritical✔
5ConstantAddressInfo
6DivideBeforeMultiplyHigh✔✔
7DumpIsUsedInfo
8DuplicatedConditionHigh✔
9EnsurePrgSeedMedium✔
10EtaLikeSimplificationsLow✔
11ExitCodeUsageHigh✔
12FalseConditionMedium✔
13FieldDoubleInitMedium✔
14InheritedStateMutationLow
15NeverAccessedVariablesMedium✔
16OptimalMathFunctionLow✔
17PreferAugmentedAssignInfo✔
18PreferredStdlibApiInfo
19ReadOnlyVariablesMedium✔✔
20SendInLoopMedium
21ShortCircuitConditionLow✔
22StateMutationInGetterInfo
23StringReceiversOverlapHigh✔
24SuspiciousLoopMedium✔
25SuspiciousMessageModeLow—Medium✔
26UnboundLoopHigh✔✔
27UnboundMapLow
28UnprotectedCallHigh✔
29UnusedExpressionResultMedium✔
30UnusedOptionalLow✔
31ZeroAddressLow✔

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.