summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/Quality.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/Quality.cpp')
-rw-r--r--clang-tools-extra/clangd/Quality.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang-tools-extra/clangd/Quality.cpp b/clang-tools-extra/clangd/Quality.cpp
index 0d2175eb00c..6d0c37625af 100644
--- a/clang-tools-extra/clangd/Quality.cpp
+++ b/clang-tools-extra/clangd/Quality.cpp
@@ -299,6 +299,7 @@ void SymbolRelevanceSignals::merge(const CodeCompletionResult &SemaCCResult) {
: 0.6;
SemaFileProximityScore = std::max(DeclProximity, SemaFileProximityScore);
IsInstanceMember |= isInstanceMember(SemaCCResult.Declaration);
+ InBaseClass |= SemaCCResult.InBaseClass;
}
// Declarations are scoped, others (like macros) are assumed global.
@@ -372,9 +373,12 @@ float SymbolRelevanceSignals::evaluate() const {
if (!IsInstanceMember &&
(Context == CodeCompletionContext::CCC_DotMemberAccess ||
Context == CodeCompletionContext::CCC_ArrowMemberAccess)) {
- Score *= 0.5;
+ Score *= 0.2;
}
+ if (InBaseClass)
+ Score *= 0.5;
+
// Penalize for FixIts.
if (NeedsFixIts)
Score *= 0.5;
OpenPOWER on IntegriCloud