[llvm] [Support] Simplify Object::operator== (NFC) (PR #157311)
Kazu Hirata via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 6 13:46:29 PDT 2025
https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/157311
This patch simplifies Object::operator== with DenseMap::operator==.
>From 351ed02fedfa8872d6ee016fe020a4a96d597a5d Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Fri, 5 Sep 2025 16:10:35 -0700
Subject: [PATCH] [Support] Simplify Object::operator== (NFC)
This patch simplifies Object::operator== with DenseMap::operator==.
---
llvm/include/llvm/Support/JSON.h | 2 ++
llvm/lib/Support/JSON.cpp | 11 +----------
2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/llvm/include/llvm/Support/JSON.h b/llvm/include/llvm/Support/JSON.h
index 74858ec559932..d8c6de49b4bc6 100644
--- a/llvm/include/llvm/Support/JSON.h
+++ b/llvm/include/llvm/Support/JSON.h
@@ -153,6 +153,8 @@ class Object {
LLVM_ABI json::Object *getObject(StringRef K);
LLVM_ABI const json::Array *getArray(StringRef K) const;
LLVM_ABI json::Array *getArray(StringRef K);
+
+ friend bool operator==(const Object &LHS, const Object &RHS);
};
LLVM_ABI bool operator==(const Object &LHS, const Object &RHS);
inline bool operator!=(const Object &LHS, const Object &RHS) {
diff --git a/llvm/lib/Support/JSON.cpp b/llvm/lib/Support/JSON.cpp
index d8662340cb3ed..4652c0740dc4d 100644
--- a/llvm/lib/Support/JSON.cpp
+++ b/llvm/lib/Support/JSON.cpp
@@ -84,16 +84,7 @@ json::Array *Object::getArray(StringRef K) {
return V->getAsArray();
return nullptr;
}
-bool operator==(const Object &LHS, const Object &RHS) {
- if (LHS.size() != RHS.size())
- return false;
- for (const auto &L : LHS) {
- auto R = RHS.find(L.first);
- if (R == RHS.end() || L.second != R->second)
- return false;
- }
- return true;
-}
+bool operator==(const Object &LHS, const Object &RHS) { return LHS.M == RHS.M; }
Array::Array(std::initializer_list<Value> Elements) {
V.reserve(Elements.size());
More information about the llvm-commits
mailing list