[PATCH] D75096: [ASTMatchers] Matcher macros with params move params instead of copying

2020-02-24 Thread Nathan James via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rG3e9a7b2ba470: [ASTMatchers] Matcher macros with params move 
params instead of copying (authored by njames93).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75096/new/

https://reviews.llvm.org/D75096

Files:
  clang/include/clang/ASTMatchers/ASTMatchersMacros.h

Index: clang/include/clang/ASTMatchers/ASTMatchersMacros.h
===
--- clang/include/clang/ASTMatchers/ASTMatchersMacros.h
+++ clang/include/clang/ASTMatchers/ASTMatchersMacros.h
@@ -134,9 +134,8 @@
   class matcher_##DefineMatcher##OverloadId##Matcher   \
   : public ::clang::ast_matchers::internal::MatcherInterface {   \
   public:  \
-explicit matcher_##DefineMatcher##OverloadId##Matcher( \
-ParamType const &A##Param) \
-: Param(A##Param) {}   \
+explicit matcher_##DefineMatcher##OverloadId##Matcher(ParamType A##Param)  \
+: Param(std::move(A##Param)) {}\
 bool matches(const Type &Node, \
  ::clang::ast_matchers::internal::ASTMatchFinder *Finder,  \
  ::clang::ast_matchers::internal::BoundNodesTreeBuilder\
@@ -147,12 +146,13 @@
   };   \
   }\
   inline ::clang::ast_matchers::internal::Matcher DefineMatcher( \
-  ParamType const &Param) {\
+  ParamType Param) {   \
 return ::clang::ast_matchers::internal::makeMatcher(   \
-new internal::matcher_##DefineMatcher##OverloadId##Matcher(Param));\
+new internal::matcher_##DefineMatcher##OverloadId##Matcher(\
+std::move(Param)));\
   }\
-  typedef ::clang::ast_matchers::internal::Matcher(  \
-  &DefineMatcher##_Type##OverloadId)(ParamType const &Param);  \
+  typedef ::clang::ast_matchers::internal::Matcher ( \
+  &DefineMatcher##_Type##OverloadId)(ParamType Param); \
   inline bool internal::matcher_##DefineMatcher##OverloadId##Matcher::matches( \
   const Type &Node,\
   ::clang::ast_matchers::internal::ASTMatchFinder *Finder, \
@@ -183,9 +183,9 @@
   class matcher_##DefineMatcher##OverloadId##Matcher   \
   : public ::clang::ast_matchers::internal::MatcherInterface {   \
   public:  \
-matcher_##DefineMatcher##OverloadId##Matcher(ParamType1 const &A##Param1,  \
- ParamType2 const &A##Param2)  \
-: Param1(A##Param1), Param2(A##Param2) {}  \
+matcher_##DefineMatcher##OverloadId##Matcher(ParamType1 A##Param1, \
+ ParamType2 A##Param2) \
+: Param1(std::move(A##Param1)), Param2(std::move(A##Param2)) {}\
 bool matches(const Type &Node, \
  ::clang::ast_matchers::internal::ASTMatchFinder *Finder,  \
  ::clang::ast_matchers::internal::BoundNodesTreeBuilder\
@@ -197,14 +197,14 @@
   };   \
   }\
   inline ::clang::ast_matchers::internal::Matcher DefineMatcher( \
-  ParamType1 const &Param1, ParamType2 const &Param2) {\
+  ParamType1 Param1, ParamType2 Param2) {  \
 return ::clang::ast_matchers::internal::makeMatcher(   \
-new internal::matcher_##DefineMatcher##OverloadId##Matcher(Param1, \
-   Param2));   \
+new internal::matcher_##DefineMatcher##OverloadId##Matcher(\
+std::move(Param1), std::move(Param2)));\
   }\
-  typedef ::clang::ast_matchers::internal::Matcher(  \
-  &DefineMatcher##_Type##OverloadId)(ParamTy

[PATCH] D75096: [ASTMatchers] Matcher macros with params move params instead of copying

2020-02-24 Thread Nathan James via Phabricator via cfe-commits
njames93 created this revision.
njames93 added reviewers: aaron.ballman, gribozavr2.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

Use move semantics instead of copying for AST Matchers with parameters


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75096

Files:
  clang/include/clang/ASTMatchers/ASTMatchersMacros.h

Index: clang/include/clang/ASTMatchers/ASTMatchersMacros.h
===
--- clang/include/clang/ASTMatchers/ASTMatchersMacros.h
+++ clang/include/clang/ASTMatchers/ASTMatchersMacros.h
@@ -134,9 +134,8 @@
   class matcher_##DefineMatcher##OverloadId##Matcher   \
   : public ::clang::ast_matchers::internal::MatcherInterface {   \
   public:  \
-explicit matcher_##DefineMatcher##OverloadId##Matcher( \
-ParamType const &A##Param) \
-: Param(A##Param) {}   \
+explicit matcher_##DefineMatcher##OverloadId##Matcher(ParamType A##Param)  \
+: Param(std::move(A##Param)) {}\
 bool matches(const Type &Node, \
  ::clang::ast_matchers::internal::ASTMatchFinder *Finder,  \
  ::clang::ast_matchers::internal::BoundNodesTreeBuilder\
@@ -147,12 +146,13 @@
   };   \
   }\
   inline ::clang::ast_matchers::internal::Matcher DefineMatcher( \
-  ParamType const &Param) {\
+  ParamType Param) {   \
 return ::clang::ast_matchers::internal::makeMatcher(   \
-new internal::matcher_##DefineMatcher##OverloadId##Matcher(Param));\
+new internal::matcher_##DefineMatcher##OverloadId##Matcher(\
+std::move(Param)));\
   }\
-  typedef ::clang::ast_matchers::internal::Matcher(  \
-  &DefineMatcher##_Type##OverloadId)(ParamType const &Param);  \
+  typedef ::clang::ast_matchers::internal::Matcher ( \
+  &DefineMatcher##_Type##OverloadId)(ParamType Param); \
   inline bool internal::matcher_##DefineMatcher##OverloadId##Matcher::matches( \
   const Type &Node,\
   ::clang::ast_matchers::internal::ASTMatchFinder *Finder, \
@@ -183,9 +183,9 @@
   class matcher_##DefineMatcher##OverloadId##Matcher   \
   : public ::clang::ast_matchers::internal::MatcherInterface {   \
   public:  \
-matcher_##DefineMatcher##OverloadId##Matcher(ParamType1 const &A##Param1,  \
- ParamType2 const &A##Param2)  \
-: Param1(A##Param1), Param2(A##Param2) {}  \
+matcher_##DefineMatcher##OverloadId##Matcher(ParamType1 A##Param1, \
+ ParamType2 A##Param2) \
+: Param1(std::move(A##Param1)), Param2(std::move(A##Param2)) {}\
 bool matches(const Type &Node, \
  ::clang::ast_matchers::internal::ASTMatchFinder *Finder,  \
  ::clang::ast_matchers::internal::BoundNodesTreeBuilder\
@@ -197,14 +197,14 @@
   };   \
   }\
   inline ::clang::ast_matchers::internal::Matcher DefineMatcher( \
-  ParamType1 const &Param1, ParamType2 const &Param2) {\
+  ParamType1 Param1, ParamType2 Param2) {  \
 return ::clang::ast_matchers::internal::makeMatcher(   \
-new internal::matcher_##DefineMatcher##OverloadId##Matcher(Param1, \
-   Param2));   \
+new internal::matcher_##DefineMatcher##OverloadId##Matcher(\
+std::move(Param1), std::move(Param2)));\
   }\
-  typedef ::clang::ast_matchers::internal::Matcher(  \
-  &DefineMatcher##_Type##OverloadId)(ParamType1 const &Param1, \
-