summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling/Refactoring/RefactoringActions.cpp
diff options
context:
space:
mode:
authorHaojian Wu <hokein@google.com>2017-11-08 08:56:56 +0000
committerHaojian Wu <hokein@google.com>2017-11-08 08:56:56 +0000
commit200458f3428592730118dbbbb6970646a718b369 (patch)
tree837d145d21da9598e01b389f6881887e2f77ac1e /clang/lib/Tooling/Refactoring/RefactoringActions.cpp
parentf6ee94c1c6a2579de732c82a3d4221237c455c05 (diff)
downloadbcm5719-llvm-200458f3428592730118dbbbb6970646a718b369.tar.gz
bcm5719-llvm-200458f3428592730118dbbbb6970646a718b369.zip
[clang-refactor] Introduce a new rename rule for qualified symbols
Summary: Prototype of a new rename rule for renaming qualified symbol. Reviewers: arphaman, ioeric, sammccall Reviewed By: arphaman, sammccall Subscribers: jklaehn, cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D39332 llvm-svn: 317672
Diffstat (limited to 'clang/lib/Tooling/Refactoring/RefactoringActions.cpp')
-rw-r--r--clang/lib/Tooling/Refactoring/RefactoringActions.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/lib/Tooling/Refactoring/RefactoringActions.cpp b/clang/lib/Tooling/Refactoring/RefactoringActions.cpp
index 73a31183962..37a1639cb44 100644
--- a/clang/lib/Tooling/Refactoring/RefactoringActions.cpp
+++ b/clang/lib/Tooling/Refactoring/RefactoringActions.cpp
@@ -46,6 +46,22 @@ public:
}
};
+class OldQualifiedNameOption : public RequiredRefactoringOption<std::string> {
+public:
+ StringRef getName() const override { return "old-qualified-name"; }
+ StringRef getDescription() const override {
+ return "The old qualified name to be renamed";
+ }
+};
+
+class NewQualifiedNameOption : public RequiredRefactoringOption<std::string> {
+public:
+ StringRef getName() const override { return "new-qualified-name"; }
+ StringRef getDescription() const override {
+ return "The new qualified name to change the symbol to";
+ }
+};
+
class NewNameOption : public RequiredRefactoringOption<std::string> {
public:
StringRef getName() const override { return "new-name"; }
@@ -70,6 +86,10 @@ public:
RefactoringActionRules Rules;
Rules.push_back(createRefactoringActionRule<RenameOccurrences>(
SourceRangeSelectionRequirement(), OptionRequirement<NewNameOption>()));
+ // FIXME: Use NewNameOption.
+ Rules.push_back(createRefactoringActionRule<QualifiedRenameRule>(
+ OptionRequirement<OldQualifiedNameOption>(),
+ OptionRequirement<NewQualifiedNameOption>()));
return Rules;
}
};
OpenPOWER on IntegriCloud