[PATCH] D138678: [include-cleaner] Capture private headers in PragmaIncludes.
Viktoriia Bakalova via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 25 07:07:05 PST 2022
VitaNuo marked an inline comment as done.
VitaNuo added inline comments.
================
Comment at: clang-tools-extra/include-cleaner/lib/Record.cpp:237
+ auto *FE = SM.getFileEntryForID(SM.getFileID(Range.getBegin()));
+ if (!FE) {
+ return false;
----------------
kadircet wrote:
> nit: you can drop the braces here. LLVM convention is to not have braces when a condition/loop body has only a single statement.
Ah ok, thank you. It's a bit funny, my whole life until now I've been rigorously taught to never do this ;-)
================
Comment at: clang-tools-extra/include-cleaner/lib/Record.cpp:240
+ }
+ if (Pragma->consume_front(", include ")) {
+ // We always insert using the spelling from the pragma.
----------------
kadircet wrote:
> nit: you can also rewrite this as:
> ```
> StringRef PublicHeader;
> if (Pragma->consume_front(", include ")) {
> PublicHeader = save(Pragma->startswith("<") || Pragma->startswith("\"")
> ? (*Pragma)
> : ("\"" + *Pragma + "\"").str());
> }
> Out->IWYUPublic.insert({FE->getLastRef().getUniqueID(), PublicHeader});
> ```
Yeah this is good, thanks.
================
Comment at: clang-tools-extra/include-cleaner/unittests/RecordTest.cpp:381
+ // IWYU pragma: private
+ class Private {};
+ )cpp";
----------------
kadircet wrote:
> VitaNuo wrote:
> > kadircet wrote:
> > > nit: no need for the declaration of `Private` here (nor in `private.h`). it's actually introducing a double definition error into TU now.
> > Out of curiosity: what's TU?
> it means `translation unit`, it's the source file provided to the compiler after all preprocessor directives are processed.
Thanks.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138678/new/
https://reviews.llvm.org/D138678
More information about the cfe-commits
mailing list