================ @@ -778,12 +868,44 @@ llvm::Expected<RenameResult> rename(const RenameInputs &RInputs) { return makeError(ReasonToReject::NoSymbolFound); if (DeclsUnderCursor.size() > 1) return makeError(ReasonToReject::AmbiguousSymbol); + std::string Placeholder; + // We expect the token under the cursor to be changed unless the user is + // renaming an Objective-C selector with multiple pieces and only renames + // some of the selector piece(s). + bool RenamingCurToken = true; const auto &RenameDecl = **DeclsUnderCursor.begin(); - const auto *ID = RenameDecl.getIdentifier(); - if (!ID) - return makeError(ReasonToReject::UnsupportedSymbol); - if (ID->getName() == RInputs.NewName) - return makeError(ReasonToReject::SameName); + if (const auto *MD = dyn_cast<ObjCMethodDecl>(&RenameDecl)) { + const auto Sel = MD->getSelector(); + if (Sel.getAsString() == RInputs.NewName) + return makeError(ReasonToReject::SameName); + if (Sel.getNumArgs() != RInputs.NewName.count(':') && + RInputs.NewName != "__clangd_rename_placeholder") + return makeError( + InvalidName{InvalidName::BadIdentifier, RInputs.NewName.str()}); ---------------- DavidGoldman wrote:
Never mind, didn't see your comments below https://github.com/llvm/llvm-project/pull/76466 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits