diff options
author | Alexander Shaposhnikov <shal1t712@gmail.com> | 2016-10-14 23:16:25 +0000 |
---|---|---|
committer | Alexander Shaposhnikov <shal1t712@gmail.com> | 2016-10-14 23:16:25 +0000 |
commit | 5fe0678bd8879d5d83df5f73e29bc3c1c60b741b (patch) | |
tree | 43fcd1fbaf4bed19806a14ed15598cb0350fdb5e /clang-tools-extra/clang-move | |
parent | 48fd87e4aade5ce15b4d4296f330a5bc8971b508 (diff) | |
download | bcm5719-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.cpp | 4 | ||||
-rw-r--r-- | clang-tools-extra/clang-move/ClangMove.h | 5 | ||||
-rw-r--r-- | clang-tools-extra/clang-move/tool/ClangMoveMain.cpp | 10 |
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; |