[clang-tools-extra] Symbol tags in SymbolInformation, WorkspaceSymbol, CallHierarchyItem and TypeHierarchyItem (PR #170103)

Dimitri Ratz via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 30 03:49:59 PDT 2026


================
@@ -208,21 +266,103 @@ SymbolTags computeSymbolTags(const NamedDecl &ND) {
   return Result;
 }
 
+// Filter symbol tags based on the presence of other tags and the kind of
+// symbol. This is needed to avoid redundant tags.
+SymbolTags filterSymbolTags(const NamedDecl &ND, const SymbolTags ST) {
----------------
ratzdi wrote:

It is not always advisable to pass on the calculated symbol tags directly. For example, `void foo() final {}` would have, among others, the tags `virtual` and `overrides`. These two can be correctly reduced to a single symbol tag.

https://github.com/llvm/llvm-project/pull/170103


More information about the cfe-commits mailing list