[PATCH] Add readability-duplicate-include check to clang-tidy
Alexander Kornienko
alexfh at google.com
Sun Mar 15 17:08:32 PDT 2015
================
Comment at: clang-tidy/readability/DuplicateIncludeCheck.cpp:62
@@ +61,3 @@
+ StringRef SearchPath, StringRef RelativePath, const Module *Imported) {
+ if (!SM_.isInMainFile(HashLoc)) {
+ return;
----------------
LegalizeAdulthood wrote:
> alexfh wrote:
> > What's the reason to limit the check to the main file only? I think, it should work on all headers as well. Also, sometimes it's fine to have duplicate includes even without macro definitions in between, e.g. when these #includes are in different namespaces.
> >
> > I'd suggest using the same technique as in the IncludeOrderCheck: for each file collect all preprocessor directives sorted by SourceLocation. Then detect #include blocks (not necessarily the same way as its done in the IncludeOrderCheck. Maybe use the presense of any non-comment tokens between #includes as a boundary of blocks), and detect duplicate includes in each block.
> If I remove the `isInMainFile`, how do I ensure that I don't attempt to modify system headers?
Using `SourceLocation::isInSystemHeader()`.
http://reviews.llvm.org/D7982
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the cfe-commits
mailing list