[PATCH] D50847: [clangd] Add callbacks on parsed AST in addition to parsed preambles

Ilya Biryukov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 17 02:36:55 PDT 2018


ilya-biryukov added a comment.

In https://reviews.llvm.org/D50847#1202658, @ioeric wrote:

> > Dynamic index misses important information from the body of the file, e.g. locations of definitions
> >  XRefs cannot be collected at all, since we can only obtain full information for the current file (preamble is parsed with skipped function bodies, therefore not reliable).
>
> These seem to be known limitations of the dynamic index. The dynamic index, in general, only handles things that are in headers; information in the main file can usually be obtained from Sema/AST (outside of the index). For example, definition/xrefs locations can be merged from index and the AST.


We still want this information in the index. One can obtain this information for the **current** file. However, we still need to keep this info in the index for definitions in the other open files.

>> This patch only adds the new callback, actually updating the index will be added in a follow-up patch.
> 
> How do we plan to merge symbols from the preamble callback and the main file callback? The current FileIndex only allows swapping all symbols.

There are multiple ways to do that, lowest overhead is having two separate slabs: one for preamble symbols, another for symbols in the main file. They will be merged on-the-go when requested.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D50847





More information about the cfe-commits mailing list