hokein added inline comments.

================
Comment at: lib/Tooling/Refactoring/Rename/RenamingAction.cpp:143
+    }
+    auto USRs = getUSRsForDeclaration(ND, Context.getASTContext());
+    return tooling::createRenameAtomicChanges(
----------------
sammccall wrote:
> if this is a local refactor, and there are no USRs (symbol doesn't exist), is 
> this an error that needs to be signaled somehow?
This case should not be happened IMO. If we find the `ND`, we will rename `ND` 
at least.


================
Comment at: lib/Tooling/Refactoring/Rename/RenamingAction.cpp:154
+
+class LocalQualifiedRename final : public RefactoringAction {
+public:
----------------
sammccall wrote:
> As discussed offline, it's not clear why this is a separate Action, rather 
> than a different Rule that's part of the same Action.
> 
> @arphaman how does the framework answer this question?
There is a 
[document](https://clang.llvm.org/docs/RefactoringEngine.html#refactoring-action-rules)
 describing it, but still ambiguous.

We also had some questions about `local-rename` from the discussion, need 
@arphaman's input:

* `OccurrenceFinder` is not exposed now, it is merely used in 
`RenameOccurrences`. We think there should be a public interface to the 
clients, like for implementing interactive mode in IDE? 
* Currently the rules defined in the same action must have mutual command-line 
options, otherwise clang-refactor would complain the command-line option are 
being registered more than once. It might be very strict for some cases. For 
example, `-new-name` is most likely being used by many rules in `local-rename` 
action.
 


https://reviews.llvm.org/D39332



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to