sammccall added inline comments.

================
Comment at: clang-tools-extra/clangd/GlobalCompilationDatabase.h:165
+// process a file (possibly different from the one in the command).
+class CompileCommandsAdjuster {
+public:
----------------
I have a couple of concerns with this interface:
 - we seem to be stretching to cover {mangler, querydriver} with one interface, 
but there's no particular reason to - we never use it polymorphically.
 - the contract is very vague. If it's just "mutate flags" then some sort of 
generic `function<void(CompileCommand&)>` seems sufficient
 - `File` feels out-of-place - it's purely an input for the mangler. If 
query-driver needs an extra input, will we add that too?
 - either `CompileCommand` or filename+argv seems reasonable, providing 
CompileCommand+argv is confusing. 
 - the name is hard to distinguish from tooling::ArgumentsAdjuster (which is a 
bad interface)

The immediate problem being solved is the type of 
CommandMangler::SystemIncludeExtractor, right?
Can that just be `unique_function<void(vector<string>&, StringRef)>` or so? 
Possibly behind `using SystemIncludeExtractor = ...`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133756/new/

https://reviews.llvm.org/D133756

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

Reply via email to