Skip to content

Conversation

@kazutakahirata
Copy link
Contributor

This patch simplifies Object::operator== with DenseMap::operator==.

This patch simplifies Object::operator== with DenseMap::operator==.
@llvmbot
Copy link
Member

llvmbot commented Sep 6, 2025

@llvm/pr-subscribers-llvm-support

Author: Kazu Hirata (kazutakahirata)

Changes

This patch simplifies Object::operator== with DenseMap::operator==.


Full diff: https://github.com/llvm/llvm-project/pull/157311.diff

2 Files Affected:

  • (modified) llvm/include/llvm/Support/JSON.h (+2)
  • (modified) llvm/lib/Support/JSON.cpp (+1-10)
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());

@kazutakahirata kazutakahirata merged commit b9e546d into llvm:main Sep 7, 2025
11 checks passed
@kazutakahirata kazutakahirata deleted the cleanup_20250906_Support_JSON_Value_operator_eq branch September 7, 2025 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants