summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/index/Merge.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/index/Merge.cpp')
-rw-r--r--clang-tools-extra/clangd/index/Merge.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/clang-tools-extra/clangd/index/Merge.cpp b/clang-tools-extra/clangd/index/Merge.cpp
index 8d8150a1313..0cef7dc7630 100644
--- a/clang-tools-extra/clangd/index/Merge.cpp
+++ b/clang-tools-extra/clangd/index/Merge.cpp
@@ -107,23 +107,24 @@ bool MergedIndex::refs(const RefsRequest &Req,
More |= Dynamic->refs(Req, [&](const Ref &O) {
DynamicIndexFileURIs.insert(O.Location.FileURI);
Callback(O);
+ assert(Remaining != 0);
--Remaining;
});
if (Remaining == 0 && More)
return More;
// We return less than Req.Limit if static index returns more refs for dirty
// files.
- More |= Static->refs(Req, [&](const Ref &O) {
+ bool StaticHadMore = Static->refs(Req, [&](const Ref &O) {
if (DynamicIndexFileURIs.count(O.Location.FileURI))
return; // ignore refs that have been seen from dynamic index.
- if (Remaining == 0)
+ if (Remaining == 0) {
More = true;
- if (Remaining > 0) {
- --Remaining;
- Callback(O);
+ return;
}
+ --Remaining;
+ Callback(O);
});
- return More;
+ return More || StaticHadMore;
}
void MergedIndex::relations(
OpenPOWER on IntegriCloud