clang-tools  10.0.0git
ReadabilityTidyModule.cpp
Go to the documentation of this file.
1 //===--- ReadabilityTidyModule.cpp - clang-tidy ---------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "../ClangTidy.h"
10 #include "../ClangTidyModule.h"
11 #include "../ClangTidyModuleRegistry.h"
14 #include "ConstReturnTypeCheck.h"
17 #include "DeleteNullPointerCheck.h"
18 #include "DeletedDefaultCheck.h"
19 #include "ElseAfterReturnCheck.h"
20 #include "FunctionSizeCheck.h"
21 #include "IdentifierNamingCheck.h"
25 #include "MagicNumbersCheck.h"
29 #include "NamedParameterCheck.h"
30 #include "NonConstParameterCheck.h"
31 #include "QualifiedAutoCheck.h"
45 #include "StringCompareCheck.h"
48 
49 namespace clang {
50 namespace tidy {
51 namespace readability {
52 
54 public:
55  void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
56  CheckFactories.registerCheck<AvoidConstParamsInDecls>(
57  "readability-avoid-const-params-in-decls");
59  "readability-braces-around-statements");
60  CheckFactories.registerCheck<ConstReturnTypeCheck>(
61  "readability-const-return-type");
62  CheckFactories.registerCheck<ContainerSizeEmptyCheck>(
63  "readability-container-size-empty");
65  "readability-convert-member-functions-to-static");
66  CheckFactories.registerCheck<DeleteNullPointerCheck>(
67  "readability-delete-null-pointer");
68  CheckFactories.registerCheck<DeletedDefaultCheck>(
69  "readability-deleted-default");
70  CheckFactories.registerCheck<ElseAfterReturnCheck>(
71  "readability-else-after-return");
72  CheckFactories.registerCheck<FunctionSizeCheck>(
73  "readability-function-size");
74  CheckFactories.registerCheck<IdentifierNamingCheck>(
75  "readability-identifier-naming");
77  "readability-implicit-bool-conversion");
79  "readability-inconsistent-declaration-parameter-name");
80  CheckFactories.registerCheck<IsolateDeclarationCheck>(
81  "readability-isolate-declaration");
82  CheckFactories.registerCheck<MagicNumbersCheck>(
83  "readability-magic-numbers");
85  "readability-make-member-function-const");
87  "readability-misleading-indentation");
89  "readability-misplaced-array-index");
90  CheckFactories.registerCheck<QualifiedAutoCheck>(
91  "readability-qualified-auto");
93  "readability-redundant-access-specifiers");
95  "readability-redundant-function-ptr-dereference");
97  "readability-redundant-member-init");
99  "readability-redundant-preprocessor");
101  "readability-simplify-subscript-expr");
103  "readability-static-accessed-through-instance");
105  "readability-static-definition-in-anonymous-namespace");
106  CheckFactories.registerCheck<StringCompareCheck>(
107  "readability-string-compare");
109  "readability-named-parameter");
110  CheckFactories.registerCheck<NonConstParameterCheck>(
111  "readability-non-const-parameter");
113  "readability-redundant-control-flow");
115  "readability-redundant-declaration");
117  "readability-redundant-smartptr-get");
118  CheckFactories.registerCheck<RedundantStringCStrCheck>(
119  "readability-redundant-string-cstr");
120  CheckFactories.registerCheck<RedundantStringInitCheck>(
121  "readability-redundant-string-init");
122  CheckFactories.registerCheck<SimplifyBooleanExprCheck>(
123  "readability-simplify-boolean-expr");
125  "readability-uniqueptr-delete-release");
127  "readability-uppercase-literal-suffix");
128  }
129 };
130 
131 // Register the ReadabilityModule using this statically initialized variable.
132 static ClangTidyModuleRegistry::Add<ReadabilityModule>
133  X("readability-module", "Adds readability-related checks.");
134 
135 } // namespace readability
136 
137 // This anchor is used to force the linker to link in the generated object file
138 // and thus register the ReadabilityModule.
140 
141 } // namespace tidy
142 } // namespace clang
Finds variables declared as auto that could be declared as: &#39;auto*&#39; or &#39;const auto *&#39; and reference v...
Detects when the integral literal or floating point literal has non-uppercase suffix, and suggests to make the suffix uppercase.
volatile int ReadabilityModuleAnchorSource
Finds member initializations that are unnecessary because the same default constructor would be calle...
Checks when a constructor or an assignment operator is marked as &#39;= default&#39; but is actually deleted ...
void registerCheck(StringRef CheckName)
Registers the CheckType with the name Name.
Finds static function and variable definitions in anonymous namespace.
Check whether the &#39;if&#39; statement is unnecessary before calling &#39;delete&#39; on a pointer.
Looks for boolean expressions involving boolean constants and simplifies them to use the appropriate ...
Checks whether a call to the size() method can be replaced with a call to empty().
A collection of ClangTidyCheckFactory instances.
Finds non-static member functions that can be made &#39;const&#39;.
Flags the usages of else after return.
static ClangTidyModuleRegistry::Add< ReadabilityModule > X("readability-module", "Adds readability-related checks.")
This check diagnoses all DeclStmt&#39;s declaring more than one variable and tries to refactor the code t...
Checks for large functions based on various metrics.
A clang-tidy module groups a number of ClangTidyChecks and gives them a prefixed name.
Warn when a pointer function parameter can be const.
Detects magic numbers, integer and floating point literals embedded in code.
This check flags redundant preprocessor directives: nested directives with the same condition...
Finds unnecessary string initializations.
Find and remove redundant calls to smart pointer&#39;s .get() method.
Warn about unusual array index syntax (index[array] instead of array[index]).
Checks for member expressions that access static members through instances and replaces them with use...
This check finds C++ class methods than can be made static because they don&#39;t use the &#39;this&#39; pointer...
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
Checks for use of implicit bool conversions in expressions.
Checks for declarations of functions which differ in parameter names.
Detects redundant access specifiers inside classes, structs, and unions.
Find functions with unnamed arguments.
This check flags all calls compare when used to check for string equality or inequality.
Flags statements of the form delete <unique_ptr expr>.release(); and replaces them with: <unique_ptr ...
Finds unnecessary calls to std::string::c_str().
For any function whose return type is const-qualified, suggests removal of the const qualifier from t...
Checks the code for dangling else, and possible misleading indentations due to missing braces...
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override
Implement this function in order to register all CheckFactories belonging to this module...
Checks that bodies of if statements and loops (for, range-for, do-while, and while) are inside braces...
Eliminates redundant return statements at the end of a function that returns void.
Checks for identifiers naming style mismatch.