[clang-tools-extra] [clang-doc] Integrate enum LIT tests (PR #187818)

Erick Velez via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 26 12:49:40 PDT 2026


https://github.com/evelez7 updated https://github.com/llvm/llvm-project/pull/187818

>From 2cb728ec1e9307e67115f5eb296204adffdfcc58 Mon Sep 17 00:00:00 2001
From: Erick Velez <erickvelez7 at gmail.com>
Date: Fri, 20 Mar 2026 15:51:02 -0700
Subject: [PATCH 1/4] [clang-doc] Integrate enum LIT tests

Combine the two separate test files and have them feed from a common
source. This will be the way that tests are handled to prevent testing
divergence in the future.
---
 .../test/clang-doc/Inputs/enum.cpp            |  88 +++
 clang-tools-extra/test/clang-doc/enum.cpp     | 692 ++++++++++++------
 .../test/clang-doc/json/enum.cpp              | 201 -----
 3 files changed, 553 insertions(+), 428 deletions(-)
 create mode 100644 clang-tools-extra/test/clang-doc/Inputs/enum.cpp
 delete mode 100644 clang-tools-extra/test/clang-doc/json/enum.cpp

diff --git a/clang-tools-extra/test/clang-doc/Inputs/enum.cpp b/clang-tools-extra/test/clang-doc/Inputs/enum.cpp
new file mode 100644
index 0000000000000..04291865a3c09
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/enum.cpp
@@ -0,0 +1,88 @@
+/**
+ * @brief For specifying RGB colors
+ */
+enum Color {
+  Red,   ///< Comment 1
+  Green, ///< Comment 2
+  Blue   ///< Comment 3
+};
+
+/**
+ * @brief Shape Types
+ */
+enum class Shapes {
+  /// Comment 1
+  Circle,
+  /// Comment 2
+  Rectangle,
+  /// Comment 3
+  Triangle
+};
+
+typedef unsigned char uint8_t;
+/**
+ * @brief Specify the size
+ */
+enum Size : uint8_t {
+  /// A pearl.
+  /// Pearls are quite small.
+  ///
+  /// Pearls are used in jewelry.
+  Small,
+
+  /// @brief A tennis ball.
+  Medium,
+
+  /// A football.
+  Large
+};
+
+/**
+ * @brief Very long number
+ */
+enum : long long {
+  BigVal = 999999999999   ///< A very large value
+};
+
+enum ColorUserSpecified {
+  RedUserSpecified = 'A',
+  GreenUserSpecified = 2,
+  BlueUserSpecified = 'C'
+};
+
+class FilePermissions {
+public:
+  /**
+   * @brief File permission flags
+   */
+  enum {
+    Read    = 1,     ///< Permission to READ r
+    Write   = 2,     ///< Permission to WRITE w
+    Execute = 4      ///< Permission to EXECUTE x
+  };
+};
+
+// COM: FIXME: Add enums declared inside of classes to class template
+class Animals {
+public:
+  /**
+   * @brief specify what animal the class is
+   */
+  enum AnimalType {
+    Dog,   ///< Man's best friend
+    Cat,   ///< Man's other best friend
+    Iguana ///< A lizard
+  };
+};
+
+namespace Vehicles {
+/**
+ * @brief specify type of car
+ */
+enum Car {
+  Sedan,    ///< Comment 1
+  SUV,      ///< Comment 2
+  Pickup,
+  Hatchback ///< Comment 4
+};
+} // namespace Vehicles
diff --git a/clang-tools-extra/test/clang-doc/enum.cpp b/clang-tools-extra/test/clang-doc/enum.cpp
index 6d54dcf8bf657..1eee719e60098 100644
--- a/clang-tools-extra/test/clang-doc/enum.cpp
+++ b/clang-tools-extra/test/clang-doc/enum.cpp
@@ -1,52 +1,20 @@
 // RUN: rm -rf %t && mkdir -p %t
-// RUN: clang-doc --format=html --doxygen --output=%t --executor=standalone %s
-// RUN: clang-doc --format=md --doxygen --output=%t --executor=standalone %s
-// RUN: FileCheck %s < %t/html/GlobalNamespace/index.html --check-prefix=HTML-INDEX-LINE
+// RUN: clang-doc --format=html --doxygen --output=%t --executor=standalone %S/Inputs/enum.cpp
+// RUN: clang-doc --format=md --doxygen --output=%t --executor=standalone %S/Inputs/enum.cpp
+// RUN: clang-doc --format=md_mustache --doxygen --output=%t --executor=standalone %S/Inputs/enum.cpp
 // RUN: FileCheck %s < %t/html/GlobalNamespace/index.html --check-prefix=HTML-INDEX
-// RUN: FileCheck %s < %t/html/GlobalNamespace/_ZTV7Animals.html --check-prefix=HTML-ANIMAL-LINE
 // RUN: FileCheck %s < %t/html/GlobalNamespace/_ZTV7Animals.html --check-prefix=HTML-ANIMAL
-// RUN: FileCheck %s < %t/html/GlobalNamespace/_ZTV15FilePermissions.html --check-prefix=HTML-PERM-LINE
 // RUN: FileCheck %s < %t/html/GlobalNamespace/_ZTV15FilePermissions.html --check-prefix=HTML-PERM
-// RUN: FileCheck %s < %t/html/Vehicles/index.html --check-prefix=HTML-VEHICLES-LINE
 // RUN: FileCheck %s < %t/html/Vehicles/index.html --check-prefix=HTML-VEHICLES
-// RUN: FileCheck %s < %t/GlobalNamespace/index.md --check-prefix=MD-INDEX-LINE
 // RUN: FileCheck %s < %t/GlobalNamespace/index.md --check-prefix=MD-INDEX
-// RUN: FileCheck %s < %t/GlobalNamespace/Animals.md --check-prefix=MD-ANIMAL-LINE
 // RUN: FileCheck %s < %t/GlobalNamespace/Animals.md --check-prefix=MD-ANIMAL
-// RUN: FileCheck %s < %t/GlobalNamespace/FilePermissions.md --check-prefix=MD-PERM-LINE
 // RUN: FileCheck %s < %t/GlobalNamespace/FilePermissions.md --check-prefix=MD-PERM
-// RUN: FileCheck %s < %t/Vehicles/index.md --check-prefix=MD-VEHICLES-LINE
 // RUN: FileCheck %s < %t/Vehicles/index.md --check-prefix=MD-VEHICLES
-
-
-// RUN: clang-doc --format=md_mustache --doxygen --output=%t --executor=standalone %s
-// RUN: FileCheck %s < %t/md/GlobalNamespace/index.md --check-prefix=MD-MUSTACHE-INDEX-LINE
 // RUN: FileCheck %s < %t/md/GlobalNamespace/index.md --check-prefix=MD-MUSTACHE-INDEX
-// RUN: FileCheck %s < %t/md/GlobalNamespace/_ZTV7Animals.md --check-prefix=MD-MUSTACHE-ANIMAL-LINE
 // RUN: FileCheck %s < %t/md/GlobalNamespace/_ZTV7Animals.md --check-prefix=MD-MUSTACHE-ANIMAL
-// RUN: FileCheck %s < %t/md/Vehicles/index.md --check-prefix=MD-MUSTACHE-VEHICLES-LINE
 // RUN: FileCheck %s < %t/md/Vehicles/index.md --check-prefix=MD-MUSTACHE-VEHICLES
-
-/**
- * @brief For specifying RGB colors
- */
-enum Color {
-  // MD-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-  // HTML-INDEX-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-  // MD-MUSTACHE-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-3]]*
-  Red,   ///< Comment 1
-  Green, ///< Comment 2
-  Blue   ///< Comment 3
-};
-
-// MD-INDEX: ## Enums
-// MD-INDEX: | enum Color |
-// MD-INDEX: | Name | Value | Comments |
-// MD-INDEX: |---|---|---|
-// MD-INDEX: | Red | 0 | Comment 1 |
-// MD-INDEX: | Green | 1 | Comment 2 |
-// MD-INDEX: | Blue | 2 | Comment 3 |
-// MD-INDEX: **brief** For specifying RGB colors
+// RUN: FileCheck %s < %t/json/GlobalNamespace/index.json --check-prefix=JSON-INDEX
+// RUN: FileCheck %s < %t/json/Vehicles/index.json --check-prefix=JSON-VEHICLES-INDEX
 
 // HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
 // HTML-INDEX-NEXT:     <div>
@@ -93,8 +61,16 @@ enum Color {
 // HTML-INDEX-NEXT:           <p>For specifying RGB colors</p>
 // HTML-INDEX-NEXT:       </div>
 // HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <p>Defined at line [[@LINE-63]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-// HTML-INDEX-NEXT:   </div>
+// HTML-INDEX:        </div>
+
+// MD-INDEX: ## Enums
+// MD-INDEX: | enum Color |
+// MD-INDEX: | Name | Value | Comments |
+// MD-INDEX: |---|---|---|
+// MD-INDEX: | Red | 0 | Comment 1 |
+// MD-INDEX: | Green | 1 | Comment 2 |
+// MD-INDEX: | Blue | 2 | Comment 3 |
+// MD-INDEX: **brief** For specifying RGB colors
 
 // MD-MUSTACHE-INDEX: ## Enums
 // MD-MUSTACHE-INDEX: | enum Color |
@@ -104,30 +80,6 @@ enum Color {
 // MD-MUSTACHE-INDEX: | Blue |
 // MD-MUSTACHE-INDEX: **brief** For specifying RGB colors
 
-/**
- * @brief Shape Types
- */
-enum class Shapes {
-  // MD-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-  // HTML-INDEX-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-  // MD-MUSTACHE-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-3]]*
-
-  /// Comment 1
-  Circle,
-  /// Comment 2
-  Rectangle,
-  /// Comment 3
-  Triangle
-};
-
-// MD-INDEX: | enum class Shapes |
-// MD-INDEX: | Name | Value | Comments |
-// MD-INDEX: |---|---|---|
-// MD-INDEX: | Circle | 0 | Comment 1 |
-// MD-INDEX: | Rectangle | 1 | Comment 2 |
-// MD-INDEX: | Triangle | 2 | Comment 3 |
-// MD-INDEX: **brief** Shape Types
-
 // HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
 // HTML-INDEX-NEXT:     <div>
 // HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum class Shapes</code></pre>
@@ -173,37 +125,15 @@ enum class Shapes {
 // HTML-INDEX-NEXT:           <p>Shape Types</p>
 // HTML-INDEX-NEXT:       </div>
 // HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <p>Defined at line [[@LINE-66]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-// HTML-INDEX-NEXT:   </div>
-
-typedef unsigned char uint8_t;
-/**
- * @brief Specify the size
- */
-enum Size : uint8_t {
-  // MD-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-  // HTML-INDEX-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-
-  /// A pearl.
-  /// Pearls are quite small.
-  ///
-  /// Pearls are used in jewelry.
-  Small,
+// HTML-INDEX:        </div>
 
-  /// @brief A tennis ball.
-  Medium,
-
-  /// A football.
-  Large
-};
-
-// MD-INDEX: | enum Size : uint8_t |
+// MD-INDEX: | enum class Shapes |
 // MD-INDEX: | Name | Value | Comments |
 // MD-INDEX: |---|---|---|
-// MD-INDEX: | Small | 0 | A pearl.<br>Pearls are quite small.<br><br>Pearls are used in jewelry. |
-// MD-INDEX: | Medium | 1 | A tennis ball. |
-// MD-INDEX: | Large | 2 | A football. |
-// MD-INDEX: **brief** Specify the size
+// MD-INDEX: | Circle | 0 | Comment 1 |
+// MD-INDEX: | Rectangle | 1 | Comment 2 |
+// MD-INDEX: | Triangle | 2 | Comment 3 |
+// MD-INDEX: **brief** Shape Types
 
 // HTML-INDEX-LABEL:   <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
 // HTML-INDEX-NEXT:     <div>
@@ -252,23 +182,15 @@ enum Size : uint8_t {
 // HTML-INDEX-NEXT:           <p>Specify the size</p>
 // HTML-INDEX-NEXT:       </div>
 // HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <p>Defined at line [[@LINE-72]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-// HTML-INDEX-NEXT:   </div>
-
-/**
- * @brief Very long number
- */
-enum : long long {
-  // MD-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-  // HTML-INDEX-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-  BigVal = 999999999999   ///< A very large value
-};
+// HTML-INDEX:        </div>
 
-// MD-INDEX: | enum (unnamed) : long long |
+// MD-INDEX: | enum Size : uint8_t |
 // MD-INDEX: | Name | Value | Comments |
 // MD-INDEX: |---|---|---|
-// MD-INDEX: | BigVal | 999999999999 | A very large value |
-// MD-INDEX: **brief** Very long number
+// MD-INDEX: | Small | 0 | A pearl.<br>Pearls are quite small.<br><br>Pearls are used in jewelry. |
+// MD-INDEX: | Medium | 1 | A tennis ball. |
+// MD-INDEX: | Large | 2 | A football. |
+// MD-INDEX: **brief** Specify the size
 
 // HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
 // HTML-INDEX-NEXT:     <div>
@@ -297,32 +219,52 @@ enum : long long {
 // HTML-INDEX-NEXT:           <p>Very long number</p>
 // HTML-INDEX-NEXT:       </div>
 // HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <p>Defined at line [[@LINE-39]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-// HTML-INDEX-NEXT:   </div>
+// HTML-INDEX:        </div>
 
-class FilePermissions {
-// MD-PERM-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-// HTML-PERM-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-public:
-  /**
-   * @brief File permission flags
-   */
-  enum {
-  // MD-PERM-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-  // HTML-PERM-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-    Read    = 1,     ///< Permission to READ r
-    Write   = 2,     ///< Permission to WRITE w
-    Execute = 4      ///< Permission to EXECUTE x
-  };
-};
+// MD-INDEX: | enum (unnamed) : long long |
+// MD-INDEX: | Name | Value | Comments |
+// MD-INDEX: |---|---|---|
+// MD-INDEX: | BigVal | 999999999999 | A very large value |
+// MD-INDEX: **brief** Very long number
 
-// MD-PERM: | enum (unnamed) |
-// MD-PERM: | Name | Value | Comments |
-// MD-PERM: |---|---|---|
-// MD-PERM: | Read | 1 | Permission to READ r |
-// MD-PERM: | Write | 2 | Permission to WRITE w |
-// MD-PERM: | Execute | 4 | Permission to EXECUTE x |
-// MD-PERM: **brief** File permission flags
+// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-INDEX-NEXT:     <div>
+// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum ColorUserSpecified</code></pre>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX-NEXT:     <table class="table-wrapper">
+// HTML-INDEX-NEXT:         <tbody>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <th>Name</th>
+// HTML-INDEX-NEXT:                 <th>Value</th>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>RedUserSpecified</td>
+// HTML-INDEX-NEXT:                 <td>'A'</td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>GreenUserSpecified</td>
+// HTML-INDEX-NEXT:                 <td>2</td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>BlueUserSpecified</td>
+// HTML-INDEX-NEXT:                 <td>'C'</td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:         </tbody>
+// HTML-INDEX-NEXT:     </table>
+// HTML-INDEX:        </div>
+
+// MD-INDEX: | enum ColorUserSpecified |
+// MD-INDEX: | Name | Value |
+// MD-INDEX: |---|---|
+// MD-INDEX: | RedUserSpecified | 65 |
+// MD-INDEX: | GreenUserSpecified | 2 |
+// MD-INDEX: | BlueUserSpecified | 67 |
+
+// MD-MUSTACHE-INDEX: | enum ColorUserSpecified |
+// MD-MUSTACHE-INDEX: --
+// MD-MUSTACHE-INDEX: | RedUserSpecified |
+// MD-MUSTACHE-INDEX: | GreenUserSpecified |
+// MD-MUSTACHE-INDEX: | BlueUserSpecified |
 
 // HTML-PERM-LABEL:  <section id="Enums" class="section-container">
 // HTML-PERM-NEXT:     <h2>Enumerations</h2>
@@ -370,29 +312,15 @@ class FilePermissions {
 // HTML-PERM-NEXT:         <div class="nested-delimiter-container">
 // HTML-PERM-NEXT:             <p>File permission flags</p>
 // HTML-PERM-NEXT:         </div>
-// HTML-PERM-NEXT:       </div>
-// HTML-PERM-NEXT:         <p>Defined at line [[@LINE-64]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-// HTML-PERM-NEXT:     </div>
-// HTML-PERM-NEXT:   </section>
+// HTML-PERM:        </section>
 
-// COM: FIXME: Add enums declared inside of classes to class template
-class Animals {
-  // MD-ANIMAL-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-  // HTML-ANIMAL-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-  // MD-MUSTACHE-ANIMAL-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-3]]*
-public:
-  /**
-   * @brief specify what animal the class is
-   */
-  enum AnimalType {
-    // MD-ANIMAL-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-    // HTML-ANIMAL-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-    // MD-MUSTACHE-ANIMAL-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-3]]*
-    Dog,   ///< Man's best friend
-    Cat,   ///< Man's other best friend
-    Iguana ///< A lizard
-  };
-};
+// MD-PERM: | enum (unnamed) |
+// MD-PERM: | Name | Value | Comments |
+// MD-PERM: |---|---|---|
+// MD-PERM: | Read | 1 | Permission to READ r |
+// MD-PERM: | Write | 2 | Permission to WRITE w |
+// MD-PERM: | Execute | 4 | Permission to EXECUTE x |
+// MD-PERM: **brief** File permission flags
 
 // HTML-ANIMAL-LABEL:   <section id="Enums" class="section-container">
 // HTML-ANIMAL-NEXT:      <h2>Enumerations</h2>
@@ -441,8 +369,7 @@ class Animals {
 // HTML-ANIMAL-NEXT:                 <p>specify what animal the class is</p>
 // HTML-ANIMAL-NEXT:             </div>
 // HTML-ANIMAL-NEXT:         </div>
-// HTML-ANIMAL-NEXT:         <p>Defined at line [[@LINE-57]] of file {{.*}}enum.cpp</p>
-// HTML-ANIMAL-NEXT:      </div>
+// HTML-ANIMAL:           </div>
 // HTML-ANIMAL-NEXT:    </section>
 
 // MD-ANIMAL: # class Animals
@@ -464,33 +391,6 @@ class Animals {
 // MD-MUSTACHE-ANIMAL: | Iguana |
 // MD-MUSTACHE-ANIMAL: **brief** specify what animal the class is
 
-namespace Vehicles {
-/**
- * @brief specify type of car
- */
-enum Car {
-  // MD-VEHICLES-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
-  // HTML-VEHICLES-LINE: Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp
-  // MD-MUSTACHE-VEHICLES-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-3]]*
-
-  Sedan,    ///< Comment 1
-  SUV,      ///< Comment 2
-  Pickup,
-  Hatchback ///< Comment 4
-};
-} // namespace Vehicles
-
-// MD-VEHICLES: # namespace Vehicles
-// MD-VEHICLES: ## Enums
-// MD-VEHICLES: | enum Car |
-// MD-VEHICLES: | Name | Value | Comments |
-// MD-VEHICLES: |---|---|---|
-// MD-VEHICLES: | Sedan | 0 | Comment 1 |
-// MD-VEHICLES: | SUV | 1 | Comment 2 |
-// MD-VEHICLES: | Pickup | 2 | -- |
-// MD-VEHICLES: | Hatchback | 3 | Comment 4 |
-// MD-VEHICLES: **brief** specify type of car
-
 // HTML-VEHICLES-LABEL:   <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
 // HTML-VEHICLES-NEXT:      <div>
 // HTML-VEHICLES-NEXT:       <pre><code class="language-cpp code-clang-doc">enum Car</code></pre>
@@ -541,8 +441,18 @@ enum Car {
 // HTML-VEHICLES-NEXT:           <p>specify type of car</p>
 // HTML-VEHICLES-NEXT:        </div>
 // HTML-VEHICLES-NEXT:      </div>
-// HTML-VEHICLES-NEXT:      <p>Defined at line [[@LINE-73]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-// HTML-VEHICLES-NEXT:    </div>
+// HTML-VEHICLES:         </div>
+
+// MD-VEHICLES: # namespace Vehicles
+// MD-VEHICLES: ## Enums
+// MD-VEHICLES: | enum Car |
+// MD-VEHICLES: | Name | Value | Comments |
+// MD-VEHICLES: |---|---|---|
+// MD-VEHICLES: | Sedan | 0 | Comment 1 |
+// MD-VEHICLES: | SUV | 1 | Comment 2 |
+// MD-VEHICLES: | Pickup | 2 | -- |
+// MD-VEHICLES: | Hatchback | 3 | Comment 4 |
+// MD-VEHICLES: **brief** specify type of car
 
 // MD-MUSTACHE-VEHICLES: # namespace Vehicles
 // MD-MUSTACHE-VEHICLES: ## Enums
@@ -554,48 +464,376 @@ enum Car {
 // MD-MUSTACHE-VEHICLES: | Hatchback |
 // MD-MUSTACHE-VEHICLES: **brief** specify type of car
 
-enum ColorUserSpecified {
-  RedUserSpecified = 'A',
-  GreenUserSpecified = 2,
-  BlueUserSpecified = 'C'
-};
-
-// MD-INDEX: | enum ColorUserSpecified |
-// MD-INDEX: | Name | Value |
-// MD-INDEX: |---|---|
-// MD-INDEX: | RedUserSpecified | 65 |
-// MD-INDEX: | GreenUserSpecified | 2 |
-// MD-INDEX: | BlueUserSpecified | 67 |
-
-// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-INDEX-NEXT:     <div>
-// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum ColorUserSpecified</code></pre>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <table class="table-wrapper">
-// HTML-INDEX-NEXT:         <tbody>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <th>Name</th>
-// HTML-INDEX-NEXT:                 <th>Value</th>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>RedUserSpecified</td>
-// HTML-INDEX-NEXT:                 <td>'A'</td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>GreenUserSpecified</td>
-// HTML-INDEX-NEXT:                 <td>2</td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>BlueUserSpecified</td>
-// HTML-INDEX-NEXT:                 <td>'C'</td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:         </tbody>
-// HTML-INDEX-NEXT:     </table>
-// HTML-INDEX-NEXT:     <p>Defined at line [[@LINE-37]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
-// HTML-INDEX-NEXT:   </div>
-
-// MD-MUSTACHE-INDEX: | enum ColorUserSpecified |
-// MD-MUSTACHE-INDEX: --
-// MD-MUSTACHE-INDEX: | RedUserSpecified |
-// MD-MUSTACHE-INDEX: | GreenUserSpecified |
-// MD-MUSTACHE-INDEX: | BlueUserSpecified |
+// JSON-INDEX:      {
+// JSON-INDEX-NEXT:  "DocumentationFileName": "index",
+// JSON-INDEX-NEXT:  "Enums": [
+// JSON-INDEX-NEXT:    {
+// JSON-INDEX-NEXT:      "Description": {
+// JSON-INDEX-NEXT:        "BriefComments": [
+// JSON-INDEX-NEXT:          [
+// JSON-INDEX-NEXT:            {
+// JSON-INDEX-NEXT:              "TextComment": "For specifying RGB colors"
+// JSON-INDEX-NEXT:            }
+// JSON-INDEX-NEXT:          ]
+// JSON-INDEX-NEXT:        ],
+// JSON-INDEX-NEXT:        "HasBriefComments": true
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "HasComments": true,
+// JSON-INDEX-NEXT:      "InfoType": "enum",
+// JSON-INDEX-NEXT:      "Location": {
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "LineNumber": 4
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "Members": [
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "Comment 1"
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Red",
+// JSON-INDEX-NEXT:          "Value": "0"
+// JSON-INDEX-NEXT:        },
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "Comment 2"
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Green",
+// JSON-INDEX-NEXT:          "Value": "1"
+// JSON-INDEX-NEXT:        },
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "Comment 3"
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "End": true,
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Blue",
+// JSON-INDEX-NEXT:          "Value": "2"
+// JSON-INDEX-NEXT:        }
+// JSON-INDEX-NEXT:      ],
+// JSON-INDEX-NEXT:      "Name": "Color",
+// JSON-INDEX-NEXT:      "Scoped": false,
+// JSON-INDEX-NEXT:      "USR": "{{([0-9A-F]{40})}}"
+// JSON-INDEX-NEXT:    },
+// JSON-INDEX-NEXT:    {
+// JSON-INDEX-NEXT:      "Description": {
+// JSON-INDEX-NEXT:        "BriefComments": [
+// JSON-INDEX-NEXT:          [
+// JSON-INDEX-NEXT:            {
+// JSON-INDEX-NEXT:              "TextComment": "Shape Types"
+// JSON-INDEX-NEXT:            }
+// JSON-INDEX-NEXT:          ]
+// JSON-INDEX-NEXT:        ],
+// JSON-INDEX-NEXT:        "HasBriefComments": true
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "HasComments": true,
+// JSON-INDEX-NEXT:      "InfoType": "enum",
+// JSON-INDEX-NEXT:      "Location": {
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "LineNumber": 13
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "Members": [
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "Comment 1"
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Circle",
+// JSON-INDEX-NEXT:          "Value": "0"
+// JSON-INDEX-NEXT:        },
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "Comment 2"
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Rectangle",
+// JSON-INDEX-NEXT:          "Value": "1"
+// JSON-INDEX-NEXT:        },
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "Comment 3"
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "End": true,
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Triangle",
+// JSON-INDEX-NEXT:          "Value": "2"
+// JSON-INDEX-NEXT:        }
+// JSON-INDEX-NEXT:      ],
+// JSON-INDEX-NEXT:      "Name": "Shapes",
+// JSON-INDEX-NEXT:      "Scoped": true,
+// JSON-INDEX-NEXT:      "USR": "{{([0-9A-F]{40})}}"
+// JSON-INDEX-NEXT:    },
+// JSON-INDEX-NEXT:    {
+// JSON-INDEX-NEXT:      "BaseType": {
+// JSON-INDEX-NEXT:        "Name": "uint8_t",
+// JSON-INDEX-NEXT:        "QualName": "uint8_t",
+// JSON-INDEX-NEXT:        "USR": "0000000000000000000000000000000000000000"
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "Description": {
+// JSON-INDEX-NEXT:        "BriefComments": [
+// JSON-INDEX-NEXT:          [
+// JSON-INDEX-NEXT:            {
+// JSON-INDEX-NEXT:              "TextComment": "Specify the size"
+// JSON-INDEX-NEXT:            }
+// JSON-INDEX-NEXT:          ]
+// JSON-INDEX-NEXT:        ],
+// JSON-INDEX-NEXT:        "HasBriefComments": true
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "HasComments": true,
+// JSON-INDEX-NEXT:      "InfoType": "enum",
+// JSON-INDEX-NEXT:      "Location": {
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "LineNumber": 26
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "Members": [
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "A pearl."
+// JSON-INDEX-NEXT:                },
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "Pearls are quite small."
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ],
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "Pearls are used in jewelry."
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Small",
+// JSON-INDEX-NEXT:          "Value": "0"
+// JSON-INDEX-NEXT:        },
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "BriefComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "A tennis ball."
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ],
+// JSON-INDEX-NEXT:            "HasBriefComments": true
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Medium",
+// JSON-INDEX-NEXT:          "Value": "1"
+// JSON-INDEX-NEXT:        },
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "A football."
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "End": true,
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "Large",
+// JSON-INDEX-NEXT:          "Value": "2"
+// JSON-INDEX-NEXT:        }
+// JSON-INDEX-NEXT:      ],
+// JSON-INDEX-NEXT:      "Name": "Size",
+// JSON-INDEX-NEXT:      "Scoped": false,
+// JSON-INDEX-NEXT:      "USR": "{{([0-9A-F]{40})}}"
+// JSON-INDEX-NEXT:    },
+// JSON-INDEX-NEXT:    {
+// JSON-INDEX-NEXT:      "BaseType": {
+// JSON-INDEX-NEXT:        "Name": "long long",
+// JSON-INDEX-NEXT:        "QualName": "long long",
+// JSON-INDEX-NEXT:        "USR": "0000000000000000000000000000000000000000"
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "Description": {
+// JSON-INDEX-NEXT:        "BriefComments": [
+// JSON-INDEX-NEXT:          [
+// JSON-INDEX-NEXT:            {
+// JSON-INDEX-NEXT:              "TextComment": "Very long number"
+// JSON-INDEX-NEXT:            }
+// JSON-INDEX-NEXT:          ]
+// JSON-INDEX-NEXT:        ],
+// JSON-INDEX-NEXT:        "HasBriefComments": true
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "HasComments": true,
+// JSON-INDEX-NEXT:      "InfoType": "enum",
+// JSON-INDEX-NEXT:      "Location": {
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "LineNumber": 43
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "Members": [
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Description": {
+// JSON-INDEX-NEXT:            "HasParagraphComments": true,
+// JSON-INDEX-NEXT:            "ParagraphComments": [
+// JSON-INDEX-NEXT:              [
+// JSON-INDEX-NEXT:                {
+// JSON-INDEX-NEXT:                  "TextComment": "A very large value"
+// JSON-INDEX-NEXT:                }
+// JSON-INDEX-NEXT:              ]
+// JSON-INDEX-NEXT:            ]
+// JSON-INDEX-NEXT:          },
+// JSON-INDEX-NEXT:          "End": true,
+// JSON-INDEX-NEXT:          "HasEnumMemberComments": true,
+// JSON-INDEX-NEXT:          "Name": "BigVal",
+// JSON-INDEX-NEXT:          "ValueExpr": "999999999999"
+// JSON-INDEX-NEXT:        }
+// JSON-INDEX-NEXT:      ],
+// JSON-INDEX-NEXT:      "Scoped": false,
+// JSON-INDEX-NEXT:      "USR": "{{([0-9A-F]{40})}}"
+// JSON-INDEX-NEXT:    },
+// JSON-INDEX-NEXT:    {
+// JSON-INDEX-NEXT:      "End": true,
+// JSON-INDEX-NEXT:      "InfoType": "enum",
+// JSON-INDEX-NEXT:      "Location": {
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "LineNumber": 47
+// JSON-INDEX-NEXT:      },
+// JSON-INDEX-NEXT:      "Members": [
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Name": "RedUserSpecified",
+// JSON-INDEX-NEXT:          "ValueExpr": "'A'"
+// JSON-INDEX-NEXT:        },
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "Name": "GreenUserSpecified",
+// JSON-INDEX-NEXT:          "ValueExpr": "2"
+// JSON-INDEX-NEXT:        },
+// JSON-INDEX-NEXT:        {
+// JSON-INDEX-NEXT:          "End": true,
+// JSON-INDEX-NEXT:          "Name": "BlueUserSpecified",
+// JSON-INDEX-NEXT:          "ValueExpr": "'C'"
+// JSON-INDEX-NEXT:        }
+// JSON-INDEX-NEXT:      ],
+// JSON-INDEX-NEXT:      "Name": "ColorUserSpecified",
+// JSON-INDEX-NEXT:      "Scoped": false,
+// JSON-INDEX-NEXT:      "USR": "{{([0-9A-F]{40})}}"
+// JSON-INDEX-NEXT:    }
+// JSON-INDEX-NEXT:  ],
+
+// JSON-VEHICLES-INDEX-LABEL:   "DocumentationFileName": "index",
+// JSON-VEHICLES-INDEX-NEXT:    "Enums": [
+// JSON-VEHICLES-INDEX-NEXT:      {
+// JSON-VEHICLES-INDEX-NEXT:        "Description": {
+// JSON-VEHICLES-INDEX-NEXT:          "BriefComments": [
+// JSON-VEHICLES-INDEX-NEXT:            [
+// JSON-VEHICLES-INDEX-NEXT:              {
+// JSON-VEHICLES-INDEX-NEXT:                "TextComment": "specify type of car"
+// JSON-VEHICLES-INDEX-NEXT:              }
+// JSON-VEHICLES-INDEX-NEXT:            ]
+// JSON-VEHICLES-INDEX-NEXT:          ],
+// JSON-VEHICLES-INDEX-NEXT:          "HasBriefComments": true
+// JSON-VEHICLES-INDEX-NEXT:        },
+// JSON-VEHICLES-INDEX-NEXT:        "End": true,
+// JSON-VEHICLES-INDEX-NEXT:        "HasComments": true,
+// JSON-VEHICLES-INDEX-NEXT:        "InfoType": "enum",
+// JSON-VEHICLES-INDEX-NEXT:        "Location": {
+// JSON-VEHICLES-INDEX-NEXT:          "Filename": "{{.*}}enum.cpp",
+// JSON-VEHICLES-INDEX-NEXT:          "LineNumber": 82
+// JSON-VEHICLES-INDEX-NEXT:        },
+// JSON-VEHICLES-INDEX-NEXT:        "Members": [
+// JSON-VEHICLES-INDEX-NEXT:          {
+// JSON-VEHICLES-INDEX-NEXT:            "Description": {
+// JSON-VEHICLES-INDEX-NEXT:              "HasParagraphComments": true,
+// JSON-VEHICLES-INDEX-NEXT:              "ParagraphComments": [
+// JSON-VEHICLES-INDEX-NEXT:                [
+// JSON-VEHICLES-INDEX-NEXT:                  {
+// JSON-VEHICLES-INDEX-NEXT:                    "TextComment": "Comment 1"
+// JSON-VEHICLES-INDEX-NEXT:                  }
+// JSON-VEHICLES-INDEX-NEXT:                ]
+// JSON-VEHICLES-INDEX-NEXT:              ]
+// JSON-VEHICLES-INDEX-NEXT:            },
+// JSON-VEHICLES-INDEX-NEXT:            "HasEnumMemberComments": true,
+// JSON-VEHICLES-INDEX-NEXT:            "Name": "Sedan",
+// JSON-VEHICLES-INDEX-NEXT:            "Value": "0"
+// JSON-VEHICLES-INDEX-NEXT:          },
+// JSON-VEHICLES-INDEX-NEXT:          {
+// JSON-VEHICLES-INDEX-NEXT:            "Description": {
+// JSON-VEHICLES-INDEX-NEXT:              "HasParagraphComments": true,
+// JSON-VEHICLES-INDEX-NEXT:              "ParagraphComments": [
+// JSON-VEHICLES-INDEX-NEXT:                [
+// JSON-VEHICLES-INDEX-NEXT:                  {
+// JSON-VEHICLES-INDEX-NEXT:                    "TextComment": "Comment 2"
+// JSON-VEHICLES-INDEX-NEXT:                  }
+// JSON-VEHICLES-INDEX-NEXT:                ]
+// JSON-VEHICLES-INDEX-NEXT:              ]
+// JSON-VEHICLES-INDEX-NEXT:            },
+// JSON-VEHICLES-INDEX-NEXT:            "HasEnumMemberComments": true,
+// JSON-VEHICLES-INDEX-NEXT:            "Name": "SUV",
+// JSON-VEHICLES-INDEX-NEXT:            "Value": "1"
+// JSON-VEHICLES-INDEX-NEXT:          },
+// JSON-VEHICLES-INDEX-NEXT:          {
+// JSON-VEHICLES-INDEX-NEXT:            "Name": "Pickup",
+// JSON-VEHICLES-INDEX-NEXT:            "Value": "2"
+// JSON-VEHICLES-INDEX-NEXT:          },
+// JSON-VEHICLES-INDEX-NEXT:          {
+// JSON-VEHICLES-INDEX-NEXT:            "Description": {
+// JSON-VEHICLES-INDEX-NEXT:              "HasParagraphComments": true,
+// JSON-VEHICLES-INDEX-NEXT:              "ParagraphComments": [
+// JSON-VEHICLES-INDEX-NEXT:                [
+// JSON-VEHICLES-INDEX-NEXT:                  {
+// JSON-VEHICLES-INDEX-NEXT:                    "TextComment": "Comment 4"
+// JSON-VEHICLES-INDEX-NEXT:                  }
+// JSON-VEHICLES-INDEX-NEXT:                ]
+// JSON-VEHICLES-INDEX-NEXT:              ]
+// JSON-VEHICLES-INDEX-NEXT:            },
+// JSON-VEHICLES-INDEX-NEXT:            "End": true,
+// JSON-VEHICLES-INDEX-NEXT:            "HasEnumMemberComments": true,
+// JSON-VEHICLES-INDEX-NEXT:            "Name": "Hatchback",
+// JSON-VEHICLES-INDEX-NEXT:            "Value": "3"
+// JSON-VEHICLES-INDEX-NEXT:          }
+// JSON-VEHICLES-INDEX-NEXT:        ],
+// JSON-VEHICLES-INDEX-NEXT:        "Name": "Car",
+// JSON-VEHICLES-INDEX-NEXT:        "Namespace": [
+// JSON-VEHICLES-INDEX-NEXT:          "Vehicles"
+// JSON-VEHICLES-INDEX-NEXT:        ],
+// JSON-VEHICLES-INDEX-NEXT:        "Scoped": false,
+// JSON-VEHICLES-INDEX-NEXT:        "USR": "{{([0-9A-F]{40})}}"
+// JSON-VEHICLES-INDEX-NEXT:      }
diff --git a/clang-tools-extra/test/clang-doc/json/enum.cpp b/clang-tools-extra/test/clang-doc/json/enum.cpp
deleted file mode 100644
index 442de78a03d77..0000000000000
--- a/clang-tools-extra/test/clang-doc/json/enum.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-// RUN: rm -rf %t && mkdir -p %t
-// RUN: clang-doc --output=%t --format=json --executor=standalone %s
-// RUN: FileCheck %s < %t/json/GlobalNamespace/index.json --check-prefix=JSON-INDEX
-// RUN: FileCheck %s < %t/json/Vehicles/index.json --check-prefix=JSON-VEHICLES-INDEX
-
-typedef unsigned char uint8_t;
-/**
- * @brief Specify the size
- */
-enum Size : uint8_t {
-  /// A pearl.
-  /// Pearls are quite small.
-  ///
-  /// Pearls are used in jewelry.
-  Small,
-
-  /// @brief A tennis ball.
-  Medium,
-
-  /// A football.
-  Large
-};
-
-// JSON-INDEX-LABEL: {
-// JSON-INDEX-NEXT:    "DocumentationFileName": "index",
-// JSON-INDEX-NEXT:    "Enums": [
-// JSON-INDEX-NEXT:      {
-// JSON-INDEX-NEXT:        "BaseType": {
-// JSON-INDEX-NEXT:          "Name": "uint8_t",
-// JSON-INDEX-NEXT:          "QualName": "uint8_t",
-// JSON-INDEX-NEXT:          "USR": "0000000000000000000000000000000000000000"
-// JSON-INDEX-NEXT:        },
-// JSON-INDEX-NEXT:        "Description": {
-// JSON-INDEX-NEXT:          "BriefComments": [
-// JSON-INDEX-NEXT:            [
-// JSON-INDEX-NEXT:              {
-// JSON-INDEX-NEXT:                "TextComment": "Specify the size"
-// JSON-INDEX-NEXT:              }
-// JSON-INDEX-NEXT:            ]
-// JSON-INDEX-NEXT:          ],
-// JSON-INDEX-NEXT:          "HasBriefComments": true
-// JSON-INDEX-NEXT:        },
-// JSON-INDEX-NEXT:        "End": true,
-// JSON-INDEX-NEXT:        "HasComments": true,
-// JSON-INDEX-NEXT:        "InfoType": "enum",
-// JSON-INDEX-NEXT:        "Location": {
-// JSON-INDEX-NEXT:          "Filename": "{{.*}}enum.cpp",
-// JSON-INDEX-NEXT:          "LineNumber": [[@LINE-38]]
-// JSON-INDEX-NEXT:        },
-// JSON-INDEX-NEXT:        "Members": [
-// JSON-INDEX-NEXT:          {
-// JSON-INDEX-NEXT:            "Description": {
-// JSON-INDEX-NEXT:              "HasParagraphComments": true,
-// JSON-INDEX-NEXT:              "ParagraphComments": [
-// JSON-INDEX-NEXT:                [
-// JSON-INDEX-NEXT:                  {
-// JSON-INDEX-NEXT:                    "TextComment": "A pearl."
-// JSON-INDEX-NEXT:                  },
-// JSON-INDEX-NEXT:                  {
-// JSON-INDEX-NEXT:                    "TextComment": "Pearls are quite small."
-// JSON-INDEX-NEXT:                  }
-// JSON-INDEX-NEXT:                ],
-// JSON-INDEX-NEXT:                [
-// JSON-INDEX-NEXT:                  {
-// JSON-INDEX-NEXT:                    "TextComment": "Pearls are used in jewelry."
-// JSON-INDEX-NEXT:                  }
-// JSON-INDEX-NEXT:                ]
-// JSON-INDEX-NEXT:              ]
-// JSON-INDEX-NEXT:            },
-// JSON-INDEX-NEXT:            "HasEnumMemberComments": true,
-// JSON-INDEX-NEXT:            "Name": "Small",
-// JSON-INDEX-NEXT:            "Value": "0"
-// JSON-INDEX-NEXT:          },
-// JSON-INDEX-NEXT:          {
-// JSON-INDEX-NEXT:            "Description": {
-// JSON-INDEX-NEXT:              "BriefComments": [
-// JSON-INDEX-NEXT:                [
-// JSON-INDEX-NEXT:                  {
-// JSON-INDEX-NEXT:                    "TextComment": "A tennis ball."
-// JSON-INDEX-NEXT:                  }
-// JSON-INDEX-NEXT:                ]
-// JSON-INDEX-NEXT:              ],
-// JSON-INDEX-NEXT:              "HasBriefComments": true
-// JSON-INDEX-NEXT:            },
-// JSON-INDEX-NEXT:            "HasEnumMemberComments": true,
-// JSON-INDEX-NEXT:            "Name": "Medium",
-// JSON-INDEX-NEXT:            "Value": "1"
-// JSON-INDEX-NEXT:          },
-// JSON-INDEX-NEXT:          {
-// JSON-INDEX-NEXT:            "Description": {
-// JSON-INDEX-NEXT:              "HasParagraphComments": true,
-// JSON-INDEX-NEXT:              "ParagraphComments": [
-// JSON-INDEX-NEXT:                [
-// JSON-INDEX-NEXT:                  {
-// JSON-INDEX-NEXT:                    "TextComment": "A football."
-// JSON-INDEX-NEXT:                  }
-// JSON-INDEX-NEXT:                ]
-// JSON-INDEX-NEXT:              ]
-// JSON-INDEX-NEXT:            },
-// JSON-INDEX-NEXT:            "End": true,
-// JSON-INDEX-NEXT:            "HasEnumMemberComments": true,
-// JSON-INDEX-NEXT:            "Name": "Large",
-// JSON-INDEX-NEXT:            "Value": "2"
-// JSON-INDEX-NEXT:          }
-// JSON-INDEX-NEXT:        ],
-// JSON-INDEX-NEXT:        "Name": "Size",
-// JSON-INDEX-NEXT:        "Scoped": false,
-// JSON-INDEX-NEXT:        "USR": "{{[0-9A-F]*}}"
-// JSON-INDEX-NEXT:      }
-
-namespace Vehicles {
-/**
- * @brief specify type of car
- */
-enum Car {
-  Sedan,    ///< Comment 1
-  SUV,      ///< Comment 2
-  Pickup,
-  Hatchback ///< Comment 4
-};
-} // namespace Vehicles
-
-// JSON-VEHICLES-INDEX-LABEL:   "DocumentationFileName": "index",
-// JSON-VEHICLES-INDEX-NEXT:    "Enums": [
-// JSON-VEHICLES-INDEX-NEXT:      {
-// JSON-VEHICLES-INDEX-NEXT:        "Description": {
-// JSON-VEHICLES-INDEX-NEXT:          "BriefComments": [
-// JSON-VEHICLES-INDEX-NEXT:            [
-// JSON-VEHICLES-INDEX-NEXT:              {
-// JSON-VEHICLES-INDEX-NEXT:                "TextComment": "specify type of car"
-// JSON-VEHICLES-INDEX-NEXT:              }
-// JSON-VEHICLES-INDEX-NEXT:            ]
-// JSON-VEHICLES-INDEX-NEXT:          ],
-// JSON-VEHICLES-INDEX-NEXT:          "HasBriefComments": true
-// JSON-VEHICLES-INDEX-NEXT:        },
-// JSON-VEHICLES-INDEX-NEXT:        "End": true,
-// JSON-VEHICLES-INDEX-NEXT:        "HasComments": true,
-// JSON-VEHICLES-INDEX-NEXT:        "InfoType": "enum",
-// JSON-VEHICLES-INDEX-NEXT:        "Location": {
-// JSON-VEHICLES-INDEX-NEXT:          "Filename": "{{.*}}enum.cpp",
-// JSON-VEHICLES-INDEX-NEXT:          "LineNumber": [[@LINE-26]]
-// JSON-VEHICLES-INDEX-NEXT:        },
-// JSON-VEHICLES-INDEX-NEXT:        "Members": [
-// JSON-VEHICLES-INDEX-NEXT:          {
-// JSON-VEHICLES-INDEX-NEXT:            "Description": {
-// JSON-VEHICLES-INDEX-NEXT:              "HasParagraphComments": true,
-// JSON-VEHICLES-INDEX-NEXT:              "ParagraphComments": [
-// JSON-VEHICLES-INDEX-NEXT:                [
-// JSON-VEHICLES-INDEX-NEXT:                  {
-// JSON-VEHICLES-INDEX-NEXT:                    "TextComment": "Comment 1"
-// JSON-VEHICLES-INDEX-NEXT:                  }
-// JSON-VEHICLES-INDEX-NEXT:                ]
-// JSON-VEHICLES-INDEX-NEXT:              ]
-// JSON-VEHICLES-INDEX-NEXT:            },
-// JSON-VEHICLES-INDEX-NEXT:            "HasEnumMemberComments": true,
-// JSON-VEHICLES-INDEX-NEXT:            "Name": "Sedan",
-// JSON-VEHICLES-INDEX-NEXT:            "Value": "0"
-// JSON-VEHICLES-INDEX-NEXT:          },
-// JSON-VEHICLES-INDEX-NEXT:          {
-// JSON-VEHICLES-INDEX-NEXT:            "Description": {
-// JSON-VEHICLES-INDEX-NEXT:              "HasParagraphComments": true,
-// JSON-VEHICLES-INDEX-NEXT:              "ParagraphComments": [
-// JSON-VEHICLES-INDEX-NEXT:                [
-// JSON-VEHICLES-INDEX-NEXT:                  {
-// JSON-VEHICLES-INDEX-NEXT:                    "TextComment": "Comment 2"
-// JSON-VEHICLES-INDEX-NEXT:                  }
-// JSON-VEHICLES-INDEX-NEXT:                ]
-// JSON-VEHICLES-INDEX-NEXT:              ]
-// JSON-VEHICLES-INDEX-NEXT:            },
-// JSON-VEHICLES-INDEX-NEXT:            "HasEnumMemberComments": true,
-// JSON-VEHICLES-INDEX-NEXT:            "Name": "SUV",
-// JSON-VEHICLES-INDEX-NEXT:            "Value": "1"
-// JSON-VEHICLES-INDEX-NEXT:          },
-// JSON-VEHICLES-INDEX-NEXT:          {
-// JSON-VEHICLES-INDEX-NEXT:            "Name": "Pickup",
-// JSON-VEHICLES-INDEX-NEXT:            "Value": "2"
-// JSON-VEHICLES-INDEX-NEXT:          },
-// JSON-VEHICLES-INDEX-NEXT:          {
-// JSON-VEHICLES-INDEX-NEXT:            "Description": {
-// JSON-VEHICLES-INDEX-NEXT:              "HasParagraphComments": true,
-// JSON-VEHICLES-INDEX-NEXT:              "ParagraphComments": [
-// JSON-VEHICLES-INDEX-NEXT:                [
-// JSON-VEHICLES-INDEX-NEXT:                  {
-// JSON-VEHICLES-INDEX-NEXT:                    "TextComment": "Comment 4"
-// JSON-VEHICLES-INDEX-NEXT:                  }
-// JSON-VEHICLES-INDEX-NEXT:                ]
-// JSON-VEHICLES-INDEX-NEXT:              ]
-// JSON-VEHICLES-INDEX-NEXT:            },
-// JSON-VEHICLES-INDEX-NEXT:            "End": true,
-// JSON-VEHICLES-INDEX-NEXT:            "HasEnumMemberComments": true,
-// JSON-VEHICLES-INDEX-NEXT:            "Name": "Hatchback",
-// JSON-VEHICLES-INDEX-NEXT:            "Value": "3"
-// JSON-VEHICLES-INDEX-NEXT:          }
-// JSON-VEHICLES-INDEX-NEXT:        ],
-// JSON-VEHICLES-INDEX-NEXT:        "Name": "Car",
-// JSON-VEHICLES-INDEX-NEXT:        "Namespace": [
-// JSON-VEHICLES-INDEX-NEXT:          "Vehicles"
-// JSON-VEHICLES-INDEX-NEXT:        ],
-// JSON-VEHICLES-INDEX-NEXT:        "Scoped": false,
-// JSON-VEHICLES-INDEX-NEXT:        "USR": "{{[0-9A-F]*}}"
-// JSON-VEHICLES-INDEX-NEXT:      }

>From 2102b13dcc9d3ae5e076e026dcb66f9148d694e8 Mon Sep 17 00:00:00 2001
From: Erick Velez <erickvelez7 at gmail.com>
Date: Fri, 20 Mar 2026 16:07:25 -0700
Subject: [PATCH 2/4] put JSON lines on top

---
 clang-tools-extra/test/clang-doc/enum.cpp | 896 +++++++++++-----------
 1 file changed, 448 insertions(+), 448 deletions(-)

diff --git a/clang-tools-extra/test/clang-doc/enum.cpp b/clang-tools-extra/test/clang-doc/enum.cpp
index 1eee719e60098..d615dc3fc98dc 100644
--- a/clang-tools-extra/test/clang-doc/enum.cpp
+++ b/clang-tools-extra/test/clang-doc/enum.cpp
@@ -16,454 +16,6 @@
 // RUN: FileCheck %s < %t/json/GlobalNamespace/index.json --check-prefix=JSON-INDEX
 // RUN: FileCheck %s < %t/json/Vehicles/index.json --check-prefix=JSON-VEHICLES-INDEX
 
-// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-INDEX-NEXT:     <div>
-// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum Color</code></pre>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <table class="table-wrapper">
-// HTML-INDEX-NEXT:         <tbody>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <th>Name</th>
-// HTML-INDEX-NEXT:                 <th>Value</th>
-// HTML-INDEX-NEXT:                 <th>Comments</th>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Red</td>
-// HTML-INDEX-NEXT:                 <td>0</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       Comment 1<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Green</td>
-// HTML-INDEX-NEXT:                 <td>1</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       Comment 2<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Blue</td>
-// HTML-INDEX-NEXT:                 <td>2</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       Comment 3<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:         </tbody>
-// HTML-INDEX-NEXT:     </table>
-// HTML-INDEX-NEXT:     <div class="doc-card">
-// HTML-INDEX-NEXT:       <div class="nested-delimiter-container">
-// HTML-INDEX-NEXT:           <p>For specifying RGB colors</p>
-// HTML-INDEX-NEXT:       </div>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX:        </div>
-
-// MD-INDEX: ## Enums
-// MD-INDEX: | enum Color |
-// MD-INDEX: | Name | Value | Comments |
-// MD-INDEX: |---|---|---|
-// MD-INDEX: | Red | 0 | Comment 1 |
-// MD-INDEX: | Green | 1 | Comment 2 |
-// MD-INDEX: | Blue | 2 | Comment 3 |
-// MD-INDEX: **brief** For specifying RGB colors
-
-// MD-MUSTACHE-INDEX: ## Enums
-// MD-MUSTACHE-INDEX: | enum Color |
-// MD-MUSTACHE-INDEX: --
-// MD-MUSTACHE-INDEX: | Red |
-// MD-MUSTACHE-INDEX: | Green |
-// MD-MUSTACHE-INDEX: | Blue |
-// MD-MUSTACHE-INDEX: **brief** For specifying RGB colors
-
-// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-INDEX-NEXT:     <div>
-// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum class Shapes</code></pre>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <table class="table-wrapper">
-// HTML-INDEX-NEXT:         <tbody>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <th>Name</th>
-// HTML-INDEX-NEXT:                 <th>Value</th>
-// HTML-INDEX-NEXT:                 <th>Comments</th>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Circle</td>
-// HTML-INDEX-NEXT:                 <td>0</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       Comment 1<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Rectangle</td>
-// HTML-INDEX-NEXT:                 <td>1</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       Comment 2<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Triangle</td>
-// HTML-INDEX-NEXT:                 <td>2</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       Comment 3<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:         </tbody>
-// HTML-INDEX-NEXT:     </table>
-// HTML-INDEX-NEXT:     <div class="doc-card">
-// HTML-INDEX-NEXT:       <div class="nested-delimiter-container">
-// HTML-INDEX-NEXT:           <p>Shape Types</p>
-// HTML-INDEX-NEXT:       </div>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX:        </div>
-
-// MD-INDEX: | enum class Shapes |
-// MD-INDEX: | Name | Value | Comments |
-// MD-INDEX: |---|---|---|
-// MD-INDEX: | Circle | 0 | Comment 1 |
-// MD-INDEX: | Rectangle | 1 | Comment 2 |
-// MD-INDEX: | Triangle | 2 | Comment 3 |
-// MD-INDEX: **brief** Shape Types
-
-// HTML-INDEX-LABEL:   <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-INDEX-NEXT:     <div>
-// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum Size : uint8_t</code></pre>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <table class="table-wrapper">
-// HTML-INDEX-NEXT:         <tbody>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <th>Name</th>
-// HTML-INDEX-NEXT:                 <th>Value</th>
-// HTML-INDEX-NEXT:                 <th>Comments</th>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Small</td>
-// HTML-INDEX-NEXT:                 <td>0</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       A pearl.<br>
-// HTML-INDEX-NEXT:                       Pearls are quite small.<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       Pearls are used in jewelry.<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Medium</td>
-// HTML-INDEX-NEXT:                 <td>1</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">A tennis ball.</p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>Large</td>
-// HTML-INDEX-NEXT:                 <td>2</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       A football.<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:         </tbody>
-// HTML-INDEX-NEXT:     </table>
-// HTML-INDEX-NEXT:     <div class="doc-card">
-// HTML-INDEX-NEXT:       <div class="nested-delimiter-container">
-// HTML-INDEX-NEXT:           <p>Specify the size</p>
-// HTML-INDEX-NEXT:       </div>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX:        </div>
-
-// MD-INDEX: | enum Size : uint8_t |
-// MD-INDEX: | Name | Value | Comments |
-// MD-INDEX: |---|---|---|
-// MD-INDEX: | Small | 0 | A pearl.<br>Pearls are quite small.<br><br>Pearls are used in jewelry. |
-// MD-INDEX: | Medium | 1 | A tennis ball. |
-// MD-INDEX: | Large | 2 | A football. |
-// MD-INDEX: **brief** Specify the size
-
-// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-INDEX-NEXT:     <div>
-// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum (unnamed) : long long</code></pre>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <table class="table-wrapper">
-// HTML-INDEX-NEXT:         <tbody>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <th>Name</th>
-// HTML-INDEX-NEXT:                 <th>Value</th>
-// HTML-INDEX-NEXT:                 <th>Comments</th>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>BigVal</td>
-// HTML-INDEX-NEXT:                 <td>999999999999</td>
-// HTML-INDEX-NEXT:                 <td>
-// HTML-INDEX-NEXT:                   <p class="paragraph-container">
-// HTML-INDEX-NEXT:                       A very large value<br>
-// HTML-INDEX-NEXT:                   </p>
-// HTML-INDEX-NEXT:                 </td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:         </tbody>
-// HTML-INDEX-NEXT:     </table>
-// HTML-INDEX-NEXT:     <div class="doc-card">
-// HTML-INDEX-NEXT:       <div class="nested-delimiter-container">
-// HTML-INDEX-NEXT:           <p>Very long number</p>
-// HTML-INDEX-NEXT:       </div>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX:        </div>
-
-// MD-INDEX: | enum (unnamed) : long long |
-// MD-INDEX: | Name | Value | Comments |
-// MD-INDEX: |---|---|---|
-// MD-INDEX: | BigVal | 999999999999 | A very large value |
-// MD-INDEX: **brief** Very long number
-
-// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-INDEX-NEXT:     <div>
-// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum ColorUserSpecified</code></pre>
-// HTML-INDEX-NEXT:     </div>
-// HTML-INDEX-NEXT:     <table class="table-wrapper">
-// HTML-INDEX-NEXT:         <tbody>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <th>Name</th>
-// HTML-INDEX-NEXT:                 <th>Value</th>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>RedUserSpecified</td>
-// HTML-INDEX-NEXT:                 <td>'A'</td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>GreenUserSpecified</td>
-// HTML-INDEX-NEXT:                 <td>2</td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:             <tr>
-// HTML-INDEX-NEXT:                 <td>BlueUserSpecified</td>
-// HTML-INDEX-NEXT:                 <td>'C'</td>
-// HTML-INDEX-NEXT:             </tr>
-// HTML-INDEX-NEXT:         </tbody>
-// HTML-INDEX-NEXT:     </table>
-// HTML-INDEX:        </div>
-
-// MD-INDEX: | enum ColorUserSpecified |
-// MD-INDEX: | Name | Value |
-// MD-INDEX: |---|---|
-// MD-INDEX: | RedUserSpecified | 65 |
-// MD-INDEX: | GreenUserSpecified | 2 |
-// MD-INDEX: | BlueUserSpecified | 67 |
-
-// MD-MUSTACHE-INDEX: | enum ColorUserSpecified |
-// MD-MUSTACHE-INDEX: --
-// MD-MUSTACHE-INDEX: | RedUserSpecified |
-// MD-MUSTACHE-INDEX: | GreenUserSpecified |
-// MD-MUSTACHE-INDEX: | BlueUserSpecified |
-
-// HTML-PERM-LABEL:  <section id="Enums" class="section-container">
-// HTML-PERM-NEXT:     <h2>Enumerations</h2>
-// HTML-PERM-NEXT:     <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-PERM-NEXT:       <div>
-// HTML-PERM-NEXT:         <pre><code class="language-cpp code-clang-doc">enum (unnamed)</code></pre>
-// HTML-PERM-NEXT:       </div>
-// HTML-PERM-NEXT:       <table class="table-wrapper">
-// HTML-PERM-NEXT:           <tbody>
-// HTML-PERM-NEXT:               <tr>
-// HTML-PERM-NEXT:                   <th>Name</th>
-// HTML-PERM-NEXT:                   <th>Value</th>
-// HTML-PERM-NEXT:                   <th>Comments</th>
-// HTML-PERM-NEXT:               </tr>
-// HTML-PERM-NEXT:               <tr>
-// HTML-PERM-NEXT:                   <td>Read</td>
-// HTML-PERM-NEXT:                   <td>1</td>
-// HTML-PERM-NEXT:                   <td>
-// HTML-PERM-NEXT:                     <p class="paragraph-container">
-// HTML-PERM-NEXT:                         Permission to READ r<br>
-// HTML-PERM-NEXT:                     </p>
-// HTML-PERM-NEXT:                   </td>
-// HTML-PERM-NEXT:               </tr>
-// HTML-PERM-NEXT:               <tr>
-// HTML-PERM-NEXT:                   <td>Write</td>
-// HTML-PERM-NEXT:                   <td>2</td>
-// HTML-PERM-NEXT:                  <td>
-// HTML-PERM-NEXT:                     <p class="paragraph-container">
-// HTML-PERM-NEXT:                         Permission to WRITE w<br>
-// HTML-PERM-NEXT:                     </p>
-// HTML-PERM-NEXT:                   </td>
-// HTML-PERM-NEXT:               </tr>
-// HTML-PERM-NEXT:               <tr>
-// HTML-PERM-NEXT:                   <td>Execute</td>
-// HTML-PERM-NEXT:                   <td>4</td>
-// HTML-PERM-NEXT:                   <td>
-// HTML-PERM-NEXT:                     <p class="paragraph-container">
-// HTML-PERM-NEXT:                         Permission to EXECUTE x<br>
-// HTML-PERM-NEXT:                     </p>
-// HTML-PERM-NEXT:                   </td>
-// HTML-PERM-NEXT:               </tr>
-// HTML-PERM-NEXT:           </tbody>
-// HTML-PERM-NEXT:       </table>
-// HTML-PERM-NEXT:       <div class="doc-card">
-// HTML-PERM-NEXT:         <div class="nested-delimiter-container">
-// HTML-PERM-NEXT:             <p>File permission flags</p>
-// HTML-PERM-NEXT:         </div>
-// HTML-PERM:        </section>
-
-// MD-PERM: | enum (unnamed) |
-// MD-PERM: | Name | Value | Comments |
-// MD-PERM: |---|---|---|
-// MD-PERM: | Read | 1 | Permission to READ r |
-// MD-PERM: | Write | 2 | Permission to WRITE w |
-// MD-PERM: | Execute | 4 | Permission to EXECUTE x |
-// MD-PERM: **brief** File permission flags
-
-// HTML-ANIMAL-LABEL:   <section id="Enums" class="section-container">
-// HTML-ANIMAL-NEXT:      <h2>Enumerations</h2>
-// HTML-ANIMAL-NEXT:      <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-ANIMAL-NEXT:         <div>
-// HTML-ANIMAL-NEXT:           <pre><code class="language-cpp code-clang-doc">enum AnimalType</code></pre>
-// HTML-ANIMAL-NEXT:         </div>
-// HTML-ANIMAL-NEXT:         <table class="table-wrapper">
-// HTML-ANIMAL-NEXT:             <tbody>
-// HTML-ANIMAL-NEXT:                 <tr>
-// HTML-ANIMAL-NEXT:                     <th>Name</th>
-// HTML-ANIMAL-NEXT:                     <th>Value</th>
-// HTML-ANIMAL-NEXT:                     <th>Comments</th>
-// HTML-ANIMAL-NEXT:                 </tr>
-// HTML-ANIMAL-NEXT:                 <tr>
-// HTML-ANIMAL-NEXT:                     <td>Dog</td>
-// HTML-ANIMAL-NEXT:                     <td>0</td>
-// HTML-ANIMAL-NEXT:                     <td>
-// HTML-ANIMAL-NEXT:                       <p class="paragraph-container">
-// HTML-ANIMAL-NEXT:                           Man's best friend<br>
-// HTML-ANIMAL-NEXT:                       </p>
-// HTML-ANIMAL-NEXT:                     </td>
-// HTML-ANIMAL-NEXT:                 </tr>
-// HTML-ANIMAL-NEXT:                 <tr>
-// HTML-ANIMAL-NEXT:                     <td>Cat</td>
-// HTML-ANIMAL-NEXT:                     <td>1</td>
-// HTML-ANIMAL-NEXT:                     <td>
-// HTML-ANIMAL-NEXT:                       <p class="paragraph-container">
-// HTML-ANIMAL-NEXT:                           Man's other best friend<br>
-// HTML-ANIMAL-NEXT:                       </p>
-// HTML-ANIMAL-NEXT:                     </td>
-// HTML-ANIMAL-NEXT:                 </tr>
-// HTML-ANIMAL-NEXT:                 <tr>
-// HTML-ANIMAL-NEXT:                     <td>Iguana</td>
-// HTML-ANIMAL-NEXT:                     <td>2</td>
-// HTML-ANIMAL-NEXT:                     <td>
-// HTML-ANIMAL-NEXT:                       <p class="paragraph-container">
-// HTML-ANIMAL-NEXT:                           A lizard<br>
-// HTML-ANIMAL-NEXT:                       </p>
-// HTML-ANIMAL-NEXT:                     </td>
-// HTML-ANIMAL-NEXT:                 </tr>
-// HTML-ANIMAL-NEXT:             </tbody>
-// HTML-ANIMAL-NEXT:         </table>
-// HTML-ANIMAL-NEXT:         <div class="doc-card">
-// HTML-ANIMAL-NEXT:             <div class="nested-delimiter-container">
-// HTML-ANIMAL-NEXT:                 <p>specify what animal the class is</p>
-// HTML-ANIMAL-NEXT:             </div>
-// HTML-ANIMAL-NEXT:         </div>
-// HTML-ANIMAL:           </div>
-// HTML-ANIMAL-NEXT:    </section>
-
-// MD-ANIMAL: # class Animals
-// MD-ANIMAL: ## Enums
-// MD-ANIMAL: | enum AnimalType |
-// MD-ANIMAL: | Name | Value | Comments |
-// MD-ANIMAL: |---|---|---|
-// MD-ANIMAL: | Dog | 0 | Man's best friend |
-// MD-ANIMAL: | Cat | 1 | Man's other best friend |
-// MD-ANIMAL: | Iguana | 2 | A lizard |
-// MD-ANIMAL: **brief** specify what animal the class is
-
-// MD-MUSTACHE-ANIMAL: # class Animals
-// MD-MUSTACHE-ANIMAL: ## Enums
-// MD-MUSTACHE-ANIMAL: | enum AnimalType |
-// MD-MUSTACHE-ANIMAL: --
-// MD-MUSTACHE-ANIMAL: | Dog |
-// MD-MUSTACHE-ANIMAL: | Cat |
-// MD-MUSTACHE-ANIMAL: | Iguana |
-// MD-MUSTACHE-ANIMAL: **brief** specify what animal the class is
-
-// HTML-VEHICLES-LABEL:   <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
-// HTML-VEHICLES-NEXT:      <div>
-// HTML-VEHICLES-NEXT:       <pre><code class="language-cpp code-clang-doc">enum Car</code></pre>
-// HTML-VEHICLES-NEXT:      </div>
-// HTML-VEHICLES-NEXT:      <table class="table-wrapper">
-// HTML-VEHICLES-NEXT:          <tbody>
-// HTML-VEHICLES-NEXT:              <tr>
-// HTML-VEHICLES-NEXT:                  <th>Name</th>
-// HTML-VEHICLES-NEXT:                  <th>Value</th>
-// HTML-VEHICLES-NEXT:                  <th>Comments</th>
-// HTML-VEHICLES-NEXT:              </tr>
-// HTML-VEHICLES-NEXT:              <tr>
-// HTML-VEHICLES-NEXT:                  <td>Sedan</td>
-// HTML-VEHICLES-NEXT:                  <td>0</td>
-// HTML-VEHICLES-NEXT:                  <td>
-// HTML-VEHICLES-NEXT:                    <p class="paragraph-container">
-// HTML-VEHICLES-NEXT:                        Comment 1<br>
-// HTML-VEHICLES-NEXT:                    </p>
-// HTML-VEHICLES-NEXT:                  </td>
-// HTML-VEHICLES-NEXT:              </tr>
-// HTML-VEHICLES-NEXT:              <tr>
-// HTML-VEHICLES-NEXT:                  <td>SUV</td>
-// HTML-VEHICLES-NEXT:                  <td>1</td>
-// HTML-VEHICLES-NEXT:                  <td>
-// HTML-VEHICLES-NEXT:                    <p class="paragraph-container">
-// HTML-VEHICLES-NEXT:                        Comment 2<br>
-// HTML-VEHICLES-NEXT:                    </p>
-// HTML-VEHICLES-NEXT:                  </td>
-// HTML-VEHICLES-NEXT:              </tr>
-// HTML-VEHICLES-NEXT:              <tr>
-// HTML-VEHICLES-NEXT:                  <td>Pickup</td>
-// HTML-VEHICLES-NEXT:                  <td>2</td>
-// HTML-VEHICLES-NEXT:                  <td> -- </td>
-// HTML-VEHICLES-NEXT:              </tr>
-// HTML-VEHICLES-NEXT:              <tr>
-// HTML-VEHICLES-NEXT:                  <td>Hatchback</td>
-// HTML-VEHICLES-NEXT:                  <td>3</td>
-// HTML-VEHICLES-NEXT:                  <td>
-// HTML-VEHICLES-NEXT:                    <p class="paragraph-container">
-// HTML-VEHICLES-NEXT:                        Comment 4<br>
-// HTML-VEHICLES-NEXT:                    </p>
-// HTML-VEHICLES-NEXT:                  </td>
-// HTML-VEHICLES-NEXT:              </tr>
-// HTML-VEHICLES-NEXT:          </tbody>
-// HTML-VEHICLES-NEXT:      </table>
-// HTML-VEHICLES-NEXT:      <div class="doc-card">
-// HTML-VEHICLES-NEXT:        <div class="nested-delimiter-container">
-// HTML-VEHICLES-NEXT:           <p>specify type of car</p>
-// HTML-VEHICLES-NEXT:        </div>
-// HTML-VEHICLES-NEXT:      </div>
-// HTML-VEHICLES:         </div>
-
-// MD-VEHICLES: # namespace Vehicles
-// MD-VEHICLES: ## Enums
-// MD-VEHICLES: | enum Car |
-// MD-VEHICLES: | Name | Value | Comments |
-// MD-VEHICLES: |---|---|---|
-// MD-VEHICLES: | Sedan | 0 | Comment 1 |
-// MD-VEHICLES: | SUV | 1 | Comment 2 |
-// MD-VEHICLES: | Pickup | 2 | -- |
-// MD-VEHICLES: | Hatchback | 3 | Comment 4 |
-// MD-VEHICLES: **brief** specify type of car
-
-// MD-MUSTACHE-VEHICLES: # namespace Vehicles
-// MD-MUSTACHE-VEHICLES: ## Enums
-// MD-MUSTACHE-VEHICLES: | enum Car |
-// MD-MUSTACHE-VEHICLES: --
-// MD-MUSTACHE-VEHICLES: | Sedan |
-// MD-MUSTACHE-VEHICLES: | SUV |
-// MD-MUSTACHE-VEHICLES: | Pickup |
-// MD-MUSTACHE-VEHICLES: | Hatchback |
-// MD-MUSTACHE-VEHICLES: **brief** specify type of car
-
 // JSON-INDEX:      {
 // JSON-INDEX-NEXT:  "DocumentationFileName": "index",
 // JSON-INDEX-NEXT:  "Enums": [
@@ -758,6 +310,454 @@
 // JSON-INDEX-NEXT:    }
 // JSON-INDEX-NEXT:  ],
 
+// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-INDEX-NEXT:     <div>
+// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum Color</code></pre>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX-NEXT:     <table class="table-wrapper">
+// HTML-INDEX-NEXT:         <tbody>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <th>Name</th>
+// HTML-INDEX-NEXT:                 <th>Value</th>
+// HTML-INDEX-NEXT:                 <th>Comments</th>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Red</td>
+// HTML-INDEX-NEXT:                 <td>0</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       Comment 1<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Green</td>
+// HTML-INDEX-NEXT:                 <td>1</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       Comment 2<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Blue</td>
+// HTML-INDEX-NEXT:                 <td>2</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       Comment 3<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:         </tbody>
+// HTML-INDEX-NEXT:     </table>
+// HTML-INDEX-NEXT:     <div class="doc-card">
+// HTML-INDEX-NEXT:       <div class="nested-delimiter-container">
+// HTML-INDEX-NEXT:           <p>For specifying RGB colors</p>
+// HTML-INDEX-NEXT:       </div>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX:        </div>
+
+// MD-INDEX: ## Enums
+// MD-INDEX: | enum Color |
+// MD-INDEX: | Name | Value | Comments |
+// MD-INDEX: |---|---|---|
+// MD-INDEX: | Red | 0 | Comment 1 |
+// MD-INDEX: | Green | 1 | Comment 2 |
+// MD-INDEX: | Blue | 2 | Comment 3 |
+// MD-INDEX: **brief** For specifying RGB colors
+
+// MD-MUSTACHE-INDEX: ## Enums
+// MD-MUSTACHE-INDEX: | enum Color |
+// MD-MUSTACHE-INDEX: --
+// MD-MUSTACHE-INDEX: | Red |
+// MD-MUSTACHE-INDEX: | Green |
+// MD-MUSTACHE-INDEX: | Blue |
+// MD-MUSTACHE-INDEX: **brief** For specifying RGB colors
+
+// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-INDEX-NEXT:     <div>
+// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum class Shapes</code></pre>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX-NEXT:     <table class="table-wrapper">
+// HTML-INDEX-NEXT:         <tbody>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <th>Name</th>
+// HTML-INDEX-NEXT:                 <th>Value</th>
+// HTML-INDEX-NEXT:                 <th>Comments</th>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Circle</td>
+// HTML-INDEX-NEXT:                 <td>0</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       Comment 1<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Rectangle</td>
+// HTML-INDEX-NEXT:                 <td>1</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       Comment 2<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Triangle</td>
+// HTML-INDEX-NEXT:                 <td>2</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       Comment 3<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:         </tbody>
+// HTML-INDEX-NEXT:     </table>
+// HTML-INDEX-NEXT:     <div class="doc-card">
+// HTML-INDEX-NEXT:       <div class="nested-delimiter-container">
+// HTML-INDEX-NEXT:           <p>Shape Types</p>
+// HTML-INDEX-NEXT:       </div>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX:        </div>
+
+// MD-INDEX: | enum class Shapes |
+// MD-INDEX: | Name | Value | Comments |
+// MD-INDEX: |---|---|---|
+// MD-INDEX: | Circle | 0 | Comment 1 |
+// MD-INDEX: | Rectangle | 1 | Comment 2 |
+// MD-INDEX: | Triangle | 2 | Comment 3 |
+// MD-INDEX: **brief** Shape Types
+
+// HTML-INDEX-LABEL:   <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-INDEX-NEXT:     <div>
+// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum Size : uint8_t</code></pre>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX-NEXT:     <table class="table-wrapper">
+// HTML-INDEX-NEXT:         <tbody>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <th>Name</th>
+// HTML-INDEX-NEXT:                 <th>Value</th>
+// HTML-INDEX-NEXT:                 <th>Comments</th>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Small</td>
+// HTML-INDEX-NEXT:                 <td>0</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       A pearl.<br>
+// HTML-INDEX-NEXT:                       Pearls are quite small.<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       Pearls are used in jewelry.<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Medium</td>
+// HTML-INDEX-NEXT:                 <td>1</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">A tennis ball.</p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>Large</td>
+// HTML-INDEX-NEXT:                 <td>2</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       A football.<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:         </tbody>
+// HTML-INDEX-NEXT:     </table>
+// HTML-INDEX-NEXT:     <div class="doc-card">
+// HTML-INDEX-NEXT:       <div class="nested-delimiter-container">
+// HTML-INDEX-NEXT:           <p>Specify the size</p>
+// HTML-INDEX-NEXT:       </div>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX:        </div>
+
+// MD-INDEX: | enum Size : uint8_t |
+// MD-INDEX: | Name | Value | Comments |
+// MD-INDEX: |---|---|---|
+// MD-INDEX: | Small | 0 | A pearl.<br>Pearls are quite small.<br><br>Pearls are used in jewelry. |
+// MD-INDEX: | Medium | 1 | A tennis ball. |
+// MD-INDEX: | Large | 2 | A football. |
+// MD-INDEX: **brief** Specify the size
+
+// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-INDEX-NEXT:     <div>
+// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum (unnamed) : long long</code></pre>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX-NEXT:     <table class="table-wrapper">
+// HTML-INDEX-NEXT:         <tbody>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <th>Name</th>
+// HTML-INDEX-NEXT:                 <th>Value</th>
+// HTML-INDEX-NEXT:                 <th>Comments</th>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>BigVal</td>
+// HTML-INDEX-NEXT:                 <td>999999999999</td>
+// HTML-INDEX-NEXT:                 <td>
+// HTML-INDEX-NEXT:                   <p class="paragraph-container">
+// HTML-INDEX-NEXT:                       A very large value<br>
+// HTML-INDEX-NEXT:                   </p>
+// HTML-INDEX-NEXT:                 </td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:         </tbody>
+// HTML-INDEX-NEXT:     </table>
+// HTML-INDEX-NEXT:     <div class="doc-card">
+// HTML-INDEX-NEXT:       <div class="nested-delimiter-container">
+// HTML-INDEX-NEXT:           <p>Very long number</p>
+// HTML-INDEX-NEXT:       </div>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX:        </div>
+
+// MD-INDEX: | enum (unnamed) : long long |
+// MD-INDEX: | Name | Value | Comments |
+// MD-INDEX: |---|---|---|
+// MD-INDEX: | BigVal | 999999999999 | A very large value |
+// MD-INDEX: **brief** Very long number
+
+// HTML-INDEX-LABEL:  <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-INDEX-NEXT:     <div>
+// HTML-INDEX-NEXT:       <pre><code class="language-cpp code-clang-doc">enum ColorUserSpecified</code></pre>
+// HTML-INDEX-NEXT:     </div>
+// HTML-INDEX-NEXT:     <table class="table-wrapper">
+// HTML-INDEX-NEXT:         <tbody>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <th>Name</th>
+// HTML-INDEX-NEXT:                 <th>Value</th>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>RedUserSpecified</td>
+// HTML-INDEX-NEXT:                 <td>'A'</td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>GreenUserSpecified</td>
+// HTML-INDEX-NEXT:                 <td>2</td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:             <tr>
+// HTML-INDEX-NEXT:                 <td>BlueUserSpecified</td>
+// HTML-INDEX-NEXT:                 <td>'C'</td>
+// HTML-INDEX-NEXT:             </tr>
+// HTML-INDEX-NEXT:         </tbody>
+// HTML-INDEX-NEXT:     </table>
+// HTML-INDEX:        </div>
+
+// MD-INDEX: | enum ColorUserSpecified |
+// MD-INDEX: | Name | Value |
+// MD-INDEX: |---|---|
+// MD-INDEX: | RedUserSpecified | 65 |
+// MD-INDEX: | GreenUserSpecified | 2 |
+// MD-INDEX: | BlueUserSpecified | 67 |
+
+// MD-MUSTACHE-INDEX: | enum ColorUserSpecified |
+// MD-MUSTACHE-INDEX: --
+// MD-MUSTACHE-INDEX: | RedUserSpecified |
+// MD-MUSTACHE-INDEX: | GreenUserSpecified |
+// MD-MUSTACHE-INDEX: | BlueUserSpecified |
+
+// HTML-PERM-LABEL:  <section id="Enums" class="section-container">
+// HTML-PERM-NEXT:     <h2>Enumerations</h2>
+// HTML-PERM-NEXT:     <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-PERM-NEXT:       <div>
+// HTML-PERM-NEXT:         <pre><code class="language-cpp code-clang-doc">enum (unnamed)</code></pre>
+// HTML-PERM-NEXT:       </div>
+// HTML-PERM-NEXT:       <table class="table-wrapper">
+// HTML-PERM-NEXT:           <tbody>
+// HTML-PERM-NEXT:               <tr>
+// HTML-PERM-NEXT:                   <th>Name</th>
+// HTML-PERM-NEXT:                   <th>Value</th>
+// HTML-PERM-NEXT:                   <th>Comments</th>
+// HTML-PERM-NEXT:               </tr>
+// HTML-PERM-NEXT:               <tr>
+// HTML-PERM-NEXT:                   <td>Read</td>
+// HTML-PERM-NEXT:                   <td>1</td>
+// HTML-PERM-NEXT:                   <td>
+// HTML-PERM-NEXT:                     <p class="paragraph-container">
+// HTML-PERM-NEXT:                         Permission to READ r<br>
+// HTML-PERM-NEXT:                     </p>
+// HTML-PERM-NEXT:                   </td>
+// HTML-PERM-NEXT:               </tr>
+// HTML-PERM-NEXT:               <tr>
+// HTML-PERM-NEXT:                   <td>Write</td>
+// HTML-PERM-NEXT:                   <td>2</td>
+// HTML-PERM-NEXT:                  <td>
+// HTML-PERM-NEXT:                     <p class="paragraph-container">
+// HTML-PERM-NEXT:                         Permission to WRITE w<br>
+// HTML-PERM-NEXT:                     </p>
+// HTML-PERM-NEXT:                   </td>
+// HTML-PERM-NEXT:               </tr>
+// HTML-PERM-NEXT:               <tr>
+// HTML-PERM-NEXT:                   <td>Execute</td>
+// HTML-PERM-NEXT:                   <td>4</td>
+// HTML-PERM-NEXT:                   <td>
+// HTML-PERM-NEXT:                     <p class="paragraph-container">
+// HTML-PERM-NEXT:                         Permission to EXECUTE x<br>
+// HTML-PERM-NEXT:                     </p>
+// HTML-PERM-NEXT:                   </td>
+// HTML-PERM-NEXT:               </tr>
+// HTML-PERM-NEXT:           </tbody>
+// HTML-PERM-NEXT:       </table>
+// HTML-PERM-NEXT:       <div class="doc-card">
+// HTML-PERM-NEXT:         <div class="nested-delimiter-container">
+// HTML-PERM-NEXT:             <p>File permission flags</p>
+// HTML-PERM-NEXT:         </div>
+// HTML-PERM:        </section>
+
+// MD-PERM: | enum (unnamed) |
+// MD-PERM: | Name | Value | Comments |
+// MD-PERM: |---|---|---|
+// MD-PERM: | Read | 1 | Permission to READ r |
+// MD-PERM: | Write | 2 | Permission to WRITE w |
+// MD-PERM: | Execute | 4 | Permission to EXECUTE x |
+// MD-PERM: **brief** File permission flags
+
+// HTML-ANIMAL-LABEL:   <section id="Enums" class="section-container">
+// HTML-ANIMAL-NEXT:      <h2>Enumerations</h2>
+// HTML-ANIMAL-NEXT:      <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-ANIMAL-NEXT:         <div>
+// HTML-ANIMAL-NEXT:           <pre><code class="language-cpp code-clang-doc">enum AnimalType</code></pre>
+// HTML-ANIMAL-NEXT:         </div>
+// HTML-ANIMAL-NEXT:         <table class="table-wrapper">
+// HTML-ANIMAL-NEXT:             <tbody>
+// HTML-ANIMAL-NEXT:                 <tr>
+// HTML-ANIMAL-NEXT:                     <th>Name</th>
+// HTML-ANIMAL-NEXT:                     <th>Value</th>
+// HTML-ANIMAL-NEXT:                     <th>Comments</th>
+// HTML-ANIMAL-NEXT:                 </tr>
+// HTML-ANIMAL-NEXT:                 <tr>
+// HTML-ANIMAL-NEXT:                     <td>Dog</td>
+// HTML-ANIMAL-NEXT:                     <td>0</td>
+// HTML-ANIMAL-NEXT:                     <td>
+// HTML-ANIMAL-NEXT:                       <p class="paragraph-container">
+// HTML-ANIMAL-NEXT:                           Man's best friend<br>
+// HTML-ANIMAL-NEXT:                       </p>
+// HTML-ANIMAL-NEXT:                     </td>
+// HTML-ANIMAL-NEXT:                 </tr>
+// HTML-ANIMAL-NEXT:                 <tr>
+// HTML-ANIMAL-NEXT:                     <td>Cat</td>
+// HTML-ANIMAL-NEXT:                     <td>1</td>
+// HTML-ANIMAL-NEXT:                     <td>
+// HTML-ANIMAL-NEXT:                       <p class="paragraph-container">
+// HTML-ANIMAL-NEXT:                           Man's other best friend<br>
+// HTML-ANIMAL-NEXT:                       </p>
+// HTML-ANIMAL-NEXT:                     </td>
+// HTML-ANIMAL-NEXT:                 </tr>
+// HTML-ANIMAL-NEXT:                 <tr>
+// HTML-ANIMAL-NEXT:                     <td>Iguana</td>
+// HTML-ANIMAL-NEXT:                     <td>2</td>
+// HTML-ANIMAL-NEXT:                     <td>
+// HTML-ANIMAL-NEXT:                       <p class="paragraph-container">
+// HTML-ANIMAL-NEXT:                           A lizard<br>
+// HTML-ANIMAL-NEXT:                       </p>
+// HTML-ANIMAL-NEXT:                     </td>
+// HTML-ANIMAL-NEXT:                 </tr>
+// HTML-ANIMAL-NEXT:             </tbody>
+// HTML-ANIMAL-NEXT:         </table>
+// HTML-ANIMAL-NEXT:         <div class="doc-card">
+// HTML-ANIMAL-NEXT:             <div class="nested-delimiter-container">
+// HTML-ANIMAL-NEXT:                 <p>specify what animal the class is</p>
+// HTML-ANIMAL-NEXT:             </div>
+// HTML-ANIMAL-NEXT:         </div>
+// HTML-ANIMAL:           </div>
+// HTML-ANIMAL-NEXT:    </section>
+
+// MD-ANIMAL: # class Animals
+// MD-ANIMAL: ## Enums
+// MD-ANIMAL: | enum AnimalType |
+// MD-ANIMAL: | Name | Value | Comments |
+// MD-ANIMAL: |---|---|---|
+// MD-ANIMAL: | Dog | 0 | Man's best friend |
+// MD-ANIMAL: | Cat | 1 | Man's other best friend |
+// MD-ANIMAL: | Iguana | 2 | A lizard |
+// MD-ANIMAL: **brief** specify what animal the class is
+
+// MD-MUSTACHE-ANIMAL: # class Animals
+// MD-MUSTACHE-ANIMAL: ## Enums
+// MD-MUSTACHE-ANIMAL: | enum AnimalType |
+// MD-MUSTACHE-ANIMAL: --
+// MD-MUSTACHE-ANIMAL: | Dog |
+// MD-MUSTACHE-ANIMAL: | Cat |
+// MD-MUSTACHE-ANIMAL: | Iguana |
+// MD-MUSTACHE-ANIMAL: **brief** specify what animal the class is
+
+// HTML-VEHICLES-LABEL:   <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
+// HTML-VEHICLES-NEXT:      <div>
+// HTML-VEHICLES-NEXT:       <pre><code class="language-cpp code-clang-doc">enum Car</code></pre>
+// HTML-VEHICLES-NEXT:      </div>
+// HTML-VEHICLES-NEXT:      <table class="table-wrapper">
+// HTML-VEHICLES-NEXT:          <tbody>
+// HTML-VEHICLES-NEXT:              <tr>
+// HTML-VEHICLES-NEXT:                  <th>Name</th>
+// HTML-VEHICLES-NEXT:                  <th>Value</th>
+// HTML-VEHICLES-NEXT:                  <th>Comments</th>
+// HTML-VEHICLES-NEXT:              </tr>
+// HTML-VEHICLES-NEXT:              <tr>
+// HTML-VEHICLES-NEXT:                  <td>Sedan</td>
+// HTML-VEHICLES-NEXT:                  <td>0</td>
+// HTML-VEHICLES-NEXT:                  <td>
+// HTML-VEHICLES-NEXT:                    <p class="paragraph-container">
+// HTML-VEHICLES-NEXT:                        Comment 1<br>
+// HTML-VEHICLES-NEXT:                    </p>
+// HTML-VEHICLES-NEXT:                  </td>
+// HTML-VEHICLES-NEXT:              </tr>
+// HTML-VEHICLES-NEXT:              <tr>
+// HTML-VEHICLES-NEXT:                  <td>SUV</td>
+// HTML-VEHICLES-NEXT:                  <td>1</td>
+// HTML-VEHICLES-NEXT:                  <td>
+// HTML-VEHICLES-NEXT:                    <p class="paragraph-container">
+// HTML-VEHICLES-NEXT:                        Comment 2<br>
+// HTML-VEHICLES-NEXT:                    </p>
+// HTML-VEHICLES-NEXT:                  </td>
+// HTML-VEHICLES-NEXT:              </tr>
+// HTML-VEHICLES-NEXT:              <tr>
+// HTML-VEHICLES-NEXT:                  <td>Pickup</td>
+// HTML-VEHICLES-NEXT:                  <td>2</td>
+// HTML-VEHICLES-NEXT:                  <td> -- </td>
+// HTML-VEHICLES-NEXT:              </tr>
+// HTML-VEHICLES-NEXT:              <tr>
+// HTML-VEHICLES-NEXT:                  <td>Hatchback</td>
+// HTML-VEHICLES-NEXT:                  <td>3</td>
+// HTML-VEHICLES-NEXT:                  <td>
+// HTML-VEHICLES-NEXT:                    <p class="paragraph-container">
+// HTML-VEHICLES-NEXT:                        Comment 4<br>
+// HTML-VEHICLES-NEXT:                    </p>
+// HTML-VEHICLES-NEXT:                  </td>
+// HTML-VEHICLES-NEXT:              </tr>
+// HTML-VEHICLES-NEXT:          </tbody>
+// HTML-VEHICLES-NEXT:      </table>
+// HTML-VEHICLES-NEXT:      <div class="doc-card">
+// HTML-VEHICLES-NEXT:        <div class="nested-delimiter-container">
+// HTML-VEHICLES-NEXT:           <p>specify type of car</p>
+// HTML-VEHICLES-NEXT:        </div>
+// HTML-VEHICLES-NEXT:      </div>
+// HTML-VEHICLES:         </div>
+
+// MD-VEHICLES: # namespace Vehicles
+// MD-VEHICLES: ## Enums
+// MD-VEHICLES: | enum Car |
+// MD-VEHICLES: | Name | Value | Comments |
+// MD-VEHICLES: |---|---|---|
+// MD-VEHICLES: | Sedan | 0 | Comment 1 |
+// MD-VEHICLES: | SUV | 1 | Comment 2 |
+// MD-VEHICLES: | Pickup | 2 | -- |
+// MD-VEHICLES: | Hatchback | 3 | Comment 4 |
+// MD-VEHICLES: **brief** specify type of car
+
+// MD-MUSTACHE-VEHICLES: # namespace Vehicles
+// MD-MUSTACHE-VEHICLES: ## Enums
+// MD-MUSTACHE-VEHICLES: | enum Car |
+// MD-MUSTACHE-VEHICLES: --
+// MD-MUSTACHE-VEHICLES: | Sedan |
+// MD-MUSTACHE-VEHICLES: | SUV |
+// MD-MUSTACHE-VEHICLES: | Pickup |
+// MD-MUSTACHE-VEHICLES: | Hatchback |
+// MD-MUSTACHE-VEHICLES: **brief** specify type of car
+
 // JSON-VEHICLES-INDEX-LABEL:   "DocumentationFileName": "index",
 // JSON-VEHICLES-INDEX-NEXT:    "Enums": [
 // JSON-VEHICLES-INDEX-NEXT:      {

>From 2629a0e26cbac36f21681920caabfb80d3f04655 Mon Sep 17 00:00:00 2001
From: Erick Velez <erickvelez7 at gmail.com>
Date: Thu, 26 Mar 2026 11:39:10 -0700
Subject: [PATCH 3/4] fix windows slashes

---
 clang-tools-extra/test/clang-doc/enum.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/clang-tools-extra/test/clang-doc/enum.cpp b/clang-tools-extra/test/clang-doc/enum.cpp
index d615dc3fc98dc..28cbe414c2180 100644
--- a/clang-tools-extra/test/clang-doc/enum.cpp
+++ b/clang-tools-extra/test/clang-doc/enum.cpp
@@ -33,7 +33,7 @@
 // JSON-INDEX-NEXT:      "HasComments": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 4
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [
@@ -102,7 +102,7 @@
 // JSON-INDEX-NEXT:      "HasComments": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 13
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [
@@ -176,7 +176,7 @@
 // JSON-INDEX-NEXT:      "HasComments": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 26
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [
@@ -258,7 +258,7 @@
 // JSON-INDEX-NEXT:      "HasComments": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 43
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [
@@ -286,7 +286,7 @@
 // JSON-INDEX-NEXT:      "End": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}Inputs{{[\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 47
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [

>From fb9ceb8ac8ee2d024d332857c3b00afe17ff91b4 Mon Sep 17 00:00:00 2001
From: Erick Velez <erickvelez7 at gmail.com>
Date: Thu, 26 Mar 2026 12:49:26 -0700
Subject: [PATCH 4/4] get rid of backslash substitutions

---
 clang-tools-extra/test/clang-doc/enum.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/clang-tools-extra/test/clang-doc/enum.cpp b/clang-tools-extra/test/clang-doc/enum.cpp
index 28cbe414c2180..6dccedcb9b68a 100644
--- a/clang-tools-extra/test/clang-doc/enum.cpp
+++ b/clang-tools-extra/test/clang-doc/enum.cpp
@@ -33,7 +33,7 @@
 // JSON-INDEX-NEXT:      "HasComments": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 4
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [
@@ -102,7 +102,7 @@
 // JSON-INDEX-NEXT:      "HasComments": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 13
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [
@@ -176,7 +176,7 @@
 // JSON-INDEX-NEXT:      "HasComments": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 26
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [
@@ -258,7 +258,7 @@
 // JSON-INDEX-NEXT:      "HasComments": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 43
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [
@@ -286,7 +286,7 @@
 // JSON-INDEX-NEXT:      "End": true,
 // JSON-INDEX-NEXT:      "InfoType": "enum",
 // JSON-INDEX-NEXT:      "Location": {
-// JSON-INDEX-NEXT:        "Filename": "{{.*}}clang-tools-extra{{[\\/]}}test{{[\\/]}}clang-doc{{[\\/]}}Inputs{{[\\/]}}enum.cpp",
+// JSON-INDEX-NEXT:        "Filename": "{{.*}}enum.cpp",
 // JSON-INDEX-NEXT:        "LineNumber": 47
 // JSON-INDEX-NEXT:      },
 // JSON-INDEX-NEXT:      "Members": [



More information about the cfe-commits mailing list