[PATCH] D133756: [clangd] Introduce CompileCommandsAdjuster
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 15 11:32:51 PDT 2022
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
More information about the cfe-commits
mailing list