87 lines · cpp
1// RUN: rm -rf %t && mkdir -p %t2// RUN: clang-doc --extra-arg -std=c++20 --output=%t --format=json --executor=standalone %s3// RUN: FileCheck %s < %t/json/GlobalNamespace/index.json4 5template<typename T>6concept Incrementable = requires(T x) {7 ++x;8 x++;9};10 11template<typename T> void increment(T t) requires Incrementable<T>;12 13template<Incrementable T> Incrementable auto incrementTwo(T t);14 15// CHECK: "Functions": [16// CHECK-NEXT: {17// CHECK-NEXT: "InfoType": "function",18// CHECK-NEXT: "IsStatic": false,19// CHECK-NEXT: "Name": "increment",20// CHECK-NEXT: "Params": [21// CHECK-NEXT: {22// CHECK-NEXT: "End": true,23// CHECK-NEXT: "Name": "t",24// CHECK-NEXT: "Type": "T"25// CHECK-NEXT: }26// CHECK-NEXT: ],27// CHECK-NEXT: "ReturnType": {28// CHECK-NEXT: "IsBuiltIn": true,29// CHECK-NEXT: "IsTemplate": false,30// CHECK-NEXT: "Name": "void",31// CHECK-NEXT: "QualName": "void",32// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"33// CHECK-NEXT: },34// CHECK-NEXT: "Template": {35// CHECK-NEXT: "Constraints": [36// CHECK-NEXT: {37// CHECK-NEXT: "End": true,38// CHECK-NEXT: "Expression": "Incrementable<T>",39// CHECK-NEXT: "Name": "Incrementable",40// CHECK-NEXT: "Path": "",41// CHECK-NEXT: "QualName": "Incrementable",42// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"43// CHECK-NEXT: }44// CHECK-NEXT: ],45// CHECK-NEXT: "Parameters": [46// CHECK-NEXT: "typename T"47// CHECK-NEXT: ]48// CHECK-NEXT: },49// CHECK-NEXT: "USR": "{{[0-9A-F]*}}" 50// CHECK-NEXT: },51// CHECK-NEXT: {52// CHECK-NEXT: "End": true,53// CHECK-NEXT: "InfoType": "function",54// CHECK-NEXT: "IsStatic": false,55// CHECK-NEXT: "Name": "incrementTwo",56// CHECK-NEXT: "Params": [57// CHECK-NEXT: {58// CHECK-NEXT: "End": true,59// CHECK-NEXT: "Name": "t",60// CHECK-NEXT: "Type": "T"61// CHECK-NEXT: }62// CHECK-NEXT: ],63// CHECK-NEXT: "ReturnType": {64// CHECK-NEXT: "IsBuiltIn": false,65// CHECK-NEXT: "IsTemplate": false,66// CHECK-NEXT: "Name": "Incrementable auto",67// CHECK-NEXT: "QualName": "Incrementable auto",68// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"69// CHECK-NEXT: },70// CHECK-NEXT: "Template": {71// CHECK-NEXT: "Constraints": [72// CHECK-NEXT: {73// CHECK-NEXT: "End": true,74// CHECK-NEXT: "Expression": "Incrementable<T>",75// CHECK-NEXT: "Name": "Incrementable",76// CHECK-NEXT: "Path": "",77// CHECK-NEXT: "QualName": "Incrementable",78// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"79// CHECK-NEXT: }80// CHECK-NEXT: ],81// CHECK-NEXT: "Parameters": [82// CHECK-NEXT: "Incrementable T"83// CHECK-NEXT: ]84// CHECK-NEXT: },85// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"86// CHECK-NEXT: }87