[CodeComplete] Make sure keyword 'template' is added even when code pattern is disabled.
authorEric Liu <ioeric@google.com>
Mon, 15 Oct 2018 12:37:23 +0000 (12:37 +0000)
committerEric Liu <ioeric@google.com>
Mon, 15 Oct 2018 12:37:23 +0000 (12:37 +0000)
Reviewers: sammccall, hokein

Subscribers: arphaman, cfe-commits

Differential Revision: https://reviews.llvm.org/D53284

llvm-svn: 344509

clang/lib/Sema/SemaCodeComplete.cpp
clang/test/Index/complete-template-keywords.cpp [new file with mode: 0644]

index 70b43a6..303d96b 100644 (file)
@@ -1731,6 +1731,8 @@ static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC,
         Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace);
         Builder.AddPlaceholderChunk("declaration");
         Results.AddResult(Result(Builder.TakeString()));
+      } else {
+        Results.AddResult(Result("template", CodeCompletionResult::RK_Keyword));
       }
     }
 
@@ -1805,6 +1807,8 @@ static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC,
       Builder.AddPlaceholderChunk("parameters");
       Builder.AddChunk(CodeCompletionString::CK_RightAngle);
       Results.AddResult(Result(Builder.TakeString()));
+    } else {
+      Results.AddResult(Result("template", CodeCompletionResult::RK_Keyword));
     }
 
     AddStorageSpecifiers(CCC, SemaRef.getLangOpts(), Results);
diff --git a/clang/test/Index/complete-template-keywords.cpp b/clang/test/Index/complete-template-keywords.cpp
new file mode 100644 (file)
index 0000000..1e59333
--- /dev/null
@@ -0,0 +1,5 @@
+templ
+// RUN: env c-index-test -code-completion-at=%s:1:5 %s | FileCheck -check-prefix=CHECK-NO-PATTERN %s
+// CHECK-NO-PATTERN: {TypedText template} (1)
+// RUN: env CINDEXTEST_CODE_COMPLETE_PATTERNS=1 c-index-test -code-completion-at=%s:1:5 %s | FileCheck -check-prefix=CHECK-PATTERN %s
+// CHECK-PATTERN: {TypedText template}{LeftAngle <}