diff options
author | Sam McCall <sam.mccall@gmail.com> | 2018-07-06 11:50:49 +0000 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2018-07-06 11:50:49 +0000 |
commit | 4e5742a479781860a67c55911132b993b9718064 (patch) | |
tree | 3dafadf1f6dbac0870ef8d75213a4ea51df461b5 /clang-tools-extra/clangd/CodeComplete.cpp | |
parent | 492cdfc5fbe2b35e7c52a12e853298d14ea68e8f (diff) | |
download | bcm5719-llvm-4e5742a479781860a67c55911132b993b9718064.tar.gz bcm5719-llvm-4e5742a479781860a67c55911132b993b9718064.zip |
[clangd] Make SymbolOrigin an enum class, rather than a plain enum.
I never intended to define namespace pollution like clangd::AST, clangd::Unknown
etc. Oops!
llvm-svn: 336431
Diffstat (limited to 'clang-tools-extra/clangd/CodeComplete.cpp')
-rw-r--r-- | clang-tools-extra/clangd/CodeComplete.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-extra/clangd/CodeComplete.cpp index e8a77e6248b..be252b52b64 100644 --- a/clang-tools-extra/clangd/CodeComplete.cpp +++ b/clang-tools-extra/clangd/CodeComplete.cpp @@ -268,8 +268,7 @@ struct CodeCompletionBuilder { : ASTCtx(ASTCtx), ExtractDocumentation(Opts.IncludeComments) { add(C, SemaCCS); if (C.SemaResult) { - Completion.Origin = - static_cast<SymbolOrigin>(Completion.Origin | SymbolOrigin::AST); + Completion.Origin |= SymbolOrigin::AST; Completion.Name = llvm::StringRef(SemaCCS->getTypedText()); if (Completion.Scope.empty()) if (C.SemaResult->Kind == CodeCompletionResult::RK_Declaration) @@ -281,8 +280,7 @@ struct CodeCompletionBuilder { toCompletionItemKind(C.SemaResult->Kind, C.SemaResult->Declaration); } if (C.IndexResult) { - Completion.Origin = - static_cast<SymbolOrigin>(Completion.Origin | C.IndexResult->Origin); + Completion.Origin |= C.IndexResult->Origin; if (Completion.Scope.empty()) Completion.Scope = C.IndexResult->Scope; if (Completion.Kind == CompletionItemKind::Missing) @@ -1156,17 +1154,18 @@ private: else return; SymbolOrigin Origin = SymbolOrigin::Unknown; + bool FromIndex = false; for (const auto &Candidate : Bundle) { if (Candidate.IndexResult) { Quality.merge(*Candidate.IndexResult); Relevance.merge(*Candidate.IndexResult); - Origin = - static_cast<SymbolOrigin>(Origin | Candidate.IndexResult->Origin); + Origin |= Candidate.IndexResult->Origin; + FromIndex = true; } if (Candidate.SemaResult) { Quality.merge(*Candidate.SemaResult); Relevance.merge(*Candidate.SemaResult); - Origin = static_cast<SymbolOrigin>(Origin | SymbolOrigin::AST); + Origin |= SymbolOrigin::AST; } } @@ -1184,8 +1183,8 @@ private: << Quality << Relevance << "\n"); NSema += bool(Origin & SymbolOrigin::AST); - NIndex += bool(Origin & ~SymbolOrigin::AST); - NBoth += (Origin & SymbolOrigin::AST) && (Origin & ~SymbolOrigin::AST); + NIndex += FromIndex; + NBoth += bool(Origin & SymbolOrigin::AST) && FromIndex; if (Candidates.push({std::move(Bundle), Scores})) Incomplete = true; } |