[clang-tools-extra] [clang-doc] refactor JSONGenerator array usage (PR #145595)
Erick Velez via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 25 21:47:42 PDT 2025
================
@@ -454,27 +417,19 @@ static void serializeInfo(const RecordInfo &I, json::Object &Obj,
Obj["ProtectedMembers"] = ProtectedMembersArray;
}
- if (!I.Bases.empty()) {
- json::Value BasesArray = Array();
- json::Array &BasesArrayRef = *BasesArray.getAsArray();
- BasesArrayRef.reserve(I.Bases.size());
- for (const auto &BaseInfo : I.Bases) {
- json::Value BaseInfoVal = Object();
- auto &BaseInfoObj = *BaseInfoVal.getAsObject();
- serializeInfo(BaseInfo, BaseInfoObj, RepositoryUrl);
- BaseInfoObj["IsVirtual"] = BaseInfo.IsVirtual;
- BaseInfoObj["Access"] = getAccessSpelling(BaseInfo.Access);
- BaseInfoObj["IsParent"] = BaseInfo.IsParent;
- BasesArrayRef.push_back(BaseInfoVal);
- }
- Obj["Bases"] = BasesArray;
- }
+ if (!I.Bases.empty())
+ serializeArray(
+ I.Bases, Obj, "Bases",
+ [RepositoryUrl](const BaseRecordInfo &Base, Object &BaseObj) {
----------------
evelez7 wrote:
I changed it to capture by reference, which also let me change all passing of the optional to const references which I needed to change anyways.
https://github.com/llvm/llvm-project/pull/145595
More information about the cfe-commits
mailing list