[clangd] Respect Origin option in createStaticIndexingAction
authorKadir Cetinkaya <kadircet@google.com>
Mon, 11 Mar 2019 11:01:14 +0000 (11:01 +0000)
committerKadir Cetinkaya <kadircet@google.com>
Mon, 11 Mar 2019 11:01:14 +0000 (11:01 +0000)
Summary:
Currently createStaticIndexingAction always set Origin to Static, which
makes it hard to change it later on by different indexers(One needs to go over
each symbol making a new copy).

This patch changes that behavior to rather respect it if set by user.

Reviewers: ioeric

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D59205

llvm-svn: 355820

clang-tools-extra/clangd/index/IndexAction.cpp
clang-tools-extra/clangd/index/IndexAction.h

index 96c007d..61db161 100644 (file)
@@ -183,7 +183,8 @@ std::unique_ptr<FrontendAction> createStaticIndexingAction(
       index::IndexingOptions::SystemSymbolFilterKind::All;
   Opts.CollectIncludePath = true;
   Opts.CountReferences = true;
-  Opts.Origin = SymbolOrigin::Static;
+  if (Opts.Origin == SymbolOrigin::Unknown)
+    Opts.Origin = SymbolOrigin::Static;
   Opts.StoreAllDocumentation = false;
   if (RefsCallback != nullptr) {
     Opts.RefFilter = RefKind::All;
index 748b26e..f2b45de 100644 (file)
@@ -22,7 +22,7 @@ namespace clangd {
 //   - include paths are always collected, and canonicalized appropriately
 //   - references are always counted
 //   - all references are collected (if RefsCallback is non-null)
-//   - the symbol origin is always Static
+//   - the symbol origin is set to Static if not specified by caller
 std::unique_ptr<FrontendAction> createStaticIndexingAction(
     SymbolCollector::Options Opts,
     std::function<void(SymbolSlab)> SymbolsCallback,