File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments