summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/Quality.cpp
diff options
context:
space:
mode:
authorKadir Cetinkaya <kadircet@google.com>2018-08-08 08:59:29 +0000
committerKadir Cetinkaya <kadircet@google.com>2018-08-08 08:59:29 +0000
commit2f84d911317b6c0c312ef34fd1ca20a32614ea15 (patch)
tree15180eef09fe85703271e62036cdfe09576190db /clang-tools-extra/clangd/Quality.cpp
parentc6a00f545c4175c94257827522d598013e213e34 (diff)
downloadbcm5719-llvm-2f84d911317b6c0c312ef34fd1ca20a32614ea15.tar.gz
bcm5719-llvm-2f84d911317b6c0c312ef34fd1ca20a32614ea15.zip
Added functionality to suggest FixIts for conversion of '->' to '.' and vice versa.
Summary: Added functionality to suggest FixIts for conversion of '->' to '.' and vice versa. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: yvvan, ioeric, jkorous, arphaman, cfe-commits, kadircet Differential Revision: https://reviews.llvm.org/D50193 llvm-svn: 339224
Diffstat (limited to 'clang-tools-extra/clangd/Quality.cpp')
-rw-r--r--clang-tools-extra/clangd/Quality.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/Quality.cpp b/clang-tools-extra/clangd/Quality.cpp
index 61195b56660..8cf794b0fe8 100644
--- a/clang-tools-extra/clangd/Quality.cpp
+++ b/clang-tools-extra/clangd/Quality.cpp
@@ -292,6 +292,8 @@ void SymbolRelevanceSignals::merge(const CodeCompletionResult &SemaCCResult) {
// Declarations are scoped, others (like macros) are assumed global.
if (SemaCCResult.Declaration)
Scope = std::min(Scope, computeScope(SemaCCResult.Declaration));
+
+ NeedsFixIts = !SemaCCResult.FixIts.empty();
}
static std::pair<float, unsigned> proximityScore(llvm::StringRef SymbolURI,
@@ -343,6 +345,10 @@ float SymbolRelevanceSignals::evaluate() const {
Score *= 0.5;
}
+ // Penalize for FixIts.
+ if (NeedsFixIts)
+ Score *= 0.5;
+
return Score;
}
@@ -350,6 +356,7 @@ raw_ostream &operator<<(raw_ostream &OS, const SymbolRelevanceSignals &S) {
OS << formatv("=== Symbol relevance: {0}\n", S.evaluate());
OS << formatv("\tName match: {0}\n", S.NameMatch);
OS << formatv("\tForbidden: {0}\n", S.Forbidden);
+ OS << formatv("\tNeedsFixIts: {0}\n", S.NeedsFixIts);
OS << formatv("\tIsInstanceMember: {0}\n", S.IsInstanceMember);
OS << formatv("\tContext: {0}\n", getCompletionKindString(S.Context));
OS << formatv("\tSymbol URI: {0}\n", S.SymbolURI);
OpenPOWER on IntegriCloud