aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp')
-rw-r--r--clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
index 7640569..768f88f 100644
--- a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
+++ b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
@@ -1154,23 +1154,45 @@ TEST(CompletionTest, CommentsOnMembersFromHeader) {
/// This is a member function.
int delta();
};
+
+ template <typename T>
+ struct beta {
+ /// This is a member field inside a template.
+ int omega;
+
+ /// This is a member function inside a template.
+ int epsilon();
+ };
)cpp";
auto File = testPath("foo.cpp");
Annotations Test(R"cpp(
#include "foo.h"
alpha a;
-int x = a.^
+beta<int> b;
+int x = a.$p1^;
+int y = b.$p2^;
)cpp");
runAddDocument(Server, File, Test.code());
auto CompletionList =
- llvm::cantFail(runCodeComplete(Server, File, Test.point(), {}));
+ llvm::cantFail(runCodeComplete(Server, File, Test.point("p1"), {}));
EXPECT_THAT(CompletionList.Completions,
Contains(AllOf(named("gamma"), doc("This is a member field."))));
EXPECT_THAT(
CompletionList.Completions,
Contains(AllOf(named("delta"), doc("This is a member function."))));
+
+ CompletionList =
+ llvm::cantFail(runCodeComplete(Server, File, Test.point("p2"), {}));
+
+ EXPECT_THAT(CompletionList.Completions,
+ Contains(AllOf(named("omega")
+ /* FIXME: Doc retrieval does not work yet*/)));
+ EXPECT_THAT(
+ CompletionList.Completions,
+ Contains(AllOf(named("epsilon"),
+ doc("This is a member function inside a template."))));
}
TEST(CompletionTest, CommentsOnMembersFromHeaderOverloadBundling) {