llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-tools-extra Author: Erick Velez (evelez7) <details> <summary>Changes</summary> --- Full diff: https://github.com/llvm/llvm-project/pull/144160.diff 3 Files Affected: - (added) clang-tools-extra/test/clang-doc/json/class-requires.cpp (+29) - (added) clang-tools-extra/test/clang-doc/json/concept.cpp (+37) - (added) clang-tools-extra/test/clang-doc/json/function-requires.cpp (+46) ``````````diff diff --git a/clang-tools-extra/test/clang-doc/json/class-requires.cpp b/clang-tools-extra/test/clang-doc/json/class-requires.cpp new file mode 100644 index 0000000000000..022ce94d8c5af --- /dev/null +++ b/clang-tools-extra/test/clang-doc/json/class-requires.cpp @@ -0,0 +1,29 @@ +// RUN: rm -rf %t && mkdir -p %t +// RUN: clang-doc --extra-arg -std=c++20 --output=%t --format=json --executor=standalone %s +// RUN: FileCheck %s < %t/GlobalNamespace/MyClass.json + +template<typename T> +concept Addable = requires(T a, T b) { + { a + b }; +}; + +template<typename T> +requires Addable<T> +struct MyClass { +}; + +// CHECK: "Name": "MyClass", +// CHECK-NEXT: "Namespace": [ +// CHECK-NEXT: "GlobalNamespace" +// CHECK-NEXT: ], +// CHECK-NEXT: "Path": "GlobalNamespace", +// CHECK-NEXT: "TagType": "struct", +// CHECK-NEXT: "Template": { +// CHECK-NOT: "Constraints": [ +// CHECK-NOT: "Addable<T>" +// CHECK-NOT: ], +// CHECK-NEXT: "Parameters": [ +// CHECK-NEXT: "typename T" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "USR": "{{[A-F0-9]*}}" diff --git a/clang-tools-extra/test/clang-doc/json/concept.cpp b/clang-tools-extra/test/clang-doc/json/concept.cpp new file mode 100644 index 0000000000000..78be607d1f2f1 --- /dev/null +++ b/clang-tools-extra/test/clang-doc/json/concept.cpp @@ -0,0 +1,37 @@ +// RUN: rm -rf %t && mkdir -p %t +// RUN: clang-doc --extra-arg -std=c++20 --output=%t --format=json --executor=standalone %s + +// Requires that T suports post and pre-incrementing. +template<typename T> +concept Incrementable = requires(T x) { + ++x; + x++; +}; + +// CHECK: { +// CHECK-NOT: "Concepts": [ +// CHECK-NOT: { +// CHECK-NOT: "ConstraintExpression": "requires (T x) { ++x; x++; }", +// CHECK-NOT: "Description": [ +// CHECK-NOT: { +// CHECK-NOT: "FullComment": { +// CHECK-NOT: "Children": [ +// CHECK-NOT: { +// CHECK-NOT: "ParagraphComment": { +// CHECK-NOT: "Children": [ +// CHECK-NOT: { +// CHECK-NOT: "TextComment": " Requires that T suports post and pre-incrementing." +// CHECK-NOT: }, +// CHECK-NOT: "IsType": true, +// CHECK-NOT: "Name": "Incrementable", +// CHECK-NOT: "Template": { +// CHECK-NOT: "Parameters": [ +// CHECK-NOT: "typename T" +// CHECK-NOT: ] +// CHECK-NOT: }, +// CHECK-NOT: "USR": "{{[0-9A-F]*}}" +// CHECK-NOT: } +// CHECK-NOT: ], +// CHECK: "Name": "", +// CHECK: "USR": "0000000000000000000000000000000000000000" +// CHECK: } diff --git a/clang-tools-extra/test/clang-doc/json/function-requires.cpp b/clang-tools-extra/test/clang-doc/json/function-requires.cpp new file mode 100644 index 0000000000000..4436ecb879306 --- /dev/null +++ b/clang-tools-extra/test/clang-doc/json/function-requires.cpp @@ -0,0 +1,46 @@ +// RUN: rm -rf %t && mkdir -p %t +// RUN: clang-doc --extra-arg -std=c++20 --output=%t --format=json --executor=standalone %s +// RUN: FileCheck %s < %t/GlobalNamespace/index.json + +template<typename T> +concept Incrementable = requires(T x) { + ++x; + x++; +}; + +template<typename T> void increment(T t) requires Incrementable<T> { + ++t; + t++; +} + +// CHECK: "Functions": [ +// CHECK-NEXT: { +// CHECK-NEXT: "IsStatic": false, +// CHECK-NEXT: "Location": { +// CHECK-NEXT: "Filename": "{{.*}}function-requires.cpp", +// CHECK-NEXT: "LineNumber": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "Name": "increment", +// CHECK-NEXT: "Params": [ +// CHECK-NEXT: { +// CHECK-NEXT: "Name": "t", +// CHECK-NEXT: "Type": "T" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "ReturnType": { +// CHECK-NEXT: "IsBuiltIn": false, +// CHECK-NEXT: "IsTemplate": false, +// CHECK-NEXT: "Name": "void", +// CHECK-NEXT: "QualName": "void", +// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000" +// CHECK-NEXT: }, +// CHECK-NEXT: "Template": { +// CHECK-NOT: "Constraints": [ +// CHECK-NOT: "Incrementable<T>" +// CHECK-NOT: ], +// CHECK-NEXT: "Parameters": [ +// CHECK-NEXT: "typename T" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "USR": "{{[0-9A-F]*}}" +// CHECK-NEXT: } `````````` </details> https://github.com/llvm/llvm-project/pull/144160 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits