[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
diff --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-extra/clangd/CodeComplete.cpp
index e8a77e6..be252b5 100644
--- a/clang-tools-extra/clangd/CodeComplete.cpp
+++ b/clang-tools-extra/clangd/CodeComplete.cpp
@@ -268,8 +268,7 @@
       : 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 @@
           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 @@
     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 @@
                             << 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;
   }