[llvm-branch-commits] [clang-tools-extra] [clang-doc] Handle static members and functions (PR #135457)
Petr Hosek via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Apr 11 18:45:49 PDT 2025
================
@@ -729,6 +729,62 @@ emitInfo(const RecordDecl *D, const FullComment *FC, int LineNumber,
return {std::move(I), std::move(Parent)};
}
+std::pair<std::unique_ptr<Info>, std::unique_ptr<Info>>
+emitInfo(const VarDecl *D, const FullComment *FC, int LineNumber,
+ llvm::StringRef File, bool IsFileInRootDir, bool PublicOnly) {
+ auto I = std::make_unique<RecordInfo>();
+ bool IsInAnonymousNamespace = false;
+ populateSymbolInfo(*I, D, FC, LineNumber, File, IsFileInRootDir,
+ IsInAnonymousNamespace);
+ if (!shouldSerializeInfo(PublicOnly, IsInAnonymousNamespace, D))
+ return {};
+
+ I->Path = getInfoRelativePath(I->Namespace);
+
+ PopulateTemplateParameters(I->Template, D);
+
+ // Full and partial specializations.
+ if (auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
+ if (!I->Template)
+ I->Template.emplace();
+ I->Template->Specialization.emplace();
+ auto &Specialization = *I->Template->Specialization;
+
+ // What this is a specialization of.
+ auto SpecOf = CTSD->getSpecializedTemplateOrPartial();
+ if (auto *CTD = dyn_cast<ClassTemplateDecl *>(SpecOf))
+ Specialization.SpecializationOf = getUSRForDecl(CTD);
+ else if (auto *CTPSD =
+ dyn_cast<ClassTemplatePartialSpecializationDecl *>(SpecOf))
+ Specialization.SpecializationOf = getUSRForDecl(CTPSD);
+
+ // Parameters to the specilization. For partial specializations, get the
----------------
petrhosek wrote:
```suggestion
// Parameters to the specialization. For partial specializations, get the
```
https://github.com/llvm/llvm-project/pull/135457
More information about the llvm-branch-commits
mailing list