================
@@ -0,0 +1,194 @@
+// RUN: rm -rf %t && mkdir -p %t
+// RUN: clang-doc --output=%t --format=json --executor=standalone %s
+// RUN: FileCheck %s < %t/GlobalNamespace/MyClass.json
+
+struct Foo;
+
+// This is a nice class.
+// It has some nice methods and fields.
+// @brief This is a brief description.
+struct MyClass {
+  int PublicField;
+
+  int myMethod(int MyParam);
+  static void staticMethod();
+  const int& getConst();
+  
+  enum Color {
+    RED,
+    GREEN,
+    BLUE = 5
+  };
+  
+  typedef int MyTypedef;
+  
+  class NestedClass;
+protected:
+  int protectedMethod();
+
+  int ProtectedField;
+};
+
+// CHECK:       {
+// CHECK-NEXT:    "Description": [
+// CHECK-NEXT:      {
+// CHECK-NEXT:       "FullComment": {
+// CHECK-NEXT:         "Children": [
+// CHECK-NEXT:           {
+// CHECK-NEXT:             "ParagraphComment": {
+// CHECK-NEXT:               "Children": [
+// CHECK-NEXT:                 {
+// CHECK-NEXT:                   "TextComment": " This is a nice class."
+// CHECK-NEXT:                 },
+// CHECK-NEXT:                 {
+// CHECK-NEXT:                   "TextComment": " It has some nice methods and 
fields."
+// CHECK-NEXT:                 },
+// CHECK-NEXT:                 {
+// CHECK-NEXT:                   "TextComment": ""
+// CHECK-NEXT:                 }
+// CHECK-NEXT:               ]
+// CHECK:               {
+// CHECK-NEXT:             "BlockCommandComment": {
+// CHECK-NEXT:               "Children": [
+// CHECK-NEXT:                 {
+// CHECK-NEXT:                   "ParagraphComment": {
+// CHECK-NEXT:                     "Children": [
+// CHECK-NEXT:                       { 
+// CHECK-NEXT:                         "TextComment": " This is a brief 
description." 
+// CHECK-NEXT:                       }
+// CHECK:                   "Command": "brief"
+// CHECK:         "Enums": [
+// CHECK-NEXT:      {
+// CHECK-NEXT:        "Location": {
+// CHECK-NEXT:          "Filename": "{{.*}}class.cpp",
+// CHECK-NEXT:          "LineNumber": 17
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "Members": [
+// CHECK-NEXT:          {
+// CHECK-NEXT:            "Name": "RED",
+// CHECK-NEXT:            "Value": "0"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          {
+// CHECK-NEXT:            "Name": "GREEN",
+// CHECK-NEXT:            "Value": "1"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          {
+// CHECK-NEXT:            "Name": "BLUE",
+// CHECK-NEXT:            "ValueExpr": "5"
+// CHECK-NEXT:          }
+// CHECK-NEXT:        ],
+// CHECK-NEXT:        "Name": "Color",
+// CHECK-NEXT:        "Namespace": [
+// CHECK-NEXT:          "MyClass",
+// CHECK-NEXT:          "GlobalNamespace"
+// CHECK-NEXT:        ],
+// CHECK-NEXT:        "Scoped": false,
+// CHECK-NEXT:        "USR": "{{[0-9A-F]*}}"
+// CHECK-NEXT:      }
+// CHECK-NEXT:    ],
+// COM:           FIXME: FullName is not emitted correctly.
+// CHECK-NEXT:    "FullName": "",
+// CHECK-NEXT:    "IsTypedef": false,
+// CHECK-NEXT:    "Location": {
+// CHECK-NEXT:      "Filename": "{{.*}}class.cpp",
+// CHECK-NEXT:      "LineNumber": 10
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "Name": "MyClass",
+// CHECK-NEXT:    "Namespace": [
+// CHECK-NEXT:      "GlobalNamespace"
+// CHECK-NEXT:    ],
+// CHECK-NEXT:   "Path": "GlobalNamespace",
+// CHECK-NEXT:   "ProtectedFunctions": [
+// CHECK-NEXT:     {
+// CHECK-NEXT:       "IsStatic": false,
+// CHECK-NEXT:       "Name": "protectedMethod",
+// CHECK-NEXT:       "Namespace": [
+// CHECK-NEXT:         "MyClass",
+// CHECK-NEXT:         "GlobalNamespace"
+// CHECK-NEXT:       ],
+// CHECK-NEXT:       "ReturnType": {
+// CHECK-NEXT:         "IsBuiltIn": false,
+// CHECK-NEXT:         "IsTemplate": false,
+// CHECK-NEXT:         "Name": "int",
+// CHECK-NEXT:         "QualName": "int",
+// CHECK-NEXT:         "USR": "{{[0-9A-F]*}}"
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "USR": "{{[0-9A-F]*}}"
+// CHECK-NEXT:      }
+// CHECK-NEXT:    ],
+// CHECK-NEXT:    "ProtectedMembers": [
+// CHECK-NEXT:      {
+// CHECK-NEXT:        "Name": "ProtectedField",
+// CHECK-NEXT:        "Type": "int"
+// CHECK-NEXT:      }
+// CHECK-NEXT:    ],
+// CHECK-NEXT:    "PublicFunctions": [
+// CHECK-NEXT:      {
+// CHECK-NEXT:        "IsStatic": false,
+// CHECK-NEXT:        "Name": "myMethod",
+// CHECK-NEXT:        "Namespace": [
+// CHECK-NEXT:          "MyClass",
+// CHECK-NEXT:          "GlobalNamespace"
+// CHECK-NEXT:        ],
+// CHECK-NEXT:        "Params": [
+// CHECK-NEXT:          {
+// CHECK-NEXT:            "Name": "MyParam",
+// CHECK-NEXT:            "Type": "int"
+// CHECK-NEXT:          }
+// CHECK-NEXT:        ],
+// CHECK-NEXT:        "ReturnType": {
+// CHECK-NEXT:          "IsBuiltIn": false,
+// CHECK-NEXT:          "IsTemplate": false,
+// CHECK-NEXT:          "Name": "int",
+// CHECK-NEXT:          "QualName": "int",
+// CHECK-NEXT:          "USR": "{{[0-9A-F]*}}"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "USR": "{{[0-9A-F]*}}"
+// CHECK-NEXT:      },
+// CHECK:             "IsStatic": true,
+// CHECk:             "IsStatic": false,
----------------
petrhosek wrote:

There's a typo `CHECk` instead of `CHECK` (lowercase `k` at the end) so I don't 
think this does anything. It's also a bit confusing given the preceding line.

https://github.com/llvm/llvm-project/pull/142483
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to