diff --git a/clang-tools-extra/clang-doc/JSONGenerator.cpp b/clang-tools-extra/clang-doc/JSONGenerator.cpp index 2dbc4186a32cc..fab54591b8faa 100644 --- a/clang-tools-extra/clang-doc/JSONGenerator.cpp +++ b/clang-tools-extra/clang-doc/JSONGenerator.cpp @@ -657,7 +657,7 @@ static void serializeInfo(const RecordInfo &I, json::Object &Obj, if (!PubMembersArrayRef.empty()) insertArray(Obj, PublicMembersArray, "PublicMembers"); if (!ProtMembersArrayRef.empty()) - Obj["ProtectedMembers"] = ProtectedMembersArray; + insertArray(Obj, ProtectedMembersArray, "ProtectedMembers"); if (!PrivateMembersArrayRef.empty()) insertArray(Obj, PrivateMembersArray, "PrivateMembers"); } diff --git a/clang-tools-extra/clang-doc/assets/class-template.mustache b/clang-tools-extra/clang-doc/assets/class-template.mustache index 498fc5f079901..19e6e6adf1b44 100644 --- a/clang-tools-extra/clang-doc/assets/class-template.mustache +++ b/clang-tools-extra/clang-doc/assets/class-template.mustache @@ -31,22 +31,22 @@ {{/HasPublicMembers}} - {{#ProtectedMembers}} + {{#HasProtectedMembers}}
  • - Protected Members + Protected Members
  • - {{/ProtectedMembers}} + {{/HasProtectedMembers}} {{#HasPublicFunctions}}
  • @@ -178,23 +178,18 @@ {{/HasPublicMembers}} - {{#ProtectedMembers}} + {{#HasProtectedMembers}}

    Protected Members

    - {{#Obj}} + {{#ProtectedMembers}}
    {{#IsStatic}}static {{/IsStatic}}{{Type}} {{Name}}
    - {{#MemberComments}} -
    - {{>Comments}} -
    - {{/MemberComments}}
    - {{/Obj}} + {{/ProtectedMembers}}
    - {{/ProtectedMembers}} + {{/HasProtectedMembers}} {{#HasPublicFunctions}}

    Public Methods

    diff --git a/clang-tools-extra/test/clang-doc/json/class.cpp b/clang-tools-extra/test/clang-doc/json/class.cpp index 9b45f86ff3292..6356aee14c16c 100644 --- a/clang-tools-extra/test/clang-doc/json/class.cpp +++ b/clang-tools-extra/test/clang-doc/json/class.cpp @@ -170,6 +170,7 @@ struct MyClass { // CHECK-NEXT: "HasEnums": true, // CHECK-NEXT: "HasFriends": true, // CHECK-NEXT: "HasPrivateMembers": true, +// CHECK-NEXT: "HasProtectedMembers": true, // CHECK-NEXT: "HasPublicFunctions": true, // CHECK-NEXT: "HasPublicMembers": true, // CHECK-NEXT: "HasRecords": true, @@ -320,6 +321,14 @@ struct MyClass { // HTML-NEXT:
  • // HTML-NEXT: // HTML-NEXT: +// HTML:
    +// HTML-NEXT:

    Protected Members

    +// HTML-NEXT:
    +// HTML-NEXT:
    +// HTML-NEXT:
    int ProtectedField
    +// HTML-NEXT:
    +// HTML-NEXT:
    +// HTML-NEXT:
    // HTML:
    // HTML-NEXT:

    Inner Classes

    // HTML-NEXT: