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/index.json
4
5// Requires that T suports post and pre-incrementing.
6template<typename T>
7concept Incrementable = requires(T x) {
8 ++x;
9 x++;
10};
11
12// CHECK: {
13// CHECK-NEXT: "Concepts": [
14// CHECK-NEXT: {
15// CHECK-NEXT: "ConstraintExpression": "requires (T x) { ++x; x++; }",
16// CHECK-NEXT: "Description": [
17// CHECK-NEXT: {
18// CHECK-NEXT: "FullComment": {
19// CHECK-NEXT: "Children": [
20// CHECK-NEXT: {
21// CHECK-NEXT: "ParagraphComment": {
22// CHECK-NEXT: "Children": [
23// CHECK-NEXT: {
24// CHECK-NEXT: "TextComment": " Requires that T suports post and pre-incrementing."
25// CHECK: ],
26// CHECK-NEXT: "IsType": true,
27// CHECK-NEXT: "Name": "Incrementable",
28// CHECK-NEXT: "Template": {
29// CHECK-NEXT: "Parameters": [
30// CHECK-NEXT: "typename T"
31// CHECK-NEXT: ]
32// CHECK-NEXT: },
33// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
34// CHECK-NEXT: }
35// CHECK-NEXT: ],
36// CHECK: "Name": "",
37// CHECK: "USR": "0000000000000000000000000000000000000000"
38// CHECK: }
39

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