summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/index/dex/Iterator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/index/dex/Iterator.cpp')
-rw-r--r--clang-tools-extra/clangd/index/dex/Iterator.cpp51
1 files changed, 27 insertions, 24 deletions
diff --git a/clang-tools-extra/clangd/index/dex/Iterator.cpp b/clang-tools-extra/clangd/index/dex/Iterator.cpp
index bf4274a4f95..9e4606a448f 100644
--- a/clang-tools-extra/clangd/index/dex/Iterator.cpp
+++ b/clang-tools-extra/clangd/index/dex/Iterator.cpp
@@ -30,23 +30,26 @@ public:
/// Advances cursor to the next item.
void advance() override {
- assert(!reachedEnd() && "DocumentIterator can't advance at the end.");
+ assert(!reachedEnd() && "DOCUMENT iterator can't advance() at the end.");
++Index;
}
/// Applies binary search to advance cursor to the next item with DocID equal
/// or higher than the given one.
void advanceTo(DocID ID) override {
- assert(!reachedEnd() && "DocumentIterator can't advance at the end.");
+ assert(!reachedEnd() && "DOCUMENT iterator can't advance() at the end.");
Index = std::lower_bound(Index, std::end(Documents), ID);
}
DocID peek() const override {
- assert(!reachedEnd() && "DocumentIterator can't call peek() at the end.");
+ assert(!reachedEnd() && "DOCUMENT iterator can't peek() at the end.");
return *Index;
}
- float consume() override { return DEFAULT_BOOST_SCORE; }
+ float consume() override {
+ assert(!reachedEnd() && "DOCUMENT iterator can't consume() at the end.");
+ return DEFAULT_BOOST_SCORE;
+ }
size_t estimateSize() const override { return Documents.size(); }
@@ -84,7 +87,7 @@ class AndIterator : public Iterator {
public:
AndIterator(std::vector<std::unique_ptr<Iterator>> AllChildren)
: Children(std::move(AllChildren)) {
- assert(!Children.empty() && "AndIterator should have at least one child.");
+ assert(!Children.empty() && "AND iterator should have at least one child.");
// Establish invariants.
sync();
// When children are sorted by the estimateSize(), sync() calls are more
@@ -105,14 +108,14 @@ public:
/// Advances all children to the next common item.
void advance() override {
- assert(!reachedEnd() && "AndIterator can't call advance() at the end.");
+ assert(!reachedEnd() && "AND iterator can't advance() at the end.");
Children.front()->advance();
sync();
}
/// Advances all children to the next common item with DocumentID >= ID.
void advanceTo(DocID ID) override {
- assert(!reachedEnd() && "AndIterator can't call advanceTo() at the end.");
+ assert(!reachedEnd() && "AND iterator can't advanceTo() at the end.");
Children.front()->advanceTo(ID);
sync();
}
@@ -120,7 +123,7 @@ public:
DocID peek() const override { return Children.front()->peek(); }
float consume() override {
- assert(!reachedEnd() && "AndIterator can't consume() at the end.");
+ assert(!reachedEnd() && "AND iterator can't consume() at the end.");
return std::accumulate(
begin(Children), end(Children), DEFAULT_BOOST_SCORE,
[&](float Current, const std::unique_ptr<Iterator> &Child) {
@@ -192,7 +195,7 @@ class OrIterator : public Iterator {
public:
OrIterator(std::vector<std::unique_ptr<Iterator>> AllChildren)
: Children(std::move(AllChildren)) {
- assert(Children.size() > 0 && "Or Iterator must have at least one child.");
+ assert(Children.size() > 0 && "OR iterator must have at least one child.");
}
/// Returns true if all children are exhausted.
@@ -205,8 +208,7 @@ public:
/// Moves each child pointing to the smallest DocID to the next item.
void advance() override {
- assert(!reachedEnd() &&
- "OrIterator can't call advance() after it reached the end.");
+ assert(!reachedEnd() && "OR iterator can't advance() at the end.");
const auto SmallestID = peek();
for (const auto &Child : Children)
if (!Child->reachedEnd() && Child->peek() == SmallestID)
@@ -215,7 +217,7 @@ public:
/// Advances each child to the next existing element with DocumentID >= ID.
void advanceTo(DocID ID) override {
- assert(!reachedEnd() && "Can't advance iterator after it reached the end.");
+ assert(!reachedEnd() && "OR iterator can't advanceTo() at the end.");
for (const auto &Child : Children)
if (!Child->reachedEnd())
Child->advanceTo(ID);
@@ -224,8 +226,7 @@ public:
/// Returns the element under cursor of the child with smallest Child->peek()
/// value.
DocID peek() const override {
- assert(!reachedEnd() &&
- "OrIterator can't peek() after it reached the end.");
+ assert(!reachedEnd() && "OR iterator can't peek() at the end.");
DocID Result = std::numeric_limits<DocID>::max();
for (const auto &Child : Children)
@@ -238,8 +239,7 @@ public:
// Returns the maximum boosting score among all Children when iterator is not
// exhausted and points to the given ID, DEFAULT_BOOST_SCORE otherwise.
float consume() override {
- assert(!reachedEnd() &&
- "OrIterator can't consume() after it reached the end.");
+ assert(!reachedEnd() && "OR iterator can't consume() at the end.");
const DocID ID = peek();
return std::accumulate(
begin(Children), end(Children), DEFAULT_BOOST_SCORE,
@@ -284,21 +284,24 @@ public:
bool reachedEnd() const override { return Index >= Size; }
void advance() override {
- assert(!reachedEnd() && "Can't advance iterator after it reached the end.");
+ assert(!reachedEnd() && "TRUE iterator can't advance() at the end.");
++Index;
}
void advanceTo(DocID ID) override {
- assert(!reachedEnd() && "Can't advance iterator after it reached the end.");
+ assert(!reachedEnd() && "TRUE iterator can't advanceTo() at the end.");
Index = std::min(ID, Size);
}
DocID peek() const override {
- assert(!reachedEnd() && "TrueIterator can't call peek() at the end.");
+ assert(!reachedEnd() && "TRUE iterator can't peek() at the end.");
return Index;
}
- float consume() override { return DEFAULT_BOOST_SCORE; }
+ float consume() override {
+ assert(!reachedEnd() && "TRUE iterator can't consume() at the end.");
+ return DEFAULT_BOOST_SCORE;
+ }
size_t estimateSize() const override { return Size; }
@@ -364,7 +367,7 @@ public:
/// Decreases the limit in case the element consumed at top of the query tree
/// comes from the underlying iterator.
float consume() override {
- assert(!reachedEnd() && "LimitIterator can't consume at the end.");
+ assert(!reachedEnd() && "LimitIterator can't consume() at the end.");
--ItemsLeft;
return Child->consume();
}
@@ -389,7 +392,7 @@ private:
std::vector<std::pair<DocID, float>> consume(Iterator &It) {
std::vector<std::pair<DocID, float>> Result;
for (; !It.reachedEnd(); It.advance())
- Result.push_back(std::make_pair(It.peek(), It.consume()));
+ Result.emplace_back(It.peek(), It.consume());
return Result;
}
@@ -417,8 +420,8 @@ std::unique_ptr<Iterator> createBoost(std::unique_ptr<Iterator> Child,
}
std::unique_ptr<Iterator> createLimit(std::unique_ptr<Iterator> Child,
- size_t Size) {
- return llvm::make_unique<LimitIterator>(move(Child), Size);
+ size_t Limit) {
+ return llvm::make_unique<LimitIterator>(move(Child), Limit);
}
} // namespace dex
OpenPOWER on IntegriCloud