data: Refactored ParserClient API to return and use Ids instead of NameHierarchies for faster indexing

* Pass NameHierarchy to record new symbol returning an Id
* Cache symbol Ids in Parser implementation
* Reuse symbol Ids as reference when recording related data
* Pass FilePath to record new file returning an Id
* Cache file Ids in CanonicalFilePathCache
* Store file Id in ParseLocation instead of FilePath

fortune cookie message = You know a silent way to impose your will.
This commit is contained in:
Eberhard Graether
2018-10-16 00:54:38 +02:00
parent aab29b241e
commit 4ae052cb9c
169 changed files with 43427 additions and 43502 deletions
@@ -10,6 +10,7 @@
#include <clang/Lex/Token.h>
#include "FilePath.h"
#include "types.h"
class CanonicalFilePathCache;
class ParserClient;
@@ -63,7 +64,7 @@ private:
std::shared_ptr<ParserClient> m_client;
std::shared_ptr<CanonicalFilePathCache> m_canonicalFilePathCache;
FilePath m_currentPath;
Id m_currentFileSymbolId;
bool m_currentPathIsProjectFile = false;
std::set<clang::FileID> m_fileWasRecorded;