clang-tools
15.0.0git
|
Finds function definitions where parameters of convertible types follow each other directly, making call sites prone to calling the function with swapped (or badly ordered) arguments. More...
#include <EasilySwappableParametersCheck.h>
Public Member Functions | |
EasilySwappableParametersCheck (StringRef Name, ClangTidyContext *Context) | |
void | registerMatchers (ast_matchers::MatchFinder *Finder) override |
Override this to register AST matchers with Finder . More... | |
void | check (const ast_matchers::MatchFinder::MatchResult &Result) override |
ClangTidyChecks that register ASTMatchers should do the actual work in here. More... | |
void | storeOptions (ClangTidyOptions::OptionMap &Opts) override |
Should store all options supported by this check with their current values or default values for options that haven't been overridden. More... | |
![]() | |
ClangTidyCheck (StringRef CheckName, ClangTidyContext *Context) | |
Initializes the check with CheckName and Context . More... | |
virtual bool | isLanguageVersionSupported (const LangOptions &LangOpts) const |
Override this to disable registering matchers and PP callbacks if an invalid language version is being used. More... | |
virtual void | registerPPCallbacks (const SourceManager &SM, Preprocessor *PP, Preprocessor *ModuleExpanderPP) |
Override this to register PPCallbacks in the preprocessor. More... | |
DiagnosticBuilder | diag (SourceLocation Loc, StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning) |
Add a diagnostic with the check's name. More... | |
DiagnosticBuilder | diag (StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning) |
Add a diagnostic with the check's name. More... | |
DiagnosticBuilder | configurationDiag (StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning) const |
Adds a diagnostic to report errors in the check's configuration. More... | |
Public Attributes | |
const std::size_t | MinimumLength |
The minimum length of an adjacent swappable parameter range required for a diagnostic. More... | |
const std::vector< StringRef > | IgnoredParameterNames |
The parameter names (as written in the source text) to be ignored. More... | |
const std::vector< StringRef > | IgnoredParameterTypeSuffixes |
The parameter typename suffixes (as written in the source code) to be ignored. More... | |
const bool | QualifiersMix |
Whether to consider differently qualified versions of the same type mixable. More... | |
const bool | ModelImplicitConversions |
Whether to model implicit conversions "in full" (conditions apply) during analysis and consider types that are implicitly convertible to one another mixable. More... | |
const bool | SuppressParametersUsedTogether |
If enabled, diagnostics for parameters that are used together in a similar way are not emitted. More... | |
const std::size_t | NamePrefixSuffixSilenceDissimilarityTreshold |
The number of characters two parameter names might be dissimilar at either end for the report about the parameters to be silenced. More... | |
Additional Inherited Members | |
![]() | |
StringRef | getCurrentMainFile () const |
Returns the main file name of the current translation unit. More... | |
const LangOptions & | getLangOpts () const |
Returns the language options from the context. More... | |
bool | areDiagsSelfContained () const |
Returns true when the check is run in a use case when only 1 fix will be applied at a time. More... | |
![]() | |
OptionsView | Options |
Finds function definitions where parameters of convertible types follow each other directly, making call sites prone to calling the function with swapped (or badly ordered) arguments.
For the user-facing documentation see: http://clang.llvm.org/extra/clang-tidy/checks/bugprone-easily-swappable-parameters.html
Definition at line 24 of file EasilySwappableParametersCheck.h.
clang::tidy::bugprone::EasilySwappableParametersCheck::EasilySwappableParametersCheck | ( | StringRef | Name, |
ClangTidyContext * | Context | ||
) |
Definition at line 2086 of file EasilySwappableParametersCheck.cpp.
|
overridevirtual |
ClangTidyChecks
that register ASTMatchers should do the actual work in here.
Reimplemented from clang::tidy::ClangTidyCheck.
Definition at line 2139 of file EasilySwappableParametersCheck.cpp.
|
overridevirtual |
Override this to register AST matchers with Finder
.
This should be used by clang-tidy checks that analyze code properties that dependent on AST knowledge.
You can register as many matchers as necessary with Finder
. Usually, "this" will be used as callback, but you can also specify other callback classes. Thereby, different matchers can trigger different callbacks.
This will only be executed if the function isLanguageVersionSupported returns true.
If you need to merge information between the different matchers, you can store these as members of the derived class. However, note that all matches occur in the order of the AST traversal.
Reimplemented from clang::tidy::ClangTidyCheck.
Definition at line 2121 of file EasilySwappableParametersCheck.cpp.
|
overridevirtual |
Should store all options supported by this check with their current values or default values for options that haven't been overridden.
The check should use Options.store()
to store each option it supports whether it has the default value or it has been overridden.
Reimplemented from clang::tidy::ClangTidyCheck.
Definition at line 2106 of file EasilySwappableParametersCheck.cpp.
const std::vector<StringRef> clang::tidy::bugprone::EasilySwappableParametersCheck::IgnoredParameterNames |
The parameter names (as written in the source text) to be ignored.
Definition at line 36 of file EasilySwappableParametersCheck.h.
const std::vector<StringRef> clang::tidy::bugprone::EasilySwappableParametersCheck::IgnoredParameterTypeSuffixes |
The parameter typename suffixes (as written in the source code) to be ignored.
Definition at line 40 of file EasilySwappableParametersCheck.h.
const std::size_t clang::tidy::bugprone::EasilySwappableParametersCheck::MinimumLength |
The minimum length of an adjacent swappable parameter range required for a diagnostic.
Definition at line 33 of file EasilySwappableParametersCheck.h.
const bool clang::tidy::bugprone::EasilySwappableParametersCheck::ModelImplicitConversions |
Whether to model implicit conversions "in full" (conditions apply) during analysis and consider types that are implicitly convertible to one another mixable.
Definition at line 49 of file EasilySwappableParametersCheck.h.
const std::size_t clang::tidy::bugprone::EasilySwappableParametersCheck::NamePrefixSuffixSilenceDissimilarityTreshold |
The number of characters two parameter names might be dissimilar at either end for the report about the parameters to be silenced.
E.g. the names "LHS" and "RHS" are 1-dissimilar suffixes of each other, while "Text1" and "Text2" are 1-dissimilar prefixes of each other.
Definition at line 59 of file EasilySwappableParametersCheck.h.
const bool clang::tidy::bugprone::EasilySwappableParametersCheck::QualifiersMix |
Whether to consider differently qualified versions of the same type mixable.
Definition at line 44 of file EasilySwappableParametersCheck.h.
const bool clang::tidy::bugprone::EasilySwappableParametersCheck::SuppressParametersUsedTogether |
If enabled, diagnostics for parameters that are used together in a similar way are not emitted.
Definition at line 53 of file EasilySwappableParametersCheck.h.