summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
diff options
context:
space:
mode:
authorIlya Biryukov <ibiryukov@google.com>2019-05-29 17:49:30 +0000
committerIlya Biryukov <ibiryukov@google.com>2019-05-29 17:49:30 +0000
commitf6faa382f3e0eae41e8e82848e4eafe08ea1ccb5 (patch)
tree4db384d5624e2fffec0aeb5319ffc6ef439baa11 /clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
parent5a0e13c4d6bcdf9038dbcd63f76c2f1575c2487a (diff)
downloadbcm5719-llvm-f6faa382f3e0eae41e8e82848e4eafe08ea1ccb5.tar.gz
bcm5719-llvm-f6faa382f3e0eae41e8e82848e4eafe08ea1ccb5.zip
[Index] Compute correct symbol kind for variable templates
Summary: The index library itself seems to never pass variable templates as input, however clangd does. Reviewers: kadircet Reviewed By: kadircet Subscribers: jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62579 llvm-svn: 361996
Diffstat (limited to 'clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp')
-rw-r--r--clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
index b9ca702ee0f..202757aff41 100644
--- a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
+++ b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
@@ -463,6 +463,31 @@ TEST(CompletionTest, Kinds) {
EXPECT_THAT(
Results.Completions,
UnorderedElementsAre(AllOf(Named("a"), Kind(CompletionItemKind::Field))));
+
+ // Completion kinds for templates should not be unknown.
+ Results = completions(
+ R"cpp(
+ template <class T> struct complete_class {};
+ template <class T> void complete_function();
+ template <class T> using complete_type_alias = int;
+ template <class T> int complete_variable = 10;
+
+ struct X {
+ template <class T> static int complete_static_member = 10;
+
+ static auto x = complete_^
+ }
+ )cpp");
+ EXPECT_THAT(
+ Results.Completions,
+ UnorderedElementsAre(
+ AllOf(Named("complete_class"), Kind(CompletionItemKind::Class)),
+ AllOf(Named("complete_function"), Kind(CompletionItemKind::Function)),
+ AllOf(Named("complete_type_alias"),
+ Kind(CompletionItemKind::Interface)),
+ AllOf(Named("complete_variable"), Kind(CompletionItemKind::Variable)),
+ AllOf(Named("complete_static_member"),
+ Kind(CompletionItemKind::Property))));
}
TEST(CompletionTest, NoDuplicates) {
OpenPOWER on IntegriCloud