-
Notifications
You must be signed in to change notification settings - Fork 14.9k
[clang-tidy][NFC] Enable readability-convert-member-functions-to-static
in the codebase
#156265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…tic` in the codebase
@llvm/pr-subscribers-clang-tidy Author: Victor Chernyakin (localspook) ChangesCloses #156158. Ironically, one warning found in Patch is 35.14 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/156265.diff 30 Files Affected:
diff --git a/clang-tools-extra/clang-tidy/.clang-tidy b/clang-tools-extra/clang-tidy/.clang-tidy
index 22a4bd7d80618..9affdcf32c485 100644
--- a/clang-tools-extra/clang-tidy/.clang-tidy
+++ b/clang-tools-extra/clang-tidy/.clang-tidy
@@ -23,7 +23,6 @@ Checks: >
-readability-avoid-nested-conditional-operator,
-readability-braces-around-statements,
-readability-container-contains,
- -readability-convert-member-functions-to-static,
-readability-else-after-return,
-readability-function-cognitive-complexity,
-readability-identifier-length,
diff --git a/clang-tools-extra/clang-tidy/ClangTidyProfiling.h b/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
index 76deede1716f4..8af414eb7e2b2 100644
--- a/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
+++ b/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
@@ -36,7 +36,8 @@ class ClangTidyProfiling {
private:
std::optional<StorageParams> Storage;
- void printUserFriendlyTable(llvm::raw_ostream &OS, llvm::TimerGroup &TG);
+ static void printUserFriendlyTable(llvm::raw_ostream &OS,
+ llvm::TimerGroup &TG);
void printAsJSON(llvm::raw_ostream &OS, llvm::TimerGroup &TG);
void storeProfileData(llvm::TimerGroup &TG);
diff --git a/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp b/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
index 5e705f720c86e..06721dd4f900e 100644
--- a/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
+++ b/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
@@ -51,7 +51,7 @@ class ExpandModularHeadersPPCallbacks::FileRecorder {
/// Makes sure we have contents for all the files we were interested in.
/// Ideally `FilesToRecord` should be empty.
- void checkAllFilesRecorded() {
+ static void checkAllFilesRecorded() {
LLVM_DEBUG({
for (auto FileEntry : FilesToRecord)
llvm::dbgs() << "Did not record contents for input file: "
diff --git a/clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.h b/clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.h
index cf964a2d5d6f6..07821c81b75f5 100644
--- a/clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.h
+++ b/clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.h
@@ -65,7 +65,7 @@ class IdDependentBackwardBranchCheck : public ClangTidyCheck {
const MemberExpr *MemExpr,
const FieldDecl *PotentialField);
/// Returns the loop type.
- LoopType getLoopType(const Stmt *Loop);
+ static LoopType getLoopType(const Stmt *Loop);
public:
IdDependentBackwardBranchCheck(StringRef Name, ClangTidyContext *Context)
diff --git a/clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp b/clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp
index a94d6c8d7c4e6..bf41563e6ab01 100644
--- a/clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp
+++ b/clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp
@@ -37,7 +37,7 @@ class KernelNameRestrictionPPCallbacks : public PPCallbacks {
private:
/// Returns true if the name of the file with path FileName is 'kernel.cl',
/// 'verilog.cl', or 'vhdl.cl'. The file name check is case insensitive.
- bool fileNameIsRestricted(StringRef FileName);
+ static bool fileNameIsRestricted(StringRef FileName);
struct IncludeDirective {
SourceLocation Loc; // Location in the include directive.
diff --git a/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.h b/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.h
index 0d8306e8437b7..ffc6808ab9daf 100644
--- a/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.h
+++ b/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.h
@@ -44,8 +44,8 @@ class UnrollLoopsCheck : public ClangTidyCheck {
/// Attempts to extract an integer value from either side of the
/// BinaryOperator. Returns true and saves the result to &value if successful,
/// returns false otherwise.
- bool extractValue(int &Value, const BinaryOperator *Op,
- const ASTContext *Context);
+ static bool extractValue(int &Value, const BinaryOperator *Op,
+ const ASTContext *Context);
/// Returns true if the given loop statement has a large number of iterations,
/// as determined by the integer value in the loop's condition expression,
/// if one exists.
@@ -59,13 +59,14 @@ class UnrollLoopsCheck : public ClangTidyCheck {
const ASTContext *Context) const;
/// Returns the type of unrolling, if any, associated with the given
/// statement.
- enum UnrollType unrollType(const Stmt *Statement, ASTContext *Context);
+ static enum UnrollType unrollType(const Stmt *Statement, ASTContext *Context);
/// Returns the condition expression within a given for statement. If there is
/// none, or if the Statement is not a loop, then returns a NULL pointer.
- const Expr *getCondExpr(const Stmt *Statement);
+ static const Expr *getCondExpr(const Stmt *Statement);
/// Returns True if the loop statement has known bounds.
- bool hasKnownBounds(const Stmt *Statement, const IntegerLiteral *CXXLoopBound,
- const ASTContext *Context);
+ static bool hasKnownBounds(const Stmt *Statement,
+ const IntegerLiteral *CXXLoopBound,
+ const ASTContext *Context);
void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
};
diff --git a/clang-tools-extra/clang-tidy/android/CloexecCheck.cpp b/clang-tools-extra/clang-tidy/android/CloexecCheck.cpp
index f4d657a7f4e90..c9383cad51159 100644
--- a/clang-tools-extra/clang-tidy/android/CloexecCheck.cpp
+++ b/clang-tools-extra/clang-tidy/android/CloexecCheck.cpp
@@ -98,7 +98,7 @@ void CloexecCheck::insertStringFlag(
}
StringRef CloexecCheck::getSpellingArg(const MatchFinder::MatchResult &Result,
- int N) const {
+ int N) {
const auto *MatchedCall = Result.Nodes.getNodeAs<CallExpr>(FuncBindingStr);
const SourceManager &SM = *Result.SourceManager;
return Lexer::getSourceText(
diff --git a/clang-tools-extra/clang-tidy/android/CloexecCheck.h b/clang-tools-extra/clang-tidy/android/CloexecCheck.h
index edbff70fbd33e..44e846e68dc9c 100644
--- a/clang-tools-extra/clang-tidy/android/CloexecCheck.h
+++ b/clang-tools-extra/clang-tidy/android/CloexecCheck.h
@@ -85,8 +85,8 @@ class CloexecCheck : public ClangTidyCheck {
const char Mode, const int ArgPos);
/// Helper function to get the spelling of a particular argument.
- StringRef getSpellingArg(const ast_matchers::MatchFinder::MatchResult &Result,
- int N) const;
+ static StringRef
+ getSpellingArg(const ast_matchers::MatchFinder::MatchResult &Result, int N);
/// Binding name of the FuncDecl of a function call.
static const char *FuncDeclBindingStr;
diff --git a/clang-tools-extra/clang-tidy/bugprone/AssignmentInIfConditionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/AssignmentInIfConditionCheck.cpp
index e03cac6c5fd83..5d0f6b6fd8364 100644
--- a/clang-tools-extra/clang-tidy/bugprone/AssignmentInIfConditionCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/AssignmentInIfConditionCheck.cpp
@@ -35,13 +35,14 @@ void AssignmentInIfConditionCheck::check(
: Check(Check) {}
// Dont traverse into any lambda expressions.
- bool TraverseLambdaExpr(LambdaExpr *, DataRecursionQueue * = nullptr) {
+ static bool TraverseLambdaExpr(LambdaExpr *,
+ DataRecursionQueue * = nullptr) {
return true;
}
// Dont traverse into any requires expressions.
- bool TraverseRequiresExpr(RequiresExpr *,
- DataRecursionQueue * = nullptr) {
+ static bool TraverseRequiresExpr(RequiresExpr *,
+ DataRecursionQueue * = nullptr) {
return true;
}
diff --git a/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
index a6cd68edda55e..2a142c9cdb27a 100644
--- a/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
@@ -50,28 +50,32 @@ static bool isFallthroughSwitchBranch(const SwitchBranch &Branch) {
struct SwitchCaseVisitor : RecursiveASTVisitor<SwitchCaseVisitor> {
using RecursiveASTVisitor<SwitchCaseVisitor>::DataRecursionQueue;
- bool TraverseLambdaExpr(LambdaExpr *, DataRecursionQueue * = nullptr) {
+ static bool TraverseLambdaExpr(LambdaExpr *,
+ DataRecursionQueue * = nullptr) {
return true; // Ignore lambdas
}
- bool TraverseDecl(Decl *) {
+ static bool TraverseDecl(Decl *) {
return true; // No need to check declarations
}
- bool TraverseSwitchStmt(SwitchStmt *, DataRecursionQueue * = nullptr) {
+ static bool TraverseSwitchStmt(SwitchStmt *,
+ DataRecursionQueue * = nullptr) {
return true; // Ignore sub-switches
}
// NOLINTNEXTLINE(readability-identifier-naming) - FIXME
- bool TraverseSwitchCase(SwitchCase *, DataRecursionQueue * = nullptr) {
+ static bool TraverseSwitchCase(SwitchCase *,
+ DataRecursionQueue * = nullptr) {
return true; // Ignore cases
}
- bool TraverseDefaultStmt(DefaultStmt *, DataRecursionQueue * = nullptr) {
+ static bool TraverseDefaultStmt(DefaultStmt *,
+ DataRecursionQueue * = nullptr) {
return true; // Ignore defaults
}
- bool TraverseAttributedStmt(AttributedStmt *S) {
+ static bool TraverseAttributedStmt(AttributedStmt *S) {
if (!S)
return true;
diff --git a/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp
index 879040177079a..74968d3a37e09 100644
--- a/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp
@@ -32,7 +32,7 @@ class MacroRepeatedPPCallbacks : public PPCallbacks {
unsigned countArgumentExpansions(const MacroInfo *MI,
const IdentifierInfo *Arg) const;
- bool hasSideEffects(const Token *ResultArgToks) const;
+ static bool hasSideEffects(const Token *ResultArgToks);
};
} // End of anonymous namespace.
@@ -159,8 +159,7 @@ unsigned MacroRepeatedPPCallbacks::countArgumentExpansions(
return Max;
}
-bool MacroRepeatedPPCallbacks::hasSideEffects(
- const Token *ResultArgToks) const {
+bool MacroRepeatedPPCallbacks::hasSideEffects(const Token *ResultArgToks) {
for (; ResultArgToks->isNot(tok::eof); ++ResultArgToks) {
if (ResultArgToks->isOneOf(tok::plusplus, tok::minusminus))
return true;
diff --git a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
index 0302a5ad4957c..486aabb61b061 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
+++ b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
@@ -47,7 +47,7 @@ bool MultipleInheritanceCheck::getInterfaceStatus(const CXXRecordDecl *Node,
}
bool MultipleInheritanceCheck::isCurrentClassInterface(
- const CXXRecordDecl *Node) const {
+ const CXXRecordDecl *Node) {
// Interfaces should have no fields.
if (!Node->field_empty())
return false;
diff --git a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
index be5942c9520ae..ed97ab1261a17 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
+++ b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
@@ -32,7 +32,7 @@ class MultipleInheritanceCheck : public ClangTidyCheck {
private:
void addNodeToInterfaceMap(const CXXRecordDecl *Node, bool IsInterface);
bool getInterfaceStatus(const CXXRecordDecl *Node, bool &IsInterface) const;
- bool isCurrentClassInterface(const CXXRecordDecl *Node) const;
+ static bool isCurrentClassInterface(const CXXRecordDecl *Node);
bool isInterface(const CXXRecordDecl *Node);
// Contains the identity of each named CXXRecord as an interface. This is
diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.h b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.h
index 7b378e016408a..f1c2568567661 100644
--- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.h
+++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.h
@@ -30,8 +30,8 @@ class StaticAssertCheck : public ClangTidyCheck {
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
private:
- SourceLocation getLastParenLoc(const ASTContext *ASTCtx,
- SourceLocation AssertLoc);
+ static SourceLocation getLastParenLoc(const ASTContext *ASTCtx,
+ SourceLocation AssertLoc);
};
} // namespace clang::tidy::misc
diff --git a/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.h b/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.h
index e3cc4c5e6cd41..cec2fbb798f2f 100644
--- a/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.h
+++ b/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.h
@@ -38,8 +38,8 @@ class ThrowByValueCatchByReferenceCheck : public ClangTidyCheck {
void diagnoseThrowLocations(const CXXThrowExpr *ThrowExpr);
void diagnoseCatchLocations(const CXXCatchStmt *CatchStmt,
ASTContext &Context);
- bool isFunctionParameter(const DeclRefExpr *DeclRefExpr);
- bool isCatchVariable(const DeclRefExpr *DeclRefExpr);
+ static bool isFunctionParameter(const DeclRefExpr *DeclRefExpr);
+ static bool isCatchVariable(const DeclRefExpr *DeclRefExpr);
bool isFunctionOrCatchVar(const DeclRefExpr *DeclRefExpr);
const bool CheckAnonymousTemporaries;
const bool WarnOnLargeObject;
diff --git a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
index 737551637ea9e..9721d79fec4d4 100644
--- a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
@@ -99,7 +99,7 @@ class UnusedParametersCheck::IndexerVisitor
return Index[Fn->getCanonicalDecl()].OtherRefs;
}
- bool shouldTraversePostOrder() const { return true; }
+ static bool shouldTraversePostOrder() { return true; }
bool WalkUpFromDeclRefExpr(DeclRefExpr *DeclRef) {
if (const auto *Fn = dyn_cast<FunctionDecl>(DeclRef->getDecl())) {
diff --git a/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp b/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
index 35a062382ea3c..bbd80d490d1a7 100644
--- a/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
@@ -53,8 +53,8 @@ class ExternCRefutationVisitor
ExternCRefutationVisitor(std::vector<IncludeMarker> &IncludesToBeProcessed,
SourceManager &SM)
: IncludesToBeProcessed(IncludesToBeProcessed), SM(SM) {}
- bool shouldWalkTypesOfTypeLocs() const { return false; }
- bool shouldVisitLambdaBody() const { return false; }
+ static bool shouldWalkTypesOfTypeLocs() { return false; }
+ static bool shouldVisitLambdaBody() { return false; }
bool VisitLinkageSpecDecl(LinkageSpecDecl *LinkSpecDecl) const {
if (LinkSpecDecl->getLanguage() != LinkageSpecLanguageIDs::C ||
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
index b4f729d3ac538..6ad406b49b758 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
@@ -38,7 +38,7 @@ class LoopConvertCheck : public ClangTidyCheck {
bool NeedsReverseCall = false;
};
- void getAliasRange(SourceManager &SM, SourceRange &DeclRange);
+ static void getAliasRange(SourceManager &SM, SourceRange &DeclRange);
void doConversion(ASTContext *Context, const VarDecl *IndexVar,
const ValueDecl *MaybeContainer, const UsageResult &Usages,
@@ -46,18 +46,18 @@ class LoopConvertCheck : public ClangTidyCheck {
bool AliasFromForInit, const ForStmt *Loop,
RangeDescriptor Descriptor);
- StringRef getContainerString(ASTContext *Context, const ForStmt *Loop,
- const Expr *ContainerExpr);
+ static StringRef getContainerString(ASTContext *Context, const ForStmt *Loop,
+ const Expr *ContainerExpr);
- void getArrayLoopQualifiers(ASTContext *Context,
- const ast_matchers::BoundNodes &Nodes,
- const Expr *ContainerExpr,
- const UsageResult &Usages,
- RangeDescriptor &Descriptor);
+ static void getArrayLoopQualifiers(ASTContext *Context,
+ const ast_matchers::BoundNodes &Nodes,
+ const Expr *ContainerExpr,
+ const UsageResult &Usages,
+ RangeDescriptor &Descriptor);
- void getIteratorLoopQualifiers(ASTContext *Context,
- const ast_matchers::BoundNodes &Nodes,
- RangeDescriptor &Descriptor);
+ static void getIteratorLoopQualifiers(ASTContext *Context,
+ const ast_matchers::BoundNodes &Nodes,
+ RangeDescriptor &Descriptor);
void determineRangeDescriptor(ASTContext *Context,
const ast_matchers::BoundNodes &Nodes,
diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
index 934cc24817d73..32ac93c243fe5 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
@@ -80,12 +80,13 @@ AST_MATCHER_P(clang::Expr, anyOfExhaustive, std::vector<Matcher<clang::Stmt>>,
// the literal of every constant and for formulas' subexpressions that look at
// literals.
struct MatchBuilder {
- auto
- ignoreParenAndArithmeticCasting(const Matcher<clang::Expr> Matcher) const {
+ static auto
+ ignoreParenAndArithmeticCasting(const Matcher<clang::Expr> Matcher) {
return expr(hasType(qualType(isArithmetic())), ignoringParenCasts(Matcher));
}
- auto ignoreParenAndFloatingCasting(const Matcher<clang::Expr> Matcher) const {
+ static auto
+ ignoreParenAndFloatingCasting(const Matcher<clang::Expr> Matcher) {
return expr(hasType(qualType(isFloating())), ignoringParenCasts(Matcher));
}
diff --git a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
index 82f64096cbec1..c5f75b28aff44 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
@@ -51,7 +51,7 @@ struct UnqualNameVisitor : public RecursiveASTVisitor<UnqualNameVisitor> {
bool Collision = false;
- bool shouldWalkTypesOfTypeLocs() const { return false; }
+ static bool shouldWalkTypesOfTypeLocs() { return false; }
bool visitUnqualName(StringRef UnqualName) {
// Check for collisions with function arguments.
diff --git a/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h b/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h
index 38f756f9b452f..79a33e129ee9c 100644
--- a/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h
+++ b/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h
@@ -56,7 +56,8 @@ class UnnecessaryCopyI...
[truncated]
|
@llvm/pr-subscribers-clang-tools-extra Author: Victor Chernyakin (localspook) ChangesCloses #156158. Ironically, one warning found in Patch is 35.14 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/156265.diff 30 Files Affected:
diff --git a/clang-tools-extra/clang-tidy/.clang-tidy b/clang-tools-extra/clang-tidy/.clang-tidy
index 22a4bd7d80618..9affdcf32c485 100644
--- a/clang-tools-extra/clang-tidy/.clang-tidy
+++ b/clang-tools-extra/clang-tidy/.clang-tidy
@@ -23,7 +23,6 @@ Checks: >
-readability-avoid-nested-conditional-operator,
-readability-braces-around-statements,
-readability-container-contains,
- -readability-convert-member-functions-to-static,
-readability-else-after-return,
-readability-function-cognitive-complexity,
-readability-identifier-length,
diff --git a/clang-tools-extra/clang-tidy/ClangTidyProfiling.h b/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
index 76deede1716f4..8af414eb7e2b2 100644
--- a/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
+++ b/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
@@ -36,7 +36,8 @@ class ClangTidyProfiling {
private:
std::optional<StorageParams> Storage;
- void printUserFriendlyTable(llvm::raw_ostream &OS, llvm::TimerGroup &TG);
+ static void printUserFriendlyTable(llvm::raw_ostream &OS,
+ llvm::TimerGroup &TG);
void printAsJSON(llvm::raw_ostream &OS, llvm::TimerGroup &TG);
void storeProfileData(llvm::TimerGroup &TG);
diff --git a/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp b/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
index 5e705f720c86e..06721dd4f900e 100644
--- a/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
+++ b/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
@@ -51,7 +51,7 @@ class ExpandModularHeadersPPCallbacks::FileRecorder {
/// Makes sure we have contents for all the files we were interested in.
/// Ideally `FilesToRecord` should be empty.
- void checkAllFilesRecorded() {
+ static void checkAllFilesRecorded() {
LLVM_DEBUG({
for (auto FileEntry : FilesToRecord)
llvm::dbgs() << "Did not record contents for input file: "
diff --git a/clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.h b/clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.h
index cf964a2d5d6f6..07821c81b75f5 100644
--- a/clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.h
+++ b/clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.h
@@ -65,7 +65,7 @@ class IdDependentBackwardBranchCheck : public ClangTidyCheck {
const MemberExpr *MemExpr,
const FieldDecl *PotentialField);
/// Returns the loop type.
- LoopType getLoopType(const Stmt *Loop);
+ static LoopType getLoopType(const Stmt *Loop);
public:
IdDependentBackwardBranchCheck(StringRef Name, ClangTidyContext *Context)
diff --git a/clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp b/clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp
index a94d6c8d7c4e6..bf41563e6ab01 100644
--- a/clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp
+++ b/clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp
@@ -37,7 +37,7 @@ class KernelNameRestrictionPPCallbacks : public PPCallbacks {
private:
/// Returns true if the name of the file with path FileName is 'kernel.cl',
/// 'verilog.cl', or 'vhdl.cl'. The file name check is case insensitive.
- bool fileNameIsRestricted(StringRef FileName);
+ static bool fileNameIsRestricted(StringRef FileName);
struct IncludeDirective {
SourceLocation Loc; // Location in the include directive.
diff --git a/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.h b/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.h
index 0d8306e8437b7..ffc6808ab9daf 100644
--- a/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.h
+++ b/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.h
@@ -44,8 +44,8 @@ class UnrollLoopsCheck : public ClangTidyCheck {
/// Attempts to extract an integer value from either side of the
/// BinaryOperator. Returns true and saves the result to &value if successful,
/// returns false otherwise.
- bool extractValue(int &Value, const BinaryOperator *Op,
- const ASTContext *Context);
+ static bool extractValue(int &Value, const BinaryOperator *Op,
+ const ASTContext *Context);
/// Returns true if the given loop statement has a large number of iterations,
/// as determined by the integer value in the loop's condition expression,
/// if one exists.
@@ -59,13 +59,14 @@ class UnrollLoopsCheck : public ClangTidyCheck {
const ASTContext *Context) const;
/// Returns the type of unrolling, if any, associated with the given
/// statement.
- enum UnrollType unrollType(const Stmt *Statement, ASTContext *Context);
+ static enum UnrollType unrollType(const Stmt *Statement, ASTContext *Context);
/// Returns the condition expression within a given for statement. If there is
/// none, or if the Statement is not a loop, then returns a NULL pointer.
- const Expr *getCondExpr(const Stmt *Statement);
+ static const Expr *getCondExpr(const Stmt *Statement);
/// Returns True if the loop statement has known bounds.
- bool hasKnownBounds(const Stmt *Statement, const IntegerLiteral *CXXLoopBound,
- const ASTContext *Context);
+ static bool hasKnownBounds(const Stmt *Statement,
+ const IntegerLiteral *CXXLoopBound,
+ const ASTContext *Context);
void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
};
diff --git a/clang-tools-extra/clang-tidy/android/CloexecCheck.cpp b/clang-tools-extra/clang-tidy/android/CloexecCheck.cpp
index f4d657a7f4e90..c9383cad51159 100644
--- a/clang-tools-extra/clang-tidy/android/CloexecCheck.cpp
+++ b/clang-tools-extra/clang-tidy/android/CloexecCheck.cpp
@@ -98,7 +98,7 @@ void CloexecCheck::insertStringFlag(
}
StringRef CloexecCheck::getSpellingArg(const MatchFinder::MatchResult &Result,
- int N) const {
+ int N) {
const auto *MatchedCall = Result.Nodes.getNodeAs<CallExpr>(FuncBindingStr);
const SourceManager &SM = *Result.SourceManager;
return Lexer::getSourceText(
diff --git a/clang-tools-extra/clang-tidy/android/CloexecCheck.h b/clang-tools-extra/clang-tidy/android/CloexecCheck.h
index edbff70fbd33e..44e846e68dc9c 100644
--- a/clang-tools-extra/clang-tidy/android/CloexecCheck.h
+++ b/clang-tools-extra/clang-tidy/android/CloexecCheck.h
@@ -85,8 +85,8 @@ class CloexecCheck : public ClangTidyCheck {
const char Mode, const int ArgPos);
/// Helper function to get the spelling of a particular argument.
- StringRef getSpellingArg(const ast_matchers::MatchFinder::MatchResult &Result,
- int N) const;
+ static StringRef
+ getSpellingArg(const ast_matchers::MatchFinder::MatchResult &Result, int N);
/// Binding name of the FuncDecl of a function call.
static const char *FuncDeclBindingStr;
diff --git a/clang-tools-extra/clang-tidy/bugprone/AssignmentInIfConditionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/AssignmentInIfConditionCheck.cpp
index e03cac6c5fd83..5d0f6b6fd8364 100644
--- a/clang-tools-extra/clang-tidy/bugprone/AssignmentInIfConditionCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/AssignmentInIfConditionCheck.cpp
@@ -35,13 +35,14 @@ void AssignmentInIfConditionCheck::check(
: Check(Check) {}
// Dont traverse into any lambda expressions.
- bool TraverseLambdaExpr(LambdaExpr *, DataRecursionQueue * = nullptr) {
+ static bool TraverseLambdaExpr(LambdaExpr *,
+ DataRecursionQueue * = nullptr) {
return true;
}
// Dont traverse into any requires expressions.
- bool TraverseRequiresExpr(RequiresExpr *,
- DataRecursionQueue * = nullptr) {
+ static bool TraverseRequiresExpr(RequiresExpr *,
+ DataRecursionQueue * = nullptr) {
return true;
}
diff --git a/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
index a6cd68edda55e..2a142c9cdb27a 100644
--- a/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
@@ -50,28 +50,32 @@ static bool isFallthroughSwitchBranch(const SwitchBranch &Branch) {
struct SwitchCaseVisitor : RecursiveASTVisitor<SwitchCaseVisitor> {
using RecursiveASTVisitor<SwitchCaseVisitor>::DataRecursionQueue;
- bool TraverseLambdaExpr(LambdaExpr *, DataRecursionQueue * = nullptr) {
+ static bool TraverseLambdaExpr(LambdaExpr *,
+ DataRecursionQueue * = nullptr) {
return true; // Ignore lambdas
}
- bool TraverseDecl(Decl *) {
+ static bool TraverseDecl(Decl *) {
return true; // No need to check declarations
}
- bool TraverseSwitchStmt(SwitchStmt *, DataRecursionQueue * = nullptr) {
+ static bool TraverseSwitchStmt(SwitchStmt *,
+ DataRecursionQueue * = nullptr) {
return true; // Ignore sub-switches
}
// NOLINTNEXTLINE(readability-identifier-naming) - FIXME
- bool TraverseSwitchCase(SwitchCase *, DataRecursionQueue * = nullptr) {
+ static bool TraverseSwitchCase(SwitchCase *,
+ DataRecursionQueue * = nullptr) {
return true; // Ignore cases
}
- bool TraverseDefaultStmt(DefaultStmt *, DataRecursionQueue * = nullptr) {
+ static bool TraverseDefaultStmt(DefaultStmt *,
+ DataRecursionQueue * = nullptr) {
return true; // Ignore defaults
}
- bool TraverseAttributedStmt(AttributedStmt *S) {
+ static bool TraverseAttributedStmt(AttributedStmt *S) {
if (!S)
return true;
diff --git a/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp
index 879040177079a..74968d3a37e09 100644
--- a/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp
@@ -32,7 +32,7 @@ class MacroRepeatedPPCallbacks : public PPCallbacks {
unsigned countArgumentExpansions(const MacroInfo *MI,
const IdentifierInfo *Arg) const;
- bool hasSideEffects(const Token *ResultArgToks) const;
+ static bool hasSideEffects(const Token *ResultArgToks);
};
} // End of anonymous namespace.
@@ -159,8 +159,7 @@ unsigned MacroRepeatedPPCallbacks::countArgumentExpansions(
return Max;
}
-bool MacroRepeatedPPCallbacks::hasSideEffects(
- const Token *ResultArgToks) const {
+bool MacroRepeatedPPCallbacks::hasSideEffects(const Token *ResultArgToks) {
for (; ResultArgToks->isNot(tok::eof); ++ResultArgToks) {
if (ResultArgToks->isOneOf(tok::plusplus, tok::minusminus))
return true;
diff --git a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
index 0302a5ad4957c..486aabb61b061 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
+++ b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
@@ -47,7 +47,7 @@ bool MultipleInheritanceCheck::getInterfaceStatus(const CXXRecordDecl *Node,
}
bool MultipleInheritanceCheck::isCurrentClassInterface(
- const CXXRecordDecl *Node) const {
+ const CXXRecordDecl *Node) {
// Interfaces should have no fields.
if (!Node->field_empty())
return false;
diff --git a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
index be5942c9520ae..ed97ab1261a17 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
+++ b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
@@ -32,7 +32,7 @@ class MultipleInheritanceCheck : public ClangTidyCheck {
private:
void addNodeToInterfaceMap(const CXXRecordDecl *Node, bool IsInterface);
bool getInterfaceStatus(const CXXRecordDecl *Node, bool &IsInterface) const;
- bool isCurrentClassInterface(const CXXRecordDecl *Node) const;
+ static bool isCurrentClassInterface(const CXXRecordDecl *Node);
bool isInterface(const CXXRecordDecl *Node);
// Contains the identity of each named CXXRecord as an interface. This is
diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.h b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.h
index 7b378e016408a..f1c2568567661 100644
--- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.h
+++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.h
@@ -30,8 +30,8 @@ class StaticAssertCheck : public ClangTidyCheck {
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
private:
- SourceLocation getLastParenLoc(const ASTContext *ASTCtx,
- SourceLocation AssertLoc);
+ static SourceLocation getLastParenLoc(const ASTContext *ASTCtx,
+ SourceLocation AssertLoc);
};
} // namespace clang::tidy::misc
diff --git a/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.h b/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.h
index e3cc4c5e6cd41..cec2fbb798f2f 100644
--- a/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.h
+++ b/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.h
@@ -38,8 +38,8 @@ class ThrowByValueCatchByReferenceCheck : public ClangTidyCheck {
void diagnoseThrowLocations(const CXXThrowExpr *ThrowExpr);
void diagnoseCatchLocations(const CXXCatchStmt *CatchStmt,
ASTContext &Context);
- bool isFunctionParameter(const DeclRefExpr *DeclRefExpr);
- bool isCatchVariable(const DeclRefExpr *DeclRefExpr);
+ static bool isFunctionParameter(const DeclRefExpr *DeclRefExpr);
+ static bool isCatchVariable(const DeclRefExpr *DeclRefExpr);
bool isFunctionOrCatchVar(const DeclRefExpr *DeclRefExpr);
const bool CheckAnonymousTemporaries;
const bool WarnOnLargeObject;
diff --git a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
index 737551637ea9e..9721d79fec4d4 100644
--- a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
@@ -99,7 +99,7 @@ class UnusedParametersCheck::IndexerVisitor
return Index[Fn->getCanonicalDecl()].OtherRefs;
}
- bool shouldTraversePostOrder() const { return true; }
+ static bool shouldTraversePostOrder() { return true; }
bool WalkUpFromDeclRefExpr(DeclRefExpr *DeclRef) {
if (const auto *Fn = dyn_cast<FunctionDecl>(DeclRef->getDecl())) {
diff --git a/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp b/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
index 35a062382ea3c..bbd80d490d1a7 100644
--- a/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
@@ -53,8 +53,8 @@ class ExternCRefutationVisitor
ExternCRefutationVisitor(std::vector<IncludeMarker> &IncludesToBeProcessed,
SourceManager &SM)
: IncludesToBeProcessed(IncludesToBeProcessed), SM(SM) {}
- bool shouldWalkTypesOfTypeLocs() const { return false; }
- bool shouldVisitLambdaBody() const { return false; }
+ static bool shouldWalkTypesOfTypeLocs() { return false; }
+ static bool shouldVisitLambdaBody() { return false; }
bool VisitLinkageSpecDecl(LinkageSpecDecl *LinkSpecDecl) const {
if (LinkSpecDecl->getLanguage() != LinkageSpecLanguageIDs::C ||
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
index b4f729d3ac538..6ad406b49b758 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
@@ -38,7 +38,7 @@ class LoopConvertCheck : public ClangTidyCheck {
bool NeedsReverseCall = false;
};
- void getAliasRange(SourceManager &SM, SourceRange &DeclRange);
+ static void getAliasRange(SourceManager &SM, SourceRange &DeclRange);
void doConversion(ASTContext *Context, const VarDecl *IndexVar,
const ValueDecl *MaybeContainer, const UsageResult &Usages,
@@ -46,18 +46,18 @@ class LoopConvertCheck : public ClangTidyCheck {
bool AliasFromForInit, const ForStmt *Loop,
RangeDescriptor Descriptor);
- StringRef getContainerString(ASTContext *Context, const ForStmt *Loop,
- const Expr *ContainerExpr);
+ static StringRef getContainerString(ASTContext *Context, const ForStmt *Loop,
+ const Expr *ContainerExpr);
- void getArrayLoopQualifiers(ASTContext *Context,
- const ast_matchers::BoundNodes &Nodes,
- const Expr *ContainerExpr,
- const UsageResult &Usages,
- RangeDescriptor &Descriptor);
+ static void getArrayLoopQualifiers(ASTContext *Context,
+ const ast_matchers::BoundNodes &Nodes,
+ const Expr *ContainerExpr,
+ const UsageResult &Usages,
+ RangeDescriptor &Descriptor);
- void getIteratorLoopQualifiers(ASTContext *Context,
- const ast_matchers::BoundNodes &Nodes,
- RangeDescriptor &Descriptor);
+ static void getIteratorLoopQualifiers(ASTContext *Context,
+ const ast_matchers::BoundNodes &Nodes,
+ RangeDescriptor &Descriptor);
void determineRangeDescriptor(ASTContext *Context,
const ast_matchers::BoundNodes &Nodes,
diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
index 934cc24817d73..32ac93c243fe5 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
@@ -80,12 +80,13 @@ AST_MATCHER_P(clang::Expr, anyOfExhaustive, std::vector<Matcher<clang::Stmt>>,
// the literal of every constant and for formulas' subexpressions that look at
// literals.
struct MatchBuilder {
- auto
- ignoreParenAndArithmeticCasting(const Matcher<clang::Expr> Matcher) const {
+ static auto
+ ignoreParenAndArithmeticCasting(const Matcher<clang::Expr> Matcher) {
return expr(hasType(qualType(isArithmetic())), ignoringParenCasts(Matcher));
}
- auto ignoreParenAndFloatingCasting(const Matcher<clang::Expr> Matcher) const {
+ static auto
+ ignoreParenAndFloatingCasting(const Matcher<clang::Expr> Matcher) {
return expr(hasType(qualType(isFloating())), ignoringParenCasts(Matcher));
}
diff --git a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
index 82f64096cbec1..c5f75b28aff44 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
@@ -51,7 +51,7 @@ struct UnqualNameVisitor : public RecursiveASTVisitor<UnqualNameVisitor> {
bool Collision = false;
- bool shouldWalkTypesOfTypeLocs() const { return false; }
+ static bool shouldWalkTypesOfTypeLocs() { return false; }
bool visitUnqualName(StringRef UnqualName) {
// Check for collisions with function arguments.
diff --git a/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h b/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h
index 38f756f9b452f..79a33e129ee9c 100644
--- a/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h
+++ b/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h
@@ -56,7 +56,8 @@ class UnnecessaryCopyI...
[truncated]
|
Personally I don't really like this rule, especially in combination with Now we have a mix of static and non-static functions in the classes, even though they are always called on a concrete object. One could argue that those static member functions can even be moved outside the class into the global namespace (maybe that would be a better fix?). In general I believe static member functions should be a conscious, up-front architectural/design choice, i.e. I want the API of my code to look like But that's just my opinion, if others feel differently then so be it :) |
Tell me if this reflects your perspective: Your concern is with the API of a class. That means you’re concerned about changes to |
Closes #156158.
Ironically, one warning found in
ConvertMemberFunctionsToStatic.cpp