================
@@ -22,6 +23,15 @@ namespace clangd {
 
 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
 
+/// A bitmask type representing symbol tags supported by LSP.
+/// \see
+/// 
https://microsoft.github.io/language-server-protocol/specifications/specification-current/#symbolTag
+using SymbolTags = uint32_t;
----------------
timon-ul wrote:

I think we can couple this more deeply to `SymbolTag`, making the below assert 
also obsolete in the process. For this I see 2 ways to go about this, the first 
one is we simply operate like `SymbolFlag` (further down in this file), where 
we directly operate on the enum, making it already represent a combination of 
enums. Also I like that we have pre defined operators on the enum there. I can 
understand if you like to have a more clear difference between the enum and the 
aggregated enum, so the second option would be to simply set `using SymbolTags 
= SymbolTag` to guarantee the same underlaying type. By the way both of these 
options want you to then have a enum for `0`, but since you start assigning 
values with `1` you can easily add a `None` enum with value `0` (again I am 
referencing `SymbolFlag`) without it costing additional encoding space.

https://github.com/llvm/llvm-project/pull/170103
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to