diff options
Diffstat (limited to 'clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp')
-rw-r--r-- | clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp index a142891ee3c..4133f946ff5 100644 --- a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp +++ b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp @@ -693,6 +693,42 @@ TEST(CompletionTest, BacktrackCrashes) { )cpp"); } +TEST(CompletionTest, CompleteInMacroWithStringification) { + auto Results = completions(R"cpp( +void f(const char *, int x); +#define F(x) f(#x, x) + +namespace ns { +int X; +int Y; +} // namespace ns + +int f(int input_num) { + F(ns::^) +} +)cpp"); + + EXPECT_THAT(Results.items, + UnorderedElementsAre(Named("X"), Named("Y"))); +} + +TEST(CompletionTest, CompleteInMacroAndNamespaceWithStringification) { + auto Results = completions(R"cpp( +void f(const char *, int x); +#define F(x) f(#x, x) + +namespace ns { +int X; + +int f(int input_num) { + F(^) +} +} // namespace ns +)cpp"); + + EXPECT_THAT(Results.items, Contains(Named("X"))); +} + TEST(CompletionTest, CompleteInExcludedPPBranch) { auto Results = completions(R"cpp( int bar(int param_in_bar) { |