1// RUN: rm -rf %t && mkdir -p %t
2// RUN: clang-doc --output=%t --format=json --executor=standalone %s
3// RUN: FileCheck %s < %t/_ZTV7MyClass.json --check-prefix=BASE
4// RUN: FileCheck %s < %t/_ZTV7MyClassIiE.json --check-prefix=SPECIALIZATION
5
6template<typename T> struct MyClass {};
7
8template<> struct MyClass<int> {};
9
10// BASE: "MangledName": "_ZTV7MyClass",
11// BASE-NEXT: "Name": "MyClass",
12// BASE-NEXT: "Namespace": [
13// BASE-NEXT: "GlobalNamespace"
14// BASE-NEXT: ],
15// BASE-NEXT: "Path": "GlobalNamespace",
16// BASE-NEXT: "TagType": "struct",
17// BASE-NEXT: "Template": {
18// BASE-NEXT: "Parameters": [
19// BASE-NEXT: "typename T"
20// BASE-NEXT: ]
21// BASE-NEXT: },
22
23// SPECIALIZATION: "MangledName": "_ZTV7MyClassIiE",
24// SPECIALIZATION-NEXT: "Name": "MyClass",
25// SPECIALIZATION-NEXT: "Namespace": [
26// SPECIALIZATION-NEXT: "GlobalNamespace"
27// SPECIALIZATION-NEXT: ],
28// SPECIALIZATION-NEXT: "Path": "GlobalNamespace",
29// SPECIALIZATION-NEXT: "TagType": "struct",
30// SPECIALIZATION-NEXT: "Template": {
31// SPECIALIZATION-NEXT: "Specialization": {
32// SPECIALIZATION-NEXT: "Parameters": [
33// SPECIALIZATION-NEXT: "int"
34// SPECIALIZATION-NEXT: ],
35// SPECIALIZATION-NEXT: "SpecializationOf": "{{[0-9A-F]*}}"
36// SPECIALIZATION-NEXT: }
37// SPECIALIZATION-NEXT: },
38

source code of clang-tools-extra/test/clang-doc/json/class-specialization.cpp