[clang-tools-extra] [clang-tidy][NFC] Use llvm::DenseMap (PR #167050)
Baranov Victor via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 7 15:50:07 PST 2025
https://github.com/vbvictor updated https://github.com/llvm/llvm-project/pull/167050
>From 6858da23fc9b5f83a3c74b5ea0cdcd2cefdc3792 Mon Sep 17 00:00:00 2001
From: Victor Baranov <bar.victor.2002 at gmail.com>
Date: Sat, 8 Nov 2025 02:49:51 +0300
Subject: [PATCH] [clang-tidy][NFC] Use llvm::DenseMap
---
.../clang-tidy/objc/AssertEquals.cpp | 35 ++++++++-----------
1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/clang-tools-extra/clang-tidy/objc/AssertEquals.cpp b/clang-tools-extra/clang-tidy/objc/AssertEquals.cpp
index 0871558b92569..9d274ee428692 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 const 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)) {
+ 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);
}
}
}
More information about the cfe-commits
mailing list