summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-move
diff options
context:
space:
mode:
authorAlexander Shaposhnikov <shal1t712@gmail.com>2016-10-14 23:16:25 +0000
committerAlexander Shaposhnikov <shal1t712@gmail.com>2016-10-14 23:16:25 +0000
commit5fe0678bd8879d5d83df5f73e29bc3c1c60b741b (patch)
tree43fcd1fbaf4bed19806a14ed15598cb0350fdb5e /clang-tools-extra/clang-move
parent48fd87e4aade5ce15b4d4296f330a5bc8971b508 (diff)
downloadbcm5719-llvm-5fe0678bd8879d5d83df5f73e29bc3c1c60b741b.tar.gz
bcm5719-llvm-5fe0678bd8879d5d83df5f73e29bc3c1c60b741b.zip
[clang-move] Use cl::list for the list of names
This diff replaces manual parsing of the comma-separated list of names with cl::list and cl::CommaSeparated. Test plan: make -j8 check-clang-tools Differential revision: https://reviews.llvm.org/D25586 llvm-svn: 284291
Diffstat (limited to 'clang-tools-extra/clang-move')
-rw-r--r--clang-tools-extra/clang-move/ClangMove.cpp4
-rw-r--r--clang-tools-extra/clang-move/ClangMove.h5
-rw-r--r--clang-tools-extra/clang-move/tool/ClangMoveMain.cpp10
3 files changed, 8 insertions, 11 deletions
diff --git a/clang-tools-extra/clang-move/ClangMove.cpp b/clang-tools-extra/clang-move/ClangMove.cpp
index d954522de46..c8365f07f86 100644
--- a/clang-tools-extra/clang-move/ClangMove.cpp
+++ b/clang-tools-extra/clang-move/ClangMove.cpp
@@ -311,10 +311,8 @@ ClangMoveTool::ClangMoveTool(
}
void ClangMoveTool::registerMatchers(ast_matchers::MatchFinder *Finder) {
- SmallVector<StringRef, 4> ClassNames;
- llvm::StringRef(Spec.Names).split(ClassNames, ',');
Optional<ast_matchers::internal::Matcher<NamedDecl>> InMovedClassNames;
- for (StringRef ClassName : ClassNames) {
+ for (StringRef ClassName : Spec.Names) {
llvm::StringRef GlobalClassName = ClassName.trim().ltrim(':');
const auto HasName = hasName(("::" + GlobalClassName).str());
InMovedClassNames =
diff --git a/clang-tools-extra/clang-move/ClangMove.h b/clang-tools-extra/clang-move/ClangMove.h
index 28885e221be..4427c483ed8 100644
--- a/clang-tools-extra/clang-move/ClangMove.h
+++ b/clang-tools-extra/clang-move/ClangMove.h
@@ -37,9 +37,8 @@ public:
};
struct MoveDefinitionSpec {
- // A comma-separated list of fully qualified names, e.g. "Foo",
- // "a::Foo, b::Foo".
- std::string Names;
+ // The list of fully qualified names, e.g. Foo, a::Foo, b::Foo.
+ SmallVector<std::string, 4> Names;
// The file path of old header, can be relative path and absolute path.
std::string OldHeader;
// The file path of old cc, can be relative path and absolute path.
diff --git a/clang-tools-extra/clang-move/tool/ClangMoveMain.cpp b/clang-tools-extra/clang-move/tool/ClangMoveMain.cpp
index c1ab13bd9a6..b79ff311941 100644
--- a/clang-tools-extra/clang-move/tool/ClangMoveMain.cpp
+++ b/clang-tools-extra/clang-move/tool/ClangMoveMain.cpp
@@ -38,10 +38,10 @@ std::error_code CreateNewFile(const llvm::Twine &path) {
cl::OptionCategory ClangMoveCategory("clang-move options");
-cl::opt<std::string>
- Names("names", cl::desc("A comma-separated list of the names of classes "
- "being moved, e.g. \"Foo\", \"a::Foo, b::Foo\"."),
- cl::cat(ClangMoveCategory));
+cl::list<std::string> Names("names", cl::CommaSeparated, cl::OneOrMore,
+ cl::desc("The list of the names of classes being "
+ "moved, e.g. \"Foo,a::Foo,b::Foo\"."),
+ cl::cat(ClangMoveCategory));
cl::opt<std::string>
OldHeader("old_header",
@@ -90,7 +90,7 @@ int main(int argc, const char **argv) {
tooling::RefactoringTool Tool(OptionsParser.getCompilations(),
OptionsParser.getSourcePathList());
move::ClangMoveTool::MoveDefinitionSpec Spec;
- Spec.Names = Names;
+ Spec.Names = { Names.begin(), Names.end() };
Spec.OldHeader = OldHeader;
Spec.NewHeader = NewHeader;
Spec.OldCC = OldCC;
OpenPOWER on IntegriCloud