[clang-tools-extra] [clangd] Update XRefs to support overriden ObjC methods (PR #127109)
kadir çetinkaya via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 14 02:20:10 PST 2025
================
@@ -1438,6 +1461,15 @@ ReferencesResult findReferences(ParsedAST &AST, Position Pos, uint32_t Limit,
getOverriddenMethods(CMD, OverriddenMethods);
}
}
+ // Special case: Objective-C methods can override a parent class or
+ // protocol, we should be sure to report references to those.
+ if (const auto *OMD = llvm::dyn_cast<ObjCMethodDecl>(ND)) {
+ OverriddenBy.Subjects.insert(getSymbolID(OMD));
+ llvm::SmallVector<const ObjCMethodDecl *, 4> Overrides;
+ OMD->getOverriddenMethods(Overrides);
+ for (const auto *Override : Overrides)
+ OverriddenMethods.insert(getSymbolID(Override));
----------------
kadircet wrote:
for C++ we recursively traverse up the whole virtual-method hierarchy. any reason for not doing the same here?
https://github.com/llvm/llvm-project/pull/127109
More information about the cfe-commits
mailing list