hokein added a comment.

Thanks for the comments.



================
Comment at: clangd/CMakeLists.txt:50
 add_subdirectory(tool)
+add_subdirectory(global-symbol-builder)
----------------
sammccall wrote:
> I think generally we run `check-clang-tools` before committing - I guess it's 
> OK not to have tests for this experimental tool, but we should at least keep 
> it building. Can you make check-clang-tools build it?
Yeah, it builds.


================
Comment at: clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp:106
+  std::error_code EC;
+  SymbolSlab Result;
+  std::mutex SymbolMutex;
----------------
sammccall wrote:
> FYI D41506 changes this API, adding `SymbolSlab::Builder`. Shouldn't be a 
> problem, but we'll need to merge.
Will do it after that patch is landed.


================
Comment at: clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp:112
+    for (const auto &Symbol : NewSymbols) {
+      auto it = Result.find(Symbol.second.ID);
+      if (it == Result.end())
----------------
sammccall wrote:
> This seems like you might end up overwriting good declarations with bad ones 
> (e.g. forward decls). Picking one with a simple heuristic like "longest 
> range" would get classes right.
Add a FIXME here, will do it in a follow-up -- as the symbol structure would be 
changed.


================
Comment at: clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp:175
+          *Executor->get()->getExecutionContext()));
+  auto Err = Executor->get()->execute(std::move(T));
+  if (Err) {
----------------
sammccall wrote:
> I don't understand why we need to plumb callbacks through SymbolCollector.
> Can't we just write the slab after this line?
`ToolExecutor` takes over the lifetime of `FrontendActionFactory`, there is no 
straightforward way to get the internal `SymbolSlab` from the indexAction.

Changed to use `ClangTool`, since it would simplify the code a lot, and no 
changes in `SymbolCollector`.


================
Comment at: clangd/global-symbol-builder/run-global-symbol-builder.py:1
+#!/usr/bin/env python
+#
----------------
sammccall wrote:
> So we now have three copies of this script...
> I'm probably missing something, but what's here that's hard to do in a single 
> binary?
> I'd have to think it'd be faster if we weren't constantly spawning new 
> processes and roundtripping all the data through YAML-on-disk.
> 
> (If this is just expedience because we have an existing template to copy, I'm 
> happy to try to combine it into one binary myself)
Yeah, the script is borrowed from other places for the fast prototype.

We can combine it into the `global-symbol-builder` binary. Done.



Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D41491



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

Reply via email to