Skip to content

Commit e3a6792

Browse files
authored
[clang-tidy][NFC] Use llvm::DenseMap (#167050)
1 parent accec8b commit e3a6792

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

clang-tools-extra/clang-tidy/objc/AssertEquals.cpp

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,53 +7,48 @@
77
//===----------------------------------------------------------------------===//
88

99
#include "AssertEquals.h"
10+
#include "llvm/ADT/StringMap.h"
1011

11-
#include <map>
1212
#include <string>
1313

1414
using namespace clang::ast_matchers;
1515

1616
namespace clang::tidy::objc {
1717

1818
// Mapping from `XCTAssert*Equal` to `XCTAssert*EqualObjects` name.
19-
static const std::map<std::string, std::string> &nameMap() {
20-
static const std::map<std::string, std::string> Map{
21-
{"XCTAssertEqual", "XCTAssertEqualObjects"},
22-
{"XCTAssertNotEqual", "XCTAssertNotEqualObjects"},
23-
24-
};
25-
return Map;
26-
}
19+
static const llvm::StringMap<StringRef> NameMap{
20+
{"XCTAssertEqual", "XCTAssertEqualObjects"},
21+
{"XCTAssertNotEqual", "XCTAssertNotEqualObjects"},
22+
};
2723

2824
void AssertEquals::registerMatchers(MatchFinder *Finder) {
29-
for (const auto &Pair : nameMap()) {
25+
for (const auto &[CurrName, _] : NameMap) {
3026
Finder->addMatcher(
3127
binaryOperator(anyOf(hasOperatorName("!="), hasOperatorName("==")),
32-
isExpandedFromMacro(Pair.first),
28+
isExpandedFromMacro(std::string(CurrName)),
3329
anyOf(hasLHS(hasType(qualType(
3430
hasCanonicalType(asString("NSString *"))))),
3531
hasRHS(hasType(qualType(
36-
hasCanonicalType(asString("NSString *"))))))
37-
38-
)
39-
.bind(Pair.first),
32+
hasCanonicalType(asString("NSString *")))))))
33+
.bind(CurrName),
4034
this);
4135
}
4236
}
4337

4438
void AssertEquals::check(const ast_matchers::MatchFinder::MatchResult &Result) {
45-
for (const auto &Pair : nameMap()) {
46-
if (const auto *Root = Result.Nodes.getNodeAs<BinaryOperator>(Pair.first)) {
39+
for (const auto &[CurrName, TargetName] : NameMap) {
40+
if (const auto *Root = Result.Nodes.getNodeAs<BinaryOperator>(CurrName)) {
4741
const SourceManager *Sm = Result.SourceManager;
4842
// The macros are nested two levels, so going up twice.
4943
auto MacroCallsite = Sm->getImmediateMacroCallerLoc(
5044
Sm->getImmediateMacroCallerLoc(Root->getBeginLoc()));
51-
diag(MacroCallsite, "use " + Pair.second + " for comparing objects")
45+
diag(MacroCallsite,
46+
(Twine("use ") + TargetName + " for comparing objects").str())
5247
<< FixItHint::CreateReplacement(
5348
clang::CharSourceRange::getCharRange(
5449
MacroCallsite,
55-
MacroCallsite.getLocWithOffset(Pair.first.length())),
56-
Pair.second);
50+
MacroCallsite.getLocWithOffset(CurrName.size())),
51+
TargetName);
5752
}
5853
}
5954
}

0 commit comments

Comments
 (0)