1// RUN: rm -rf %t && mkdir -p %t
2// RUN: clang-doc --extra-arg -std=c++20 --output=%t --format=json --executor=standalone %s
3// RUN: FileCheck %s < %t/_ZTV7MyClass.json
4
5template<typename T>
6concept Addable = requires(T a, T b) {
7 { a + b };
8};
9
10template<typename T>
11requires Addable<T>
12struct MyClass;
13
14// CHECK: "Name": "MyClass",
15// CHECK-NEXT: "Namespace": [
16// CHECK-NEXT: "GlobalNamespace"
17// CHECK-NEXT: ],
18// CHECK-NEXT: "Path": "GlobalNamespace",
19// CHECK-NEXT: "TagType": "struct",
20// CHECK-NEXT: "Template": {
21// CHECK-NEXT: "Constraints": [
22// CHECK-NEXT: {
23// CHECK-NEXT: "Expression": "Addable<T>",
24// CHECK-NEXT: "Name": "Addable",
25// CHECK-NEXT: "Path": "",
26// CHECK-NEXT: "QualName": "Addable",
27// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
28// CHECK-NEXT: }
29// CHECK-NEXT: ],
30// CHECK-NEXT: "Parameters": [
31// CHECK-NEXT: "typename T"
32// CHECK-NEXT: ]
33// CHECK-NEXT: },
34// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
35

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