[Concepts] Include the found concept decl when dumping the ConceptSpecializationExpr

Differential Revision: https://reviews.llvm.org/D85124
This commit is contained in:
Haojian Wu 2020-08-04 15:58:12 +02:00
parent 051f293b78
commit 1c0a0dfa02
3 changed files with 8 additions and 1 deletions

View File

@ -295,6 +295,7 @@ public:
void VisitObjCIvarRefExpr(const ObjCIvarRefExpr *Node);
void VisitObjCBoolLiteralExpr(const ObjCBoolLiteralExpr *Node);
void VisitOMPIteratorExpr(const OMPIteratorExpr *Node);
void VisitConceptSpecializationExpr(const ConceptSpecializationExpr *Node);
void VisitRValueReferenceType(const ReferenceType *T);
void VisitArrayType(const ArrayType *T);

View File

@ -1340,6 +1340,12 @@ void TextNodeDumper::VisitOMPIteratorExpr(const OMPIteratorExpr *Node) {
}
}
void TextNodeDumper::VisitConceptSpecializationExpr(
const ConceptSpecializationExpr *Node) {
OS << " ";
dumpBareDeclRef(Node->getFoundDecl());
}
void TextNodeDumper::VisitRValueReferenceType(const ReferenceType *T) {
if (T->isSpelledAsLValue())
OS << " written as lvalue reference";

View File

@ -15,7 +15,7 @@ concept binary_concept = true;
template <typename T>
struct Foo {
// CHECK: TemplateTypeParmDecl {{.*}} referenced Concept {{.*}} 'binary_concept'
// CHECK-NEXT: |-ConceptSpecializationExpr {{.*}} <col:13, col:31> 'bool'
// CHECK-NEXT: |-ConceptSpecializationExpr {{.*}} <col:13, col:31> 'bool' Concept {{.*}} 'binary_concept'
// CHECK-NEXT: `-TemplateArgument {{.*}} type 'int'
template <binary_concept<int> R>
Foo(R);