[clangd] Implement BOOST iterator
authorKirill Bobyrev <kbobyrev.opensource@gmail.com>
Wed, 22 Aug 2018 13:44:15 +0000 (13:44 +0000)
committerKirill Bobyrev <kbobyrev.opensource@gmail.com>
Wed, 22 Aug 2018 13:44:15 +0000 (13:44 +0000)
commit7413e985ea2979d588c9e27385ad937a383f5bbc
treea606fe768d549dec75911ff8f5d87af59a8d0f1d
parent2a5e4639eaa6d85d882a60cd31d82110a8ef55d0
[clangd] Implement BOOST iterator

This patch introduces BOOST iterator - a substantial block for efficient
and high-quality symbol retrieval. The concept of boosting allows
performing computationally inexpensive scoring on the query side so that
the final (expensive) scoring can only be applied on the items with the
highest preliminary score while eliminating the need to score too many
items.

Reviewed by: ilya-biryukov

Differential Revision: https://reviews.llvm.org/D50970

llvm-svn: 340409
clang-tools-extra/clangd/index/dex/DexIndex.cpp
clang-tools-extra/clangd/index/dex/Iterator.cpp
clang-tools-extra/clangd/index/dex/Iterator.h
clang-tools-extra/unittests/clangd/DexIndexTests.cpp