summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaCodeComplete.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/Sema/SemaCodeComplete.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/Sema/SemaCodeComplete.cpp')
-rw-r--r--clang/lib/Sema/SemaCodeComplete.cpp6
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()) {
OpenPOWER on IntegriCloud