diff options
| author | Eric Liu <ioeric@google.com> | 2016-06-14 14:09:21 +0000 |
|---|---|---|
| committer | Eric Liu <ioeric@google.com> | 2016-06-14 14:09:21 +0000 |
| commit | 3753f912bf2218ab02afae404ca7d39cebe94811 (patch) | |
| tree | 94c6c77c00bbaa587bfbb145147680061a9b35c0 /clang/lib/Format | |
| parent | 887a399418dba637d19e6aeec2071dfc03077583 (diff) | |
| download | bcm5719-llvm-3753f912bf2218ab02afae404ca7d39cebe94811.tar.gz bcm5719-llvm-3753f912bf2218ab02afae404ca7d39cebe94811.zip | |
[clang-format] do not add existing includes.
Summary: do not add existing includes.
Reviewers: djasper
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D21323
llvm-svn: 272669
Diffstat (limited to 'clang/lib/Format')
| -rw-r--r-- | clang/lib/Format/Format.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 45ae4338fc8..4e136941162 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -1486,7 +1486,6 @@ unsigned getOffsetAfterHeaderGuardsAndComments(StringRef FileName, // code. // FIXME: do not insert headers into conditional #include blocks, e.g. #includes // surrounded by compile condition "#if...". -// FIXME: do not insert existing headers. // FIXME: insert empty lines between newly created blocks. tooling::Replacements fixCppIncludeInsertions(StringRef Code, const tooling::Replacements &Replaces, @@ -1533,10 +1532,12 @@ fixCppIncludeInsertions(StringRef Code, const tooling::Replacements &Replaces, TrimmedCode.split(Lines, '\n'); unsigned Offset = MinInsertOffset; unsigned NextLineOffset; + std::set<StringRef> ExistingIncludes; for (auto Line : Lines) { NextLineOffset = std::min(Code.size(), Offset + Line.size() + 1); if (IncludeRegex.match(Line, &Matches)) { StringRef IncludeName = Matches[2]; + ExistingIncludes.insert(IncludeName); int Category = Categories.getIncludePriority( IncludeName, /*CheckMainHeader=*/FirstIncludeOffset < 0); CategoryEndOffsets[Category] = NextLineOffset; @@ -1572,6 +1573,11 @@ fixCppIncludeInsertions(StringRef Code, const tooling::Replacements &Replaces, "'#include ...'"); (void)Matched; auto IncludeName = Matches[2]; + if (ExistingIncludes.find(IncludeName) != ExistingIncludes.end()) { + DEBUG(llvm::dbgs() << "Skip adding existing include : " << IncludeName + << "\n"); + continue; + } int Category = Categories.getIncludePriority(IncludeName, /*CheckMainHeader=*/true); Offset = CategoryEndOffsets[Category]; |

