Skip to content

Commit c39d64b

Browse files
committed
Revert "Simplified filterSymbolTags:"
This reverts commit 86a41ca.
1 parent 2aea848 commit c39d64b

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

clang-tools-extra/clangd/FindSymbols.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -203,20 +203,23 @@ SymbolTags filterSymbolTags(SymbolTags ST) {
203203
const SymbolTags AbstractMask = toSymbolTagBitmask(SymbolTag::Abstract);
204204
const SymbolTags FinalMask = toSymbolTagBitmask(SymbolTag::Final);
205205

206-
const SymbolTags RemoveVirtualAndOverrides = VirtualMask | OverridesMask;
207-
208-
// Implements implies both Overrides and Virtual.
206+
// Implements implies Overrides + Virtual.
209207
if (ST & ImplementsMask)
210-
ST &= ~RemoveVirtualAndOverrides;
208+
ST &= ~(OverridesMask | VirtualMask);
211209

212-
// Final also suppresses both Virtual and Overrides in this model.
213-
if (ST & FinalMask)
214-
ST &= ~RemoveVirtualAndOverrides;
210+
// Overrides implies Virtual.
211+
if (ST & OverridesMask)
212+
ST &= ~VirtualMask;
215213

216-
// Overrides or Abstract each imply Virtual.
217-
if (ST & (OverridesMask | AbstractMask))
214+
// Abstract implies Virtual.
215+
if (ST & AbstractMask)
218216
ST &= ~VirtualMask;
219217

218+
// Final implies Virtual; Overrides is also redundant as Final overrides are
219+
// still overrides.
220+
if (ST & FinalMask)
221+
ST &= ~(VirtualMask | OverridesMask);
222+
220223
return ST;
221224
}
222225

0 commit comments

Comments
 (0)