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/Sema/SemaCodeComplete.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/Sema/SemaCodeComplete.cpp')
-rw-r--r-- | clang/lib/Sema/SemaCodeComplete.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index e14c63d557a..7260977c634 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -2986,7 +2986,11 @@ static void AddTemplateParameterChunks( if (TemplateTypeParmDecl *TTP = dyn_cast<TemplateTypeParmDecl>(*P)) { if (TTP->wasDeclaredWithTypename()) PlaceholderStr = "typename"; - else + else if (const auto *TC = TTP->getTypeConstraint()) { + llvm::raw_string_ostream OS(PlaceholderStr); + TC->print(OS, Policy); + OS.flush(); + } else PlaceholderStr = "class"; if (TTP->getIdentifier()) { |