summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/TextNodeDumper.cpp
diff options
context:
space:
mode:
authorSaar Raz <saar@raz.email>2020-01-15 02:48:42 +0200
committerSaar Raz <saar@raz.email>2020-01-15 04:02:39 +0200
commitff1e0fce817e01f0288fad6a2607dd173180aabd (patch)
tree707c0171e1619c109d41b4db69af6353a97399f9 /clang/lib/AST/TextNodeDumper.cpp
parent8e780252a7284be45cf1ba224cabd884847e8e92 (diff)
downloadbcm5719-llvm-ff1e0fce817e01f0288fad6a2607dd173180aabd.tar.gz
bcm5719-llvm-ff1e0fce817e01f0288fad6a2607dd173180aabd.zip
[Concepts] Type Constraints
Add support for type-constraints in template type parameters. Also add support for template type parameters as pack expansions (where the type constraint can now contain an unexpanded parameter pack). Differential Revision: https://reviews.llvm.org/D44352
Diffstat (limited to 'clang/lib/AST/TextNodeDumper.cpp')
-rw-r--r--clang/lib/AST/TextNodeDumper.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/AST/TextNodeDumper.cpp b/clang/lib/AST/TextNodeDumper.cpp
index fa7f4130b76..965ad17fcfa 100644
--- a/clang/lib/AST/TextNodeDumper.cpp
+++ b/clang/lib/AST/TextNodeDumper.cpp
@@ -1694,7 +1694,16 @@ void TextNodeDumper::VisitBuiltinTemplateDecl(const BuiltinTemplateDecl *D) {
}
void TextNodeDumper::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) {
- if (D->wasDeclaredWithTypename())
+ if (const auto *TC = D->getTypeConstraint()) {
+ OS << " ";
+ dumpBareDeclRef(TC->getNamedConcept());
+ if (TC->getNamedConcept() != TC->getFoundDecl()) {
+ OS << " (";
+ dumpBareDeclRef(TC->getFoundDecl());
+ OS << ")";
+ }
+ Visit(TC->getImmediatelyDeclaredConstraint());
+ } else if (D->wasDeclaredWithTypename())
OS << " typename";
else
OS << " class";
OpenPOWER on IntegriCloud