arphaman added inline comments.
================ Comment at: lib/Tooling/Refactoring/Rename/RenamingAction.cpp:101 + std::string NewQualifiedName) { + return QualifiedRenameRule(std::move(OldQualifiedName), + std::move(NewQualifiedName)); ---------------- ioeric wrote: > hokein wrote: > > arphaman wrote: > > > It might be better to find the declaration (and report error if needed) > > > during in initiation, and then pass the `ND` to the class. Maybe then > > > both `RenameOccurrences` and `QualifiedRenameRule` could subclass from > > > one base class that actually does just this: > > > > > > ``` > > > auto USRs = getUSRsForDeclaration(ND, Context.getASTContext()); > > > assert(!USRs.empty()); > > > return tooling::createRenameAtomicChanges( > > > USRs, NewQualifiedName, > > > Context.getASTContext().getTranslationUnitDecl()); > > > ``` > > Done. Introduced a common interface `USRRenameRule`. > `USRRenameRule` doesn't seem to be a very useful abstraction. I think what > Alex proposed is a base class that implements `createSourceReplacements` > which could be shared by both `RenameOccurrences` and `QualifiedRenameRule`. > Intuitively, un-qualified rename is a special case of qualified rename > (maybe?), where namespace is not changed. Yep, I meant that indeed. https://reviews.llvm.org/D39332 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits