sammccall marked 6 inline comments as done.
sammccall added a comment.

Thanks!



================
Comment at: clangd/index/Index.cpp:39
+                             [](const Symbol &S, const SymbolID &I) {
+                               return S.ID == I;
+                             });
----------------
ilya-biryukov wrote:
> Should this be `S.ID < I`?
Wow, good catch (both here and below)!
Added a test (for some reason I thought we had one for this sort of stuff)


================
Comment at: clangd/index/Index.cpp:76
+SymbolSlab SymbolSlab::Builder::build() && {
+  Symbols = {Symbols.begin(), Symbols.end()}; // Force shrink-to-fit.
+  // Sort symbols so the slab can binary search over them.
----------------
hokein wrote:
>  use `Symbols.shrink_to_fit()`?
This is only a hint, and on my system it's a no-op. I think we know enough 
about the lifecycle here to make forcing the shrink worth it.


================
Comment at: clangd/index/SymbolCollector.h:36
   // All Symbols collected from the AST.
-  SymbolSlab Symbols;
+  SymbolSlab::Builder Symbols;
 };
----------------
hokein wrote:
> Maybe name it `SymbolBuilder` to avoid confusion -- `Symbols` indicates its 
> type is `SymbolSlab`. 
Hmm, I'm not sure `SymbolBuilder` is a better name - it doesn't build symbols.
I'm not really seeing the association between `Symbols` and `SymbolSlab` - a 
`SymbolSlab::Builder` is also a collection of symbols. 


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D41506



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to