================
@@ -458,6 +460,45 @@ void JSONGenerator::serializeCommonAttributes(const Info
&I,
generateContext(I, Obj);
}
+static auto SerializeTemplateParam = [](const TemplateParamInfo &Param,
+ Object &JsonObj) {
+ JsonObj["Param"] = Param.Contents;
+};
+
+static void serializeTemplateSpecialization(TemplateInfo Template,
+ Object &TemplateObj) {
+ json::Value TemplateSpecializationVal = Object();
+ auto &TemplateSpecializationObj = *TemplateSpecializationVal.getAsObject();
+ TemplateSpecializationObj["SpecializationOf"] =
+ toHex(toStringRef(Template.Specialization->SpecializationOf));
+ if (!Template.Specialization->Params.empty()) {
+ bool VerticalDisplay =
+ Template.Specialization->Params.size() > getMaxParamWrapLimit();
+ serializeArray(Template.Specialization->Params, TemplateSpecializationObj,
+ "Parameters", SerializeTemplateParam, "SpecParamEnd",
+ [VerticalDisplay](Object &JsonObj) {
+ JsonObj["VerticalDisplay"] = VerticalDisplay;
+ });
+ }
+ TemplateObj["Specialization"] = TemplateSpecializationVal;
+}
+
+void JSONGenerator::serializeClassSpecializations(SymbolID ClassUSR,
+ Object &ReferenceObj) {
+ if (!Infos)
+ return;
+ auto ClassIt = Infos->find(toStringRef(toHex(ClassUSR)));
+ if (ClassIt == Infos->end())
+ return;
+ Info *Class = ClassIt->second.get();
----------------
ilovepi wrote:
```suggestion
Info *Class = ClassIt->second;
```
Isn't `Infos` a `StringMap<Info*>`? So you wouldn't need to use `.get()` on a
raw pointer.
https://github.com/llvm/llvm-project/pull/191252
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits