157 lines · cpp
1// RUN: rm -rf %t2// RUN: mkdir %t3 4// RUN: clang-doc --doxygen --executor=standalone %s -output=%t/docs5// RUN: cat %t/docs/index.yaml | FileCheck %s --check-prefix=YAML6 7// RUN: clang-doc --doxygen --executor=standalone %s -output=%t/docs --format=md8// RUN: cat %t/docs/GlobalNamespace/index.md | FileCheck %s --check-prefix=MD9 10// YAML: ---11// YAML-NEXT: USR: '{{([0-9A-F]{40})}}'12// YAML-NEXT: ChildRecords:13// YAML-NEXT: - Type: Record14// YAML-NEXT: Name: 'tuple'15// YAML-NEXT: QualName: 'tuple'16// YAML-NEXT: USR: '{{([0-9A-F]{40})}}'17// YAML-NEXT: Path: 'GlobalNamespace'18 19// MD: # Global Namespace20// MD: ## Functions21 22template <class... T>23void ParamPackFunction(T... args);24 25// YAML-NEXT: ChildFunctions:26// YAML-NEXT: - USR: '{{([0-9A-F]{40})}}'27// YAML-NEXT: Name: 'ParamPackFunction'28// YAML-NEXT: Location:29// YAML-NEXT: - LineNumber: [[# @LINE - 6]]30// YAML-NEXT: Filename: '{{.*}}'31// YAML-NEXT: Params:32// YAML-NEXT: - Type:33// YAML-NEXT: Name: 'T...'34// YAML-NEXT: QualName: 'T...'35// YAML-NEXT: Name: 'args'36// YAML-NEXT: ReturnType:37// YAML-NEXT: Type:38// YAML-NEXT: Name: 'void'39// YAML-NEXT: QualName: 'void'40// YAML-NEXT: Template:41// YAML-NEXT: Params:42// YAML-NEXT: - Contents: 'class... T'43 44// MD: ### ParamPackFunction45// MD: *void ParamPackFunction(T... args)*46 47template <typename T, int U = 1>48void function(T x) {}49 50// YAML-NEXT: - USR: '{{([0-9A-F]{40})}}'51// YAML-NEXT: Name: 'function'52// YAML-NEXT: DefLocation:53// YAML-NEXT: LineNumber: [[# @LINE - 5]]54// YAML-NEXT: Filename: '{{.*}}'55// YAML-NEXT: Params:56// YAML-NEXT: - Type:57// YAML-NEXT: Name: 'T'58// YAML-NEXT: QualName: 'T'59// YAML-NEXT: Name: 'x'60// YAML-NEXT: ReturnType:61// YAML-NEXT: Type:62// YAML-NEXT: Name: 'void'63// YAML-NEXT: QualName: 'void'64// YAML-NEXT: Template:65// YAML-NEXT: Params:66// YAML-NEXT: - Contents: 'typename T'67// YAML-NEXT: - Contents: 'int U = 1'68 69// MD: ### function70// MD: *void function(T x)*71// MD: *Defined at {{.*}}templates.cpp#[[# @LINE - 23]]*72 73template <>74void function<bool, 0>(bool x) {}75 76// YAML-NEXT: - USR: '{{([0-9A-F]{40})}}'77// YAML-NEXT: Name: 'function'78// YAML-NEXT: DefLocation:79// YAML-NEXT: LineNumber: [[# @LINE - 6]]80// YAML-NEXT: Filename: '{{.*}}'81// YAML-NEXT: Params:82// YAML-NEXT: - Type:83// YAML-NEXT: Name: 'bool'84// YAML-NEXT: QualName: 'bool'85// YAML-NEXT: Name: 'x'86// YAML-NEXT: ReturnType:87// YAML-NEXT: Type:88// YAML-NEXT: Name: 'void'89// YAML-NEXT: QualName: 'void'90// YAML-NEXT: Template:91// YAML-NEXT: Specialization:92// YAML-NEXT: SpecializationOf: '{{([0-9A-F]{40})}}'93// YAML-NEXT: Params:94// YAML-NEXT: - Contents: 'bool'95// YAML-NEXT: - Contents: '0'96 97// MD: ### function98// MD: *void function(bool x)*99// MD: *Defined at {{.*}}templates.cpp#[[# @LINE - 26]]*100 101/// A Tuple type102///103/// Does Tuple things.104template <typename... Tys>105struct tuple {};106 107/// A function with a tuple parameter108///109/// \param t The input to func_with_tuple_param110tuple<int, int, bool> func_with_tuple_param(tuple<int, int, bool> t) { return t; }111 112// YAML-NEXT: - USR: '{{([0-9A-F]{40})}}'113// YAML-NEXT: Name: 'func_with_tuple_param'114// YAML-NEXT: Description:115// YAML-NEXT: - Kind: FullComment116// YAML-NEXT: Children:117// YAML-NEXT: - Kind: ParagraphComment118// YAML-NEXT: Children:119// YAML-NEXT: - Kind: TextComment120// YAML-NEXT: Text: ' A function with a tuple parameter'121// YAML-NEXT: - Kind: ParagraphComment122// YAML-NEXT: Children:123// YAML-NEXT: - Kind: TextComment124// YAML-NEXT: - Kind: ParamCommandComment125// YAML-NEXT: Direction: '[in]'126// YAML-NEXT: ParamName: 't'127// YAML-NEXT: Children:128// YAML-NEXT: - Kind: ParagraphComment129// YAML-NEXT: Children:130// YAML-NEXT: - Kind: TextComment131// YAML-NEXT: Text: ' The input to func_with_tuple_param'132// YAML-NEXT: DefLocation:133// YAML-NEXT: LineNumber: [[# @LINE - 23]]134// YAML-NEXT: Filename:135// YAML-NEXT: Params:136// YAML-NEXT: - Type:137// YAML-NEXT: Type: Record138// YAML-NEXT: Name: 'tuple'139// YAML-NEXT: QualName: 'tuple<int, int, bool>'140// YAML-NEXT: USR: '{{([0-9A-F]{40})}}'141// YAML-NEXT: Path: 'GlobalNamespace'142// YAML-NEXT: Name: 't'143// YAML-NEXT: ReturnType:144// YAML-NEXT: Type:145// YAML-NEXT: Type: Record146// YAML-NEXT: Name: 'tuple'147// YAML-NEXT: QualName: 'tuple<int, int, bool>'148// YAML-NEXT: USR: '{{([0-9A-F]{40})}}'149// YAML-NEXT: Path: 'GlobalNamespace'150// YAML-NEXT: ...151 152// MD: ### func_with_tuple_param153// MD: *tuple<int, int, bool> func_with_tuple_param(tuple<int, int, bool> t)*154// MD: *Defined at {{.*}}templates.cpp#[[# @LINE - 44]]*155// MD: A function with a tuple parameter156// MD: **t** The input to func_with_tuple_param157