brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · 9116058 Raw
243 lines · cpp
1// RUN: rm -rf %t && mkdir -p %t2// RUN: clang-doc --output=%t --format=json --executor=standalone %s3// RUN: FileCheck %s < %t/json/GlobalNamespace/_ZTV7MyClass.json4 5struct Foo;6 7// This is a nice class.8// It has some nice methods and fields.9// @brief This is a brief description.10struct MyClass {11  int PublicField;12 13  int myMethod(int MyParam);14  static void staticMethod();15  const int& getConst();16  17  enum Color {18    RED,19    GREEN,20    BLUE = 521  };22  23  typedef int MyTypedef;24  25  class NestedClass;26  27  friend struct Foo;28  template<typename T> friend void friendFunction(int);29protected:30  int protectedMethod();31 32  int ProtectedField;33};34 35// CHECK:       {36// CHECK-NEXT:    "Description": {37// CHECK-NEXT:      "BriefComments": [38// CHECK-NEXT:        [39// CHECK-NEXT:          {40// CHECK-NEXT:            "TextComment": " This is a brief description."41// CHECK:           "HasBriefComments": true,42// CHECK-NEXT:      "HasParagraphComments": true,43// CHECK-NEXT:      "ParagraphComments": [44// CHECK-NEXT:        [45// CHECK-NEXT:          {46// CHECK-NEXT:            "TextComment": " This is a nice class."47// CHECK-NEXT:          },48// CHECK-NEXT:          {49// CHECK-NEXT:            "TextComment": " It has some nice methods and fields."50// CHECK-NEXT:          },51// CHECK-NEXT:          {52// CHECK-NEXT:            "TextComment": ""53// CHECK-NEXT:          }54// CHECK:         "DocumentationFileName": "_ZTV7MyClass",55// CHECK:         "Enums": [56// CHECK-NEXT:      {57// CHECK-NEXT:        "End": true,58// CHECK-NEXT:        "InfoType": "enum",59// CHECK-NEXT:        "Location": {60// CHECK-NEXT:          "Filename": "{{.*}}class.cpp",61// CHECK-NEXT:          "LineNumber": 1762// CHECK-NEXT:        },63// CHECK-NEXT:        "Members": [64// CHECK-NEXT:          {65// CHECK-NEXT:            "Name": "RED",66// CHECK-NEXT:            "Value": "0"67// CHECK-NEXT:          },68// CHECK-NEXT:          {69// CHECK-NEXT:            "Name": "GREEN",70// CHECK-NEXT:            "Value": "1"71// CHECK-NEXT:          },72// CHECK-NEXT:          {73// CHECK-NEXT:            "End": true,74// CHECK-NEXT:            "Name": "BLUE",75// CHECK-NEXT:            "ValueExpr": "5"76// CHECK-NEXT:          }77// CHECK-NEXT:        ],78// CHECK-NEXT:        "Name": "Color",79// CHECK-NEXT:        "Namespace": [80// CHECK-NEXT:          "MyClass",81// CHECK-NEXT:          "GlobalNamespace"82// CHECK-NEXT:        ],83// CHECK-NEXT:        "Scoped": false,84// CHECK-NEXT:        "USR": "{{[0-9A-F]*}}"85// CHECK-NEXT:      }86// CHECK-NEXT:    ],87// CHECK-NEXT:    "Friends": [88// CHECK-NEXT:      {89// CHECK-NEXT:        "IsClass": false,90// CHECK-NEXT:        "Params": [91// CHECK-NEXT:          {92// CHECK-NEXT:            "End": true,93// CHECK-NEXT:            "Name": "",94// CHECK-NEXT:            "Type": "int"95// CHECK-NEXT:          }96// CHECK-NEXT:        ],97// CHECK-NEXT:        "Reference": {98// CHECK-NEXT:          "Name": "friendFunction",99// CHECK-NEXT:          "Path": "",100// CHECK-NEXT:          "QualName": "friendFunction",101// CHECK-NEXT:          "USR": "{{[0-9A-F]*}}"102// CHECK-NEXT:        },103// CHECK-NEXT:        "ReturnType": {104// CHECK-NEXT:          "IsBuiltIn": true,105// CHECK-NEXT:          "IsTemplate": false,106// CHECK-NEXT:          "Name": "void",107// CHECK-NEXT:          "QualName": "void",108// CHECK-NEXT:          "USR": "0000000000000000000000000000000000000000"109// CHECK-NEXT:        },110// CHECK-NEXT:        "Template": {111// CHECK-NEXT:          "Parameters": [112// CHECK-NEXT:            "typename T"113// CHECK-NEXT:          ]114// CHECK-NEXT:        }115// CHECK-NEXT:      },116// CHECK-NEXT:      {117// CHECK-NEXT:        "End": true,118// CHECK-NEXT:        "IsClass": true,119// CHECK-NEXT:        "Reference": {120// CHECK-NEXT:          "Name": "Foo",121// CHECK-NEXT:          "Path": "GlobalNamespace",122// CHECK-NEXT:          "QualName": "Foo",123// CHECK-NEXT:          "USR": "{{[0-9A-F]*}}"124// CHECK-NEXT:        }125// CHECK-NEXT:      }126// CHECK-NEXT:    ],127// CHECK-NEXT:    "HasEnums": true,128// CHECK-NEXT:    "HasPublicFunctions": true,129// CHECK-NEXT:    "HasPublicMembers": true,130// CHECK-NEXT:    "HasRecords": true,131// CHECK-NEXT:    "InfoType": "record",132// CHECK-NEXT:    "IsTypedef": false,133// CHECK-NEXT:    "Location": {134// CHECK-NEXT:      "Filename": "{{.*}}class.cpp",135// CHECK-NEXT:      "LineNumber": 10136// CHECK-NEXT:    },137// CHECK-NEXT:    "MangledName": "_ZTV7MyClass",138// CHECK-NEXT:    "Name": "MyClass",139// CHECK-NEXT:    "Namespace": [140// CHECK-NEXT:      "GlobalNamespace"141// CHECK-NEXT:    ],142// CHECK-NEXT:   "Path": "GlobalNamespace",143// CHECK-NEXT:   "ProtectedFunctions": [144// CHECK-NEXT:     {145// CHECK-NEXT:       "InfoType": "function",146// CHECK-NEXT:       "IsStatic": false,147// CHECK-NEXT:       "Name": "protectedMethod",148// CHECK-NEXT:       "Namespace": [149// CHECK-NEXT:         "MyClass",150// CHECK-NEXT:         "GlobalNamespace"151// CHECK-NEXT:       ],152// CHECK-NEXT:       "ReturnType": {153// CHECK-NEXT:         "IsBuiltIn": true,154// CHECK-NEXT:         "IsTemplate": false,155// CHECK-NEXT:         "Name": "int",156// CHECK-NEXT:         "QualName": "int",157// CHECK-NEXT:         "USR": "{{[0-9A-F]*}}"158// CHECK-NEXT:       },159// CHECK-NEXT:       "USR": "{{[0-9A-F]*}}"160// CHECK-NEXT:      }161// CHECK-NEXT:    ],162// CHECK-NEXT:    "ProtectedMembers": [163// CHECK-NEXT:      {164// CHECK-NEXT:        "Name": "ProtectedField",165// CHECK-NEXT:        "Type": "int"166// CHECK-NEXT:      }167// CHECK-NEXT:    ],168// CHECK-NEXT:    "PublicFunctions": [169// CHECK-NEXT:      {170// CHECK-NEXT:        "InfoType": "function",171// CHECK-NEXT:        "IsStatic": false,172// CHECK-NEXT:        "Name": "myMethod",173// CHECK-NEXT:        "Namespace": [174// CHECK-NEXT:          "MyClass",175// CHECK-NEXT:          "GlobalNamespace"176// CHECK-NEXT:        ],177// CHECK-NEXT:        "Params": [178// CHECK-NEXT:          {179// CHECK-NEXT:            "End": true,180// CHECK-NEXT:            "Name": "MyParam",181// CHECK-NEXT:            "Type": "int"182// CHECK-NEXT:          }183// CHECK-NEXT:        ],184// CHECK-NEXT:        "ReturnType": {185// CHECK-NEXT:          "IsBuiltIn": true,186// CHECK-NEXT:          "IsTemplate": false,187// CHECK-NEXT:          "Name": "int",188// CHECK-NEXT:          "QualName": "int",189// CHECK-NEXT:          "USR": "{{[0-9A-F]*}}"190// CHECK-NEXT:        },191// CHECK-NEXT:        "USR": "{{[0-9A-F]*}}"192// CHECK-NEXT:      },193// CHECK:             "IsStatic": true,194// CHECK:             "Name": "getConst",195// CHECK:             "ReturnType": {196// CHECK-NEXT:          "IsBuiltIn": false,197// CHECK-NEXT:          "IsTemplate": false,198// CHECK-NEXT:          "Name": "const int &",199// CHECK-NEXT:          "QualName": "const int &",200// CHECK-NEXT:          "USR": "{{[0-9A-F]*}}"201// CHECK-NEXT:        },202// CHECK:         "PublicMembers": [203// CHECK-NEXT:      {204// CHECK-NEXT:        "Name": "PublicField",205// CHECK-NEXT:        "Type": "int"206// CHECK-NEXT:      }207// CHECK-NEXT:    ],208// CHECK-NEXT:    "Records": [209// CHECK-NEXT:      {210// CHECK-NEXT:        "DocumentationFileName": "_ZTVN7MyClass11NestedClassE",211// CHECK-NEXT:        "End": true,212// CHECK-NEXT:        "Name": "NestedClass",213// CHECK-NEXT:        "Path": "GlobalNamespace{{[\/]+}}MyClass",214// CHECK-NEXT:        "QualName": "NestedClass",215// CHECK-NEXT:        "USR": "{{[0-9A-F]*}}"216// CHECK-NEXT:      }217// CHECK-NEXT:    ]218// CHECK-NEXT:    "TagType": "struct",219// CHECK-NEXT:    "Typedefs": [220// CHECK-NEXT:      {221// CHECK-NEXT:        "End": true,222// CHECK-NEXT:        "InfoType": "typedef",223// CHECK-NEXT:        "IsUsing": false,224// CHECK-NEXT:        "Location": {225// CHECK-NEXT:          "Filename": "{{.*}}class.cpp",226// CHECK-NEXT:          "LineNumber": 23227// CHECK-NEXT:        },228// CHECK-NEXT:        "Name": "MyTypedef",229// CHECK-NEXT:        "Namespace": [230// CHECK-NEXT:          "MyClass",231// CHECK-NEXT:          "GlobalNamespace"232// CHECK-NEXT:        ],233// CHECK-NEXT:        "TypeDeclaration": "",234// CHECK-NEXT:        "USR": "{{[0-9A-F]*}}",235// CHECK-NEXT:        "Underlying": {236// CHECK-NEXT:          "IsBuiltIn": true,237// CHECK-NEXT:          "IsTemplate": false,238// CHECK-NEXT:          "Name": "int",239// CHECK-NEXT:          "QualName": "int",240// CHECK-NEXT:          "USR": "0000000000000000000000000000000000000000"241// CHECK:         "USR": "{{[0-9A-F]*}}"242// CHECK-NEXT:  }243