[clangd] Set SymbolID for sema macros so that they can be merged with index macros.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D51688
llvm-svn: 341534
diff --git a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
index 3a6fe9b..d206721 100644
--- a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
+++ b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
@@ -1882,6 +1882,17 @@
AllOf(Named("Func"), HasInclude("\"foo.h\""), Not(InsertInclude()))));
}
+TEST(CompletionTest, MergeMacrosFromIndexAndSema) {
+ Symbol Sym;
+ Sym.Name = "Clangd_Macro_Test";
+ Sym.ID = SymbolID("c:foo.cpp@8@macro@Clangd_Macro_Test");
+ Sym.SymInfo.Kind = index::SymbolKind::Macro;
+ Sym.IsIndexedForCodeCompletion = true;
+ EXPECT_THAT(completions("#define Clangd_Macro_Test\nClangd_Macro_T^", {Sym})
+ .Completions,
+ UnorderedElementsAre(Named("Clangd_Macro_Test")));
+}
+
} // namespace
} // namespace clangd
} // namespace clang