[PATCH] D153340: [include-cleaner] Add an IgnoreHeaders flag to the command-line tool.
Kadir Cetinkaya via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 5 01:43:45 PDT 2023
kadircet accepted this revision.
kadircet added inline comments.
This revision is now accepted and ready to land.
================
Comment at: clang-tools-extra/include-cleaner/include/clang-include-cleaner/Types.h:138
+ /// Returns the path (without surrounding quotes/brackets) for the header.
+ /// For physical headers, this is the resolved path.
+ llvm::StringRef resolvedPath() const;
----------------
i think name and the comment are somewhat confusing, what about:
```
/// Absolute path for the header, when it's a physical file. Otherwise just the spelling without surrounding quotes/brackets.
```
================
Comment at: clang-tools-extra/include-cleaner/lib/Analysis.cpp:82
+ Ref.RT == RefType::Explicit &&
+ (!HeaderFilter ||
+ !HeaderFilter(Providers.front().resolvedPath())))
----------------
nit: rather than checking this at every use, might be easier to have something like:
```
if (!HeaderFilter)
HeaderFilter = +[](llvm::StringRef) { return false; };
```
================
Comment at: clang-tools-extra/include-cleaner/test/tool.cpp:17
+// RUN: clang-include-cleaner -print=changes %s --ignore-headers="foobar\.h,foo\.h" -- -I%S/Inputs/ | FileCheck --match-full-lines --allow-empty --check-prefix=IGNORE %s
+// IGNORE-NOT: - "foobar.h"
----------------
hokein wrote:
> kadircet wrote:
> > can you ignore one but keep other?
> >
> > it'd be useful to also test the regex behaviour
> this tests aims to test filtering logic for both missing-includes and unused-includes cases.
>
> added a new test.
we're still lacking a test for regex behaviour, maybe change next one to `foob.*\.h` ?
================
Comment at: clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:212
+private:
+ llvm::function_ref<bool(llvm::StringRef Path)> HeaderFilter;
+};
----------------
nit: Drop `Path`
================
Comment at: clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:231
+ }
+ return [FilterRegs](llvm::StringRef Path) {
+ llvm::errs() << "Path: " << Path << "\n";
----------------
`FilterRegs=std::move(FilterRegs)` and drop the `shared_ptr`?
================
Comment at: clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:232
+ return [FilterRegs](llvm::StringRef Path) {
+ llvm::errs() << "Path: " << Path << "\n";
+ for (const auto &F : *FilterRegs) {
----------------
looks like debugging artifact
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D153340/new/
https://reviews.llvm.org/D153340
More information about the cfe-commits
mailing list