[PATCH] D17986: [ASTMatchers] Existing matcher hasAnyArgument fixed and new matcher hasReturnValue added

Samuel Benzaquen via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 11 07:57:30 PST 2016


sbenza added a comment.

The reason we haven't fixed hasAnyArgument is that it can potentially break its users.
I'd prefer if you separated the fix from the addition.
That way we can revert the fix if needed.


================
Comment at: include/clang/ASTMatchers/ASTMatchers.h:4796
@@ +4795,3 @@
+/// \endcode
+/// hasReturnValue(binaryOperator())
+///   matches 'return a+b'
----------------
New matchers must be tested.
See ASTMatchersTest.cpp.

Also, they should be added to the dynamic registry.
See Dynamic/Registry.cpp

================
Comment at: include/clang/ASTMatchers/ASTMatchers.h:4800
@@ +4799,3 @@
+///   matching 'a+b'
+AST_MATCHER_P(ReturnStmt, hasReturnValue, internal::Matcher<Expr>, InnerMatcher) {
+  BoundNodesTreeBuilder Result(*Builder);
----------------
I'm not sure this is needed.
`returnStmt(hasReturnValue(...))` is equivalent to `returnStmt(has(...))`
There are many checks using the latter already.


http://reviews.llvm.org/D17986





More information about the cfe-commits mailing list