Author: Nathan Ridge Date: 2020-11-25T20:33:57-05:00 New Revision: c6cb47b640ffafda113581c488a73fb62b6ea38a
URL: https://github.com/llvm/llvm-project/commit/c6cb47b640ffafda113581c488a73fb62b6ea38a DIFF: https://github.com/llvm/llvm-project/commit/c6cb47b640ffafda113581c488a73fb62b6ea38a.diff LOG: [clangd] Collect main file refs by default This is needed for call hierarchy to be able to find callers of main-file-only functions. Differential Revision: https://reviews.llvm.org/D92000 Added: Modified: clang-tools-extra/clangd/ClangdServer.h clang-tools-extra/clangd/tool/ClangdMain.cpp clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/ClangdServer.h b/clang-tools-extra/clangd/ClangdServer.h index b6a1bd757894..35ba4686cc9a 100644 --- a/clang-tools-extra/clangd/ClangdServer.h +++ b/clang-tools-extra/clangd/ClangdServer.h @@ -106,7 +106,7 @@ class ClangdServer { bool BackgroundIndex = false; /// Store refs to main-file symbols in the index. - bool CollectMainFileRefs = false; + bool CollectMainFileRefs = true; /// If set, use this index to augment code completion results. SymbolIndex *StaticIndex = nullptr; diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp index 5c89e423cde4..d0eab3650750 100644 --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -494,7 +494,7 @@ opt<bool> CollectMainFileRefs{ "collect-main-file-refs", cat(Misc), desc("Store references to main-file-only symbols in the index"), - init(false), + init(ClangdServer::Options().CollectMainFileRefs), }; #if CLANGD_ENABLE_REMOTE diff --git a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp index b25d3fde0002..f4a9b2fa2d13 100644 --- a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp +++ b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp @@ -188,8 +188,10 @@ TEST_F(BackgroundIndexTest, IndexTwoFiles) { size_t CacheHits = 0; MemoryShardStorage MSS(Storage, CacheHits); OverlayCDB CDB(/*Base=*/nullptr); - BackgroundIndex Idx(FS, CDB, [&](llvm::StringRef) { return &MSS; }, - /*Opts=*/{}); + BackgroundIndex::Options Opts; + Opts.CollectMainFileRefs = true; + BackgroundIndex Idx( + FS, CDB, [&](llvm::StringRef) { return &MSS; }, Opts); tooling::CompileCommand Cmd; Cmd.Filename = testPath("root/A.cc"); @@ -201,7 +203,7 @@ TEST_F(BackgroundIndexTest, IndexTwoFiles) { EXPECT_THAT(runFuzzyFind(Idx, ""), UnorderedElementsAre(AllOf(Named("common"), NumReferences(1U)), AllOf(Named("A_CC"), NumReferences(0U)), - AllOf(Named("g"), NumReferences(0U)), + AllOf(Named("g"), NumReferences(1U)), AllOf(Named("f_b"), Declared(), Not(Defined()), NumReferences(0U)))); @@ -214,7 +216,7 @@ TEST_F(BackgroundIndexTest, IndexTwoFiles) { EXPECT_THAT(runFuzzyFind(Idx, ""), UnorderedElementsAre(AllOf(Named("common"), NumReferences(5U)), AllOf(Named("A_CC"), NumReferences(0U)), - AllOf(Named("g"), NumReferences(0U)), + AllOf(Named("g"), NumReferences(1U)), AllOf(Named("f_b"), Declared(), Defined(), NumReferences(1U)))); @@ -238,7 +240,8 @@ TEST_F(BackgroundIndexTest, MainFileRefs) { FS.Files[testPath("root/A.cc")] = "#include \"A.h\"\nstatic void main_sym() { (void)header_sym; }"; - // Check the behaviour with CollectMainFileRefs = false (the default). + // Check the behaviour with CollectMainFileRefs = false (the default + // at the SymbolCollector level). { llvm::StringMap<std::string> Storage; size_t CacheHits = 0; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits