[clangd] Make IncludeInserter less slow. NFC

llvm-svn: 343223
This commit is contained in:
Eric Liu 2018-09-27 14:27:02 +00:00
parent 95a816b34a
commit fd9f426049
2 changed files with 9 additions and 9 deletions

View File

@ -126,6 +126,12 @@ IncludeStructure::includeDepth(llvm::StringRef Root) const {
return Result;
}
void IncludeInserter::addExisting(const Inclusion &Inc) {
IncludedHeaders.insert(Inc.Written);
if (!Inc.Resolved.empty())
IncludedHeaders.insert(Inc.Resolved);
}
/// FIXME(ioeric): we might not want to insert an absolute include path if the
/// path is not shortened.
bool IncludeInserter::shouldInsertInclude(
@ -133,12 +139,6 @@ bool IncludeInserter::shouldInsertInclude(
assert(DeclaringHeader.valid() && InsertedHeader.valid());
if (FileName == DeclaringHeader.File || FileName == InsertedHeader.File)
return false;
llvm::StringSet<> IncludedHeaders;
for (const auto &Inc : Inclusions) {
IncludedHeaders.insert(Inc.Written);
if (!Inc.Resolved.empty())
IncludedHeaders.insert(Inc.Resolved);
}
auto Included = [&](llvm::StringRef Header) {
return IncludedHeaders.find(Header) != IncludedHeaders.end();
};

View File

@ -97,7 +97,7 @@ public:
HeaderSearchInfo(HeaderSearchInfo),
Inserter(FileName, Code, Style.IncludeStyle) {}
void addExisting(Inclusion Inc) { Inclusions.push_back(std::move(Inc)); }
void addExisting(const Inclusion &Inc);
/// Checks whether to add an #include of the header into \p File.
/// An #include will not be added if:
@ -134,8 +134,8 @@ private:
StringRef Code;
StringRef BuildDir;
HeaderSearch &HeaderSearchInfo;
std::vector<Inclusion> Inclusions;
tooling::HeaderIncludes Inserter; // Computers insertion replacement.
llvm::StringSet<> IncludedHeaders; // Both written and resolved.
tooling::HeaderIncludes Inserter; // Computers insertion replacement.
};
} // namespace clangd