Skip to content

Commit 86a41ca

Browse files
committed
Simplified filterSymbolTags:
- Reused a combined mask (`RemoveVirtualAndOverrides`) to avoid repeating `~(Overrides | Virtual)`. - Merged the two identical "remove virtual" cases (`Overrides`, `Abstract`) into one condition.
1 parent bdacf73 commit 86a41ca

1 file changed

Lines changed: 9 additions & 12 deletions

File tree

clang-tools-extra/clangd/FindSymbols.cpp

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

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

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

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

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

0 commit comments

Comments
 (0)