Index: clang-tools-extra/trunk/clangd/ClangdLSPServer.cpp =================================================================== --- clang-tools-extra/trunk/clangd/ClangdLSPServer.cpp +++ clang-tools-extra/trunk/clangd/ClangdLSPServer.cpp @@ -87,7 +87,7 @@ std::vector> buildHighlightScopeLookupTable() { std::vector> LookupTable; // HighlightingKind is using as the index. - for (int KindValue = 0; KindValue < (int)HighlightingKind::NumKinds; + for (int KindValue = 0; KindValue <= (int)HighlightingKind::LastKind; ++KindValue) LookupTable.push_back({toTextMateScope((HighlightingKind)(KindValue))}); return LookupTable; Index: clang-tools-extra/trunk/clangd/SemanticHighlighting.h =================================================================== --- clang-tools-extra/trunk/clangd/SemanticHighlighting.h +++ clang-tools-extra/trunk/clangd/SemanticHighlighting.h @@ -41,7 +41,7 @@ Primitive, Macro, - NumKinds, + LastKind = Macro }; llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, HighlightingKind K); Index: clang-tools-extra/trunk/clangd/SemanticHighlighting.cpp =================================================================== --- clang-tools-extra/trunk/clangd/SemanticHighlighting.cpp +++ clang-tools-extra/trunk/clangd/SemanticHighlighting.cpp @@ -383,9 +383,8 @@ return OS << "Primitive"; case HighlightingKind::Macro: return OS << "Macro"; - case HighlightingKind::NumKinds: - llvm_unreachable("NumKinds is not a valid HighlightingKind"); } + llvm_unreachable("invalid HighlightingKind"); } std::vector @@ -511,8 +510,6 @@ return "storage.type.primitive.cpp"; case HighlightingKind::Macro: return "entity.name.function.preprocessor.cpp"; - case HighlightingKind::NumKinds: - llvm_unreachable("must not pass NumKinds to the function"); } llvm_unreachable("unhandled HighlightingKind"); }