aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy/objc
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-tidy/objc')
-rw-r--r--clang-tools-extra/clang-tidy/objc/AssertEquals.cpp37
-rw-r--r--clang-tools-extra/clang-tidy/objc/AssertEquals.h6
-rw-r--r--clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.h6
-rw-r--r--clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp2
-rw-r--r--clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp12
-rw-r--r--clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp11
-rw-r--r--clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.h6
-rw-r--r--clang-tools-extra/clang-tidy/objc/SuperSelfCheck.cpp4
8 files changed, 40 insertions, 44 deletions
diff --git a/clang-tools-extra/clang-tidy/objc/AssertEquals.cpp b/clang-tools-extra/clang-tidy/objc/AssertEquals.cpp
index 3f1bc17..9d274ee 100644
--- a/clang-tools-extra/clang-tidy/objc/AssertEquals.cpp
+++ b/clang-tools-extra/clang-tidy/objc/AssertEquals.cpp
@@ -7,8 +7,8 @@
//===----------------------------------------------------------------------===//
#include "AssertEquals.h"
+#include "llvm/ADT/StringMap.h"
-#include <map>
#include <string>
using namespace clang::ast_matchers;
@@ -16,44 +16,39 @@ using namespace clang::ast_matchers;
namespace clang::tidy::objc {
// Mapping from `XCTAssert*Equal` to `XCTAssert*EqualObjects` name.
-static const std::map<std::string, std::string> &nameMap() {
- static std::map<std::string, std::string> Map{
- {"XCTAssertEqual", "XCTAssertEqualObjects"},
- {"XCTAssertNotEqual", "XCTAssertNotEqualObjects"},
-
- };
- return Map;
-}
+static const llvm::StringMap<StringRef> NameMap{
+ {"XCTAssertEqual", "XCTAssertEqualObjects"},
+ {"XCTAssertNotEqual", "XCTAssertNotEqualObjects"},
+};
void AssertEquals::registerMatchers(MatchFinder *Finder) {
- for (const auto &Pair : nameMap()) {
+ for (const auto &[CurrName, _] : NameMap) {
Finder->addMatcher(
binaryOperator(anyOf(hasOperatorName("!="), hasOperatorName("==")),
- isExpandedFromMacro(Pair.first),
+ isExpandedFromMacro(std::string(CurrName)),
anyOf(hasLHS(hasType(qualType(
hasCanonicalType(asString("NSString *"))))),
hasRHS(hasType(qualType(
- hasCanonicalType(asString("NSString *"))))))
-
- )
- .bind(Pair.first),
+ hasCanonicalType(asString("NSString *")))))))
+ .bind(CurrName),
this);
}
}
void AssertEquals::check(const ast_matchers::MatchFinder::MatchResult &Result) {
- for (const auto &Pair : nameMap()) {
- if (const auto *Root = Result.Nodes.getNodeAs<BinaryOperator>(Pair.first)) {
- SourceManager *Sm = Result.SourceManager;
+ for (const auto &[CurrName, TargetName] : NameMap) {
+ if (const auto *Root = Result.Nodes.getNodeAs<BinaryOperator>(CurrName)) {
+ const SourceManager *Sm = Result.SourceManager;
// The macros are nested two levels, so going up twice.
auto MacroCallsite = Sm->getImmediateMacroCallerLoc(
Sm->getImmediateMacroCallerLoc(Root->getBeginLoc()));
- diag(MacroCallsite, "use " + Pair.second + " for comparing objects")
+ diag(MacroCallsite,
+ (Twine("use ") + TargetName + " for comparing objects").str())
<< FixItHint::CreateReplacement(
clang::CharSourceRange::getCharRange(
MacroCallsite,
- MacroCallsite.getLocWithOffset(Pair.first.length())),
- Pair.second);
+ MacroCallsite.getLocWithOffset(CurrName.size())),
+ TargetName);
}
}
}
diff --git a/clang-tools-extra/clang-tidy/objc/AssertEquals.h b/clang-tools-extra/clang-tidy/objc/AssertEquals.h
index 8c21f9b..1405065 100644
--- a/clang-tools-extra/clang-tidy/objc/AssertEquals.h
+++ b/clang-tools-extra/clang-tidy/objc/AssertEquals.h
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef THIRD_PARTY_LLVM_LLVM_PROJECT_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_OBJCASSERTEQUALS_H_
-#define THIRD_PARTY_LLVM_LLVM_PROJECT_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_OBJCASSERTEQUALS_H_
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_ASSERTEQUALS_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_ASSERTEQUALS_H
#include "../ClangTidyCheck.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
@@ -32,4 +32,4 @@ public:
} // namespace clang::tidy::objc
-#endif // THIRD_PARTY_LLVM_LLVM_PROJECT_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_OBJCASSERTEQUALS_H_
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_ASSERTEQUALS_H
diff --git a/clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.h b/clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.h
index 2d23869..6e0a12a 100644
--- a/clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.h
+++ b/clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.h
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_FORBIDDEN_SUBCLASSING_CHECK_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_FORBIDDEN_SUBCLASSING_CHECK_H
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_FORBIDDENSUBCLASSINGCHECK_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_FORBIDDENSUBCLASSINGCHECK_H
#include "../ClangTidyCheck.h"
#include "llvm/ADT/StringRef.h"
@@ -36,4 +36,4 @@ private:
} // namespace clang::tidy::objc
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_FORBIDDEN_SUBCLASSING_CHECK_H
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_FORBIDDENSUBCLASSINGCHECK_H
diff --git a/clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp b/clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp
index 1481b2b..31d098e 100644
--- a/clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp
+++ b/clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp
@@ -49,7 +49,7 @@ void NSDateFormatterCheck::check(const MatchFinder::MatchResult &Result) {
// Callback implementation.
const auto *StrExpr = Result.Nodes.getNodeAs<ObjCStringLiteral>("str_lit");
const StringLiteral *SL = cast<ObjCStringLiteral>(StrExpr)->getString();
- StringRef SR = SL->getString();
+ const StringRef SR = SL->getString();
if (!isValidDatePattern(SR)) {
diag(StrExpr->getExprLoc(), "invalid date format specifier");
diff --git a/clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp b/clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp
index 8a32c38..69caaed 100644
--- a/clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp
+++ b/clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp
@@ -43,7 +43,7 @@ AST_POLYMORPHIC_MATCHER(isObjCManagedLifetime,
AST_POLYMORPHIC_SUPPORTED_TYPES(ObjCIvarRefExpr,
DeclRefExpr,
MemberExpr)) {
- QualType QT = Node.getType();
+ const QualType QT = Node.getType();
return QT->isScalarType() &&
(QT->getScalarTypeKind() == Type::STK_ObjCObjectPointer ||
QT->getScalarTypeKind() == Type::STK_BlockPointer) &&
@@ -55,12 +55,12 @@ AST_POLYMORPHIC_MATCHER(isObjCManagedLifetime,
static std::optional<FixItHint>
fixItHintReplacementForOwnershipString(StringRef Text, CharSourceRange Range,
StringRef Ownership) {
- size_t Index = Text.find(Ownership);
+ const size_t Index = Text.find(Ownership);
if (Index == StringRef::npos)
return std::nullopt;
- SourceLocation Begin = Range.getBegin().getLocWithOffset(Index);
- SourceLocation End = Begin.getLocWithOffset(Ownership.size());
+ const SourceLocation Begin = Range.getBegin().getLocWithOffset(Index);
+ const SourceLocation End = Begin.getLocWithOffset(Ownership.size());
return FixItHint::CreateReplacement(SourceRange(Begin, End),
UnsafeUnretainedText);
}
@@ -76,7 +76,7 @@ fixItHintForVarDecl(const VarDecl *VD, const SourceManager &SM,
// Currently there is no way to directly get the source range for the
// __weak/__strong ObjC lifetime qualifiers, so it's necessary to string
// search in the source code.
- CharSourceRange Range = Lexer::makeFileCharRange(
+ const CharSourceRange Range = Lexer::makeFileCharRange(
CharSourceRange::getTokenRange(VD->getSourceRange()), SM, LangOpts);
if (Range.isInvalid()) {
// An invalid range likely means inside a macro, in which case don't supply
@@ -84,7 +84,7 @@ fixItHintForVarDecl(const VarDecl *VD, const SourceManager &SM,
return std::nullopt;
}
- StringRef VarDeclText = Lexer::getSourceText(Range, SM, LangOpts);
+ const StringRef VarDeclText = Lexer::getSourceText(Range, SM, LangOpts);
if (std::optional<FixItHint> Hint =
fixItHintReplacementForOwnershipString(VarDeclText, Range, WeakText))
return Hint;
diff --git a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
index 4a586c8..690572f 100644
--- a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
+++ b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
@@ -39,7 +39,7 @@ static FixItHint generateFixItHint(const ObjCPropertyDecl *Decl,
auto NewName = Decl->getName().str();
size_t Index = 0;
if (Style == CategoryProperty) {
- size_t UnderScorePos = Name.find_first_of('_');
+ const size_t UnderScorePos = Name.find_first_of('_');
if (UnderScorePos != llvm::StringRef::npos) {
Index = UnderScorePos + 1;
NewName.replace(0, Index - 1, Name.substr(0, Index - 1).lower());
@@ -74,7 +74,7 @@ static std::string validPropertyNameRegex(bool UsedInMatcher) {
//
// aRbITRaRyCapS is allowed to avoid generating false positives for names
// like isVitaminBSupplement, CProgrammingLanguage, and isBeforeM.
- std::string StartMatcher = UsedInMatcher ? "::" : "^";
+ const std::string StartMatcher = UsedInMatcher ? "::" : "^";
return StartMatcher + "([a-z]|[A-Z][A-Z0-9])[a-z0-9A-Z]*$";
}
@@ -85,7 +85,7 @@ static bool hasCategoryPropertyPrefix(llvm::StringRef PropertyName) {
}
static bool prefixedPropertyNameValid(llvm::StringRef PropertyName) {
- size_t Start = PropertyName.find_first_of('_');
+ const size_t Start = PropertyName.find_first_of('_');
assert(Start != llvm::StringRef::npos && Start + 1 < PropertyName.size());
auto Prefix = PropertyName.substr(0, Start);
if (Prefix.lower() != Prefix) {
@@ -115,8 +115,9 @@ void PropertyDeclarationCheck::check(const MatchFinder::MatchResult &Result) {
hasCategoryPropertyPrefix(MatchedDecl->getName())) {
if (!prefixedPropertyNameValid(MatchedDecl->getName()) ||
CategoryDecl->IsClassExtension()) {
- NamingStyle Style = CategoryDecl->IsClassExtension() ? StandardProperty
- : CategoryProperty;
+ const NamingStyle Style = CategoryDecl->IsClassExtension()
+ ? StandardProperty
+ : CategoryProperty;
diag(MatchedDecl->getLocation(),
"property name '%0' not using lowerCamelCase style or not prefixed "
"in a category, according to the Apple Coding Guidelines")
diff --git a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.h b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.h
index daaebb1..1e185b9 100644
--- a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.h
+++ b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.h
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_PROPERTY_DECLARATION_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_PROPERTY_DECLARATION_H
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_PROPERTYDECLARATIONCHECK_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_PROPERTYDECLARATIONCHECK_H
#include "../ClangTidyCheck.h"
@@ -34,4 +34,4 @@ public:
} // namespace clang::tidy::objc
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_PROPERTY_DECLARATION_H
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OBJC_PROPERTYDECLARATIONCHECK_H
diff --git a/clang-tools-extra/clang-tidy/objc/SuperSelfCheck.cpp b/clang-tools-extra/clang-tidy/objc/SuperSelfCheck.cpp
index 3c133ad..3887afe7 100644
--- a/clang-tools-extra/clang-tidy/objc/SuperSelfCheck.cpp
+++ b/clang-tools-extra/clang-tidy/objc/SuperSelfCheck.cpp
@@ -90,11 +90,11 @@ void SuperSelfCheck::check(const MatchFinder::MatchResult &Result) {
"invoke a superclass initializer?")
<< Message->getMethodDecl();
- SourceLocation ReceiverLoc = Message->getReceiverRange().getBegin();
+ const SourceLocation ReceiverLoc = Message->getReceiverRange().getBegin();
if (ReceiverLoc.isMacroID() || ReceiverLoc.isInvalid())
return;
- SourceLocation SelectorLoc = Message->getSelectorStartLoc();
+ const SourceLocation SelectorLoc = Message->getSelectorStartLoc();
if (SelectorLoc.isMacroID() || SelectorLoc.isInvalid())
return;