diff options
author | Saar Raz <saar@raz.email> | 2020-01-15 02:48:42 +0200 |
---|---|---|
committer | Saar Raz <saar@raz.email> | 2020-01-15 04:02:39 +0200 |
commit | ff1e0fce817e01f0288fad6a2607dd173180aabd (patch) | |
tree | 707c0171e1619c109d41b4db69af6353a97399f9 /clang/lib/AST/TextNodeDumper.cpp | |
parent | 8e780252a7284be45cf1ba224cabd884847e8e92 (diff) | |
download | bcm5719-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.cpp | 11 |
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"; |