[clang-tools-extra] 6de75a9 - [clang-doc] Add protected methods to class template (#174884)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 8 17:01:47 PST 2026
Author: Erick Velez
Date: 2026-01-08T17:01:42-08:00
New Revision: 6de75a97c3861a27e173ed478712ebb26c72f793
URL: https://github.com/llvm/llvm-project/commit/6de75a97c3861a27e173ed478712ebb26c72f793
DIFF: https://github.com/llvm/llvm-project/commit/6de75a97c3861a27e173ed478712ebb26c72f793.diff
LOG: [clang-doc] Add protected methods to class template (#174884)
Protected method tags already existed in the class template, but they didn't conform to the current JSON scheme.
Added:
Modified:
clang-tools-extra/clang-doc/JSONGenerator.cpp
clang-tools-extra/clang-doc/assets/class-template.mustache
clang-tools-extra/test/clang-doc/json/class.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-doc/JSONGenerator.cpp b/clang-tools-extra/clang-doc/JSONGenerator.cpp
index fab54591b8faa..ad76c40d49db8 100644
--- a/clang-tools-extra/clang-doc/JSONGenerator.cpp
+++ b/clang-tools-extra/clang-doc/JSONGenerator.cpp
@@ -628,7 +628,7 @@ static void serializeInfo(const RecordInfo &I, json::Object &Obj,
if (!PubFunctionsArrayRef.empty())
insertArray(Obj, PubFunctionsArray, "PublicFunctions");
if (!ProtFunctionsArrayRef.empty())
- Obj["ProtectedFunctions"] = ProtFunctionsArray;
+ insertArray(Obj, ProtFunctionsArray, "ProtectedFunctions");
}
if (!I.Members.empty()) {
diff --git a/clang-tools-extra/clang-doc/assets/class-template.mustache b/clang-tools-extra/clang-doc/assets/class-template.mustache
index 19e6e6adf1b44..ef5a7572a3f48 100644
--- a/clang-tools-extra/clang-doc/assets/class-template.mustache
+++ b/clang-tools-extra/clang-doc/assets/class-template.mustache
@@ -63,22 +63,22 @@
</details>
</li>
{{/HasPublicFunctions}}
- {{#ProtectedFunction}}
+ {{#HasProtectedFunctions}}
<li>
<details open>
<summary class="sidebar-section">
- <a class="sidebar-item" href="#ProtectedFunction">Protected Method</a>
+ <a class="sidebar-item" href="#ProtectedMethods">Protected Methods</a>
</summary>
<ul>
- {{#Obj}}
+ {{#ProtectedFunctions}}
<li class="sidebar-item-container">
- <a class="sidebar-item" href="#{{ID}}">{{Name}}</a>
+ <a class="sidebar-item" href="#{{USR}}">{{Name}}</a>
</li>
- {{/Obj}}
+ {{/ProtectedFunctions}}
</ul>
</details>
</li>
- {{/ProtectedFunction}}
+ {{/HasProtectedFunctions}}
{{#HasEnums}}
<li>
<details open>
@@ -198,18 +198,16 @@
{{/PublicFunctions}}
</section>
{{/PublicFunctions}}
- {{#ProtectedFunction}}
- <li class="sidebar-section">
- <a class="sidebar-item" href="#ProtectedFunction">Protected Method</a>
- </li>
- <ul>
- {{#Obj}}
- <li class="sidebar-item-container">
- <a class="sidebar-item" href="#{{ID}}">{{Name}}</a>
- </li>
- {{/Obj}}
- </ul>
- {{/ProtectedFunction}}
+ {{#HasProtectedFunctions}}
+ <section id="ProtectedMethods" class="section-container">
+ <h2>Protected Methods</h2>
+ <div>
+ {{#ProtectedFunctions}}
+ {{>FunctionPartial}}
+ {{/ProtectedFunctions}}
+ </div>
+ </section>
+ {{/HasProtectedFunctions}}
{{#HasEnums}}
<section id="Enums" class="section-container">
<h2>Enumerations</h2>
diff --git a/clang-tools-extra/test/clang-doc/json/class.cpp b/clang-tools-extra/test/clang-doc/json/class.cpp
index 6356aee14c16c..5c63aa5ec45ef 100644
--- a/clang-tools-extra/test/clang-doc/json/class.cpp
+++ b/clang-tools-extra/test/clang-doc/json/class.cpp
@@ -170,6 +170,7 @@ struct MyClass {
// CHECK-NEXT: "HasEnums": true,
// CHECK-NEXT: "HasFriends": true,
// CHECK-NEXT: "HasPrivateMembers": true,
+// CHECK-NEXT: "HasProtectedFunctions": true,
// CHECK-NEXT: "HasProtectedMembers": true,
// CHECK-NEXT: "HasPublicFunctions": true,
// CHECK-NEXT: "HasPublicMembers": true,
@@ -329,6 +330,15 @@ struct MyClass {
// HTML-NEXT: </div>
// HTML-NEXT: </div>
// HTML-NEXT: </section>
+// HTML: <section id="ProtectedMethods" class="section-container">
+// HTML-NEXT: <h2>Protected Methods</h2>
+// HTML-NEXT: <div>
+// HTML-NEXT: <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-NEXT: <pre><code class="language-cpp code-clang-doc">int protectedMethod ()</code></pre>
+// HTML-NEXT: <p>Defined at line of file </p>
+// HTML-NEXT: </div>
+// HTML-NEXT: </div>
+// HTML-NEXT: </section>
// HTML: <section id="Classes" class="section-container">
// HTML-NEXT: <h2>Inner Classes</h2>
// HTML-NEXT: <ul class="class-container">
More information about the cfe-commits
mailing list