<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 18, 2018, 16:28 Eric Liu via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">ioeric added a comment.<br>
<br>
In <a href="https://reviews.llvm.org/D52078#1238301" rel="noreferrer noreferrer" target="_blank">https://reviews.llvm.org/D52078#1238301</a>, @sammccall wrote:<br>
<br>
> Something not listed in cons: because macros aren't namespaced and we don't have lots of signals, they can be really spammy. <br>
>  Potentially, offering macros that aren't in the TU could be a loss even if it's a win for other types of signals.<br>
<br>
<br>
Aren't they already spammy from Sema? Sema can provide thousands of macros in the TU.<br></blockquote></div></div><div dir="auto">Indeed, but Sema will at least implicitly restrict to the transitive headers!</div><div dir="auto"><br></div><div dir="auto">Agree with everything you say, looking forward to this change!</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
We penalize quality of macro symbols in the global index. Maybe we can do the same thing for dynamic index?<br>
<br>
> We could always e.g. postfilter index macro results using the include structure of the preamble, so no concern for this patch, just something to think about for the followup.<br>
<br>
Sounds good.<br>
<br>
> We also need to make sure that we're not indexing/serving header guards as code completions (e.g. if SemaCodeComplete is currently taking care of this)<br>
<br>
These symbols are already filtered out in `SymbolCollector`.<br>
<br>
<br>
Repository:<br>
  rCTE Clang Tools Extra<br>
<br>
<a href="https://reviews.llvm.org/D52078" rel="noreferrer noreferrer" target="_blank">https://reviews.llvm.org/D52078</a><br>
<br>
<br>
<br>
</blockquote></div></div></div>