[clang-tools-extra] Add support for renaming objc methods, even those with multiple selector pieces (PR #76466)
kadir çetinkaya via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 24 05:04:06 PST 2024
================
@@ -681,12 +718,26 @@ renameOutsideFile(const NamedDecl &RenameDecl, llvm::StringRef MainFilePath,
ExpBuffer.getError().message());
continue;
}
+ std::string RenameIdentifier = RenameDecl.getNameAsString();
+ std::optional<Selector> Selector = std::nullopt;
+ llvm::SmallVector<llvm::StringRef, 8> NewNames;
+ if (const auto *MD = dyn_cast<ObjCMethodDecl>(&RenameDecl)) {
+ if (MD->getSelector().getNumArgs() > 1) {
+ RenameIdentifier = MD->getSelector().getNameForSlot(0).str();
+ Selector = MD->getSelector();
+ NewName.split(NewNames, ":");
----------------
kadircet wrote:
you can perform the split unconditionally ,rather than pushing to `NewNames` below.
also is it possible to have "empty" selector segments? (e.g. is a NewName like `foo::bar` valid for a selector with 3 segments? if not we should probably raise an error when validating)
https://github.com/llvm/llvm-project/pull/76466
More information about the cfe-commits
mailing list