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 <[email protected]>
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);
     }
   }
 }

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to